学生党以及很多没设计过大数据开发的小伙伴呢,都对大数据这么一个领域感到非常非常的好奇非常非常的神秘,我今天就非要戳穿给你们看。
1、对,我们做大数据的也写普通的 Java 代码,写普通的 SQL。
比如 Java API版的 Spark 程序,长得跟 Java8 的Stream API 一样一样的。
JavaRDD<String> lines = sc.textFile("data.txt");
JavaRDD<Integer> lineLengths = lines.map(s -> s.length());
int totalLength = lineLengths.reduce((a, b) -> a + b);
再比如,删除一个 Hive 表。
DROP TABLE pokes;
2、对,Hadoop 、Spark 、Hive 的启动和机器运维都跟一个普通的 Java 应用和数据库没什么区别。
比如启动hdfs
bash ./start-dfs.sh
比如启动yarn
bash ./start-yarn.sh
比如启动hive
bash ./hive
完事了,有啥神秘的????不就是配一堆所有系统都有的配置吗?
3、对不起,没有一门叫数据仓库的技术。
数据仓库是一个集结了某个范围内所有经过清洗的统一的数据存储、分析的地点,并没有一门叫数据仓库的技术。
在实战中,我们一般会使用 Hive 来当数据仓库的载体,在没有大数据基础架构的公司也会使用各种传统 DB 来当数据仓库的载体,所以不要再说什么你要学习数据仓库 ok ? 要学 Hive 就说要学 Hive,要学数据治理就说要学数据治理。
4、对,我们大数据就是死写SQL的,但脑回路跟你们不一样
你们写 SQL 优先想功能,我们写SQL优先想这他妈能不能跑出来。
你们写 SQL 可以一直调一直调,我们写 SQL 要想好久才调一次,连机器是什么跑的都要想清楚。
你们写 SQL 压根不管数据分布,我们写 SQL 第一件事就是他妈不会数据倾斜吧?
你们写 SQL 用都能直接写,我们写 SQL 前要写一万个 SQL 做数据清洗。
5、对,10倍,100倍,100万倍 的数据增长我们就需要一直改方案,改改改。
你的 SQL 在10倍量下能跑,在100万倍下,你可能要付出非常久非常久的思考和努力才能基本跑出来,比如一个简单的去重统计。
你的SQL count(1) group by 一下就出来了。
我的如果写得跟你一样我估计这辈子都出不来结果了。
不解释了,大数据计数系列了解一下。
6、Spark 很快,但 Spark 也很慢
Spark是纯内存计算,但Spark也是批量计算,其中存在的缺陷你们思考一下,对比一下 FLink 这类纯流式计算。
7、即使你有100T数据,你也不是在做大数据。
第一数据存储占用空间大不代表就是大数据,第二即使你数据量级够思维不对你也不是在做大数据。
8、大数据跟机器学习是一家,压根离不开
你可能永远也不会知道 分而治之,统计学,概率论 在这两个学科的统一性和重要性。
9、对不起,你别以为大数据只有 Hadoop,大数据技术栈广和深得你几乎不可想象。
你以为你学完了,完全不可"棱"。
先这样,不知道写啥了,以上。