大資料不是你想的那樣
學生黨以及很多沒設計過大資料開發的小夥伴呢,都對大資料這麼一個領域感到非常非常的好奇非常非常的神祕,我今天就非要戳穿給你們看。
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 一下就出來了。
我的如果寫得跟你一樣我估計這輩子都出不來結果了。
不解釋了,大資料計數系列瞭解一下。
OA==&mid=2247484144&idx=1&sn=f74a8b0b4a5b4a2c751fc14ace024997&chksm=f908dfe3ce7f56f574bfe9e9fdd6edd82e074d8d40ab670634a90ce5d957e8d67f42e72b7818&scene=21#wechat_redirect" target="_blank" rel="nofollow,noindex">大資料計數原理1+0=1這你都不會算(十)No.77
6、Spark 很快,但 Spark 也很慢
Spark是純記憶體計算,但Spark也是批量計算,其中存在的缺陷你們思考一下,對比一下 FLink 這類純流式計算。
7、即使你有100T資料,你也不是在做大資料。
第一資料儲存佔用空間大不代表就是大資料,第二即使你資料量級夠思維不對你也不是在做大資料。
8、大資料跟機器學習是一家,壓根離不開
你可能永遠也不會知道 分而治之,統計學,概率論 在這兩個學科的統一性和重要性。
9、對不起,你別以為大資料只有 Hadoop,大資料技術棧廣和深得你幾乎不可想象。
你以為你學完了,完全不可"稜"。
先這樣,不知道寫啥了,以上。