大數據和你想的不一樣
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 一下就出來了。
我的如果寫得跟你一樣我估計這輩子都出不來結果了。
不解釋了,大數據計數系列了解一下。
大數據計數原理1+0=1這你都不會算(十)No.77
6、Spark 很快,但 Spark 也很慢
Spark是純內存計算,但Spark也是批量計算,其中存在的缺陷你們思考一下,對比一下 FLink 這類純流式計算。
7、即使你有100T數據,你也不是在做大數據。
第一數據存儲占用空間大不代表就是大數據,第二即使你數據量級夠思維不對你也不是在做大數據。
8、大數據跟機器學習是一家,壓根離不開
你可能永遠也不會知道 分而治之,統計學,概率論 在這兩個學科的統一性和重要性。
9、對不起,你別以為大數據只有 Hadoop,大數據技術棧廣和深得你幾乎不可想象。
你以為你學完了,完全不可"棱"。
https://mp.weixin.qq.com/s/ynz-mLlyO052LxyhbyovAw
大數據從大量、快速變化、多種特征、低價值數據中得到不可替代的價值,其挑戰和難點不少,現在不少重復的數據處理工作要人來做,需要有工具自動化思維來變革。
大數據和你想的不一樣