大資料之路
大資料
大資料專家是怎樣煉成的?
由於很少看到學習大資料的知識圖譜,所以這裡斗膽分享一家之言。同時,大資料有很多細分領域,這裡特指通過分散式技術在海量資料中瞭解並分析過去發生了什麼(what happened)、為什麼會發生(why did it happen)、正在發生什麼(what is happening),而預測將來會發生什麼(what will happen)的高階分析往往基於機器學習和資料探勘,值得將來獨立成章深入討論,這裡暫且不表。
在成為大資料專家的道路上,往往要經歷六個坎坷,讓我們以六個年級來標明他們。只有戰勝眼前的坎坷,才能升入下一個年級。當然,有些如Doug Cutting或者Jeff Dean等天才同學,無師自通可以連跳好幾級偶爾也是有的。
一年級
第一個年級要學習的是理論。所有想成為大資料專家的人,必須先要閱讀一些經典的大資料理論知識,包括Schönberger的《大資料時代》和塗子沛的《大資料》等,只有在積累了大量的理論知識後,你才能跨入下一個年級。但這個年級有一個很特殊的規定,因為有些同學動手能力超強,所以他們可以跳過這個年級直接進入實戰去感悟這些理論。
- 大資料,塗子沛分享了資料在美國崛起中起到的關鍵作用。
- 大資料時代,Viktor Mayer-Schönberger通過真實案例分享了大資料的商業變革和管理變革。
- 大資料思維與決策,Ian Ayres解釋了數字化思考如何讓企業變得更聰明。
- 大資料才是好資料,Kenneth Cukier精彩的TED演講,大資料科學家也需要作秀的能力。
- 深入淺出資料分析,Michael Milton編寫的雖然是關於概率統計的入門教程,但是延續了Head First一如既往的寓教於樂且用到的R或Excel如今都有大資料實現,推薦初學者一讀。
二年級
第二個年級學習的內容是實踐,也就是用大資料產品完成一些簡單目標。費爾巴哈說過,理論所不能解決的那些疑難,實踐會給你解決:
紙上得來終覺淺,絕知此事要躬行。
三年級
第三個年級學習的內容是實戰,這是極為重要的。那些理論學習中的優秀學生如果不能過這一關,他們就將獲得一個光榮的成就——紙上談兵。
我們來解釋一下為什麼實戰如此重要。雖然大資料理論都是高年級的學長們經驗總結,但他們寫這些東西的時候情況和現狀是不完全一樣的,在實戰中如果照搬是要吃大虧的。作為一個想成為大資料專家的學員,一般都是從專案幹起,因為只有專案才能讓一個人成為真正的專家,必須親密與客戶交流澄清需求細節,親手敲打鍵盤架構大資料平臺,親身經歷運維不知白晝與黑夜,明白無法交付專案是要餓肚子的,瞭解不能運維是要挨客戶罵的,他們才會明白什麼是實戰。
大多數學員會在這一關被淘汰,他們會改行,一生當一個大資料票友,這對他們來說並不見得是一件壞事。而留存下來的那些學員,在殘酷的專案實戰中逐漸瞭解了大資料的規律,開始真正走上專家之路。
四年級
好了,我們帶領剩下的學員來到四年級,四年級需要學習的是結合大資料與雲端計算。
雲端計算為大資料提供無盡的資源,大資料為雲端計算帶來資料服務。大資料與雲端計算的關係好比倚天與屠龍,單獨使用已然是神兵利器,結合起來更能得到《九陰真經》、《降龍十八掌》和《武穆遺書》。
雲端計算平臺上的大資料服務大致分兩種:
- 在雲主機上部署Apache基金會提供的開源大資料軟體,軟體授權費用很低但是需要自行運維。
- 使用雲端計算平臺提供的託管大資料服務,用起來省心不過遷移相對困難。
下面是部分雲端計算平臺提供的大資料服務與Apache基金會提供的開源大資料軟體的對比:
Microsoft | Amazon | Apache | |
---|---|---|---|
儲存 | Blob Storage | S3 | HDFS |
計算 | HDInsight Data Lake | EMR | Hadoop Spark Flink |
資料庫 | SQL Database | RDS Aurora | |
NoSQL | Table Storage Doc DB | Dynamo DB | HBase Cassandra |
資料倉儲 | SQL DW | RedShift | Hive Pig Drill HAWK Druid Impala |
商務智慧 | Power BI | Quick Sight | |
訊息系統 | Event Hub | Kinesis Streams | Kafka |
流處理 | Stream Analytics | Kinesis Analytics Kinesis Firehose | Storm Samza |
資料流 | Data Factory | Data Pipeline | Beam Ozzie Ni-Fi |
當然,有的雲端計算平臺提供了開源大資料軟體的託管服務,即降低了授權費用又不用操心運維。百度雲天算大資料平臺就是一個例子。
這就是四年級學員要做到的。能過這一關的人已經很少了,剩下的精英們,我們繼續前進!
五年級
五年級是最重要的一個年級,在這個年級裡,學員們要學習的是判斷。你要明白的是,你所掌握的是專案的成敗,你就是指揮,而所有的人都等著你拿注意。如果你能從那變化莫測的架構和紛繁蕪雜的技術中發現其中的奧妙,並就此做出正確的決斷,那麼恭喜你,你已經具備了大資料專家最主要的素質。
判斷並非無據可依。德國有種智慧,叫做生活是具體的,也就是提倡不要泛泛地談概念,關鍵是要拿出來比一比。歸類後的大資料文獻羅列於斯,對於不同選擇的優缺點了然於胸便可以進入下一個階段。
資源排程
- Apache Hadoop YARN – Yet Another Resource Negotiator
- Mesos – A Platform for Fine-Grained Resource Sharing in the Data Center
- Fuxi – a Fault-Tolerant Resource Management and Job Scheduling System at Internet Scale
- Omega – Flexible, Scalable Schedulers for Large Compute clusters
- Large-scale Cluster Management at Google with Borg
- Autopilot – Automatic Data Center Management
海量儲存
- The Google File System
- The Hadoop Distributed File System
- Windows Azure Storage – A Highly Available Cloud Storage Service with Strong Consistency
- Erasure Coding in Windows Azure Storage
NoSQL
- Dynamo – Amazon’s Highly Available Key-Value Store
- Bigtable – A Distributed Storage System for Structured Data
- Cassandra – A Decentralized Structured Storage System
NewSQL
- Megastore – Providing Scalable, Highly Available Storage for Interactive Services
- Spanner – Google’s Globally Distributed Database
- F1 – A Distributed SQL Database that Scales
分佈計算
- Massively Parallel Databases and MapReduce Systems
- MapReduce – Simplified Data Processing on Large Clusters
- Spark – Cluster Computing with Working Sets
- Resilient Distributed Datasets – A Fault-Tolerant Abstraction for In-Memory Cluster Computing
- The Stratosphere Platform for Big Data Analytics
- Spinning Fast Iterative Data Flows
- Dryad – Distributed Data-parallel Programs from Sequential Building Blocks
- SCOPE – Easy and Efficient Parallel Processing of Massive Data Sets
- DryadLINQ – A System for General-Purpose Distributed Data-Parallel Computing Using a High-Level Language
流式處理
- Storm @ Twitter
- Twitter Heron – Stream Processing at Scale
- S4 – Distributed Stream Computing Platform
- Discretized Streams – Fault-Tolerant Streaming Computation at Scale
- MillWheel – Fault-Tolerant Stream Processing at Internet Scale
- Kafka – a Distributed Messaging System for Log Processing
- Realtime Data Processing at Facebook
- Building LinkedIn’s Real-time Activity Data Pipeline
資料倉儲
- Hive – A Petabyte Scale Data Warehouse Using Hadoop
- Hive – A Warehousing Solution Over a Map-Reduce Framework
- Major Technical Advancements in Apache Hive
- RCFile – A Fast and Space-efficient Data Placement Structure in MR-based Warehouse Systems
- Kudu – Storage for Fast Analytics on Fast Data
- Data Warehousing and Analytics Infrastructure at Facebook
- Dremel – Interactive Analysis of Web-Scale Datasets
- Spark SQL – Relational Data Processing in Spark
- Impala – A Modern Open-Source SQL Engine for Hadoop
- HAWQ – A Massively Parallel Processing SQL Engine in Hadoop
- Star Schema Benchmark
- Tenzing – A SQL Impelmentation on the MapReduce Framework
- Druid – A Real-time Analytical Data Store
- Mesa – Geo-Replicated, Near Real-Time, Scalable Data Warehousing
- Indexing HDFS Data in PDW – Splitting the Data from the Index
- Split Query Processing in Polybase
- The Snowflake Elastic Data Warehouse
- Amazon Redshift and the Case for Simpler Data Warehouses
資料整合
- Pig Latin – A Not-So-Foreign Language for Data Processing
- The Dataflow Model – A Practical Approach to Balancing Correctness, Latency, and Cost
- FlumeJava – Easy, Efficient Data-parallel Pipelines
- Summingbird – A Framework for Integrating Batch and Online MapReduce Computations
- Gobblin – Unifying Data Ingestion for Hadoop
順便說一句,大資料時代是開源軟體引領的時代,其中緣由可以參考為什麼開源開放的大資料平臺才能成功。
六年級
但是還有一關是你必須通過的,只有過了這一關,你才是真正的大資料專家。那就是,成為大資料產品經理或者大資料架構師,親手打造一款大資料產品!