前言
我們生活在大數據時代,正以前所未有的速度和規模產生數據。數據資產正成為和土地、資本、人力并駕齊驅的關鍵生產要素,并在社會、經濟、科學研究等方面顛覆人們探索世界的方法、驅動產業間的融合與分立。
大數據是用來描述數據規模巨大、數據類型復雜的數據集,它本身蘊含著豐富的價值。比如:在金融行業,企業和個人的一些信用記錄、消費記錄、客戶點擊數據集、客戶刷卡、存取款、電子銀行轉賬、微信評論等行為數據組合為金融大數據,他們利用大數據技術為財富客戶推薦產品,利用客戶行為數據設計滿足客戶需求的金融產品,利用金融行業全局數據了解業務運營薄弱點并加快內部數據處理速度,利用決策樹技術進入抵押貸款管理,利用數據分析報告實施產業信貸風險控制,利用客戶社交行為記錄實施信用卡反欺詐,依據客戶消費習慣、地理位置、銷售時間進行推薦(精準營銷)。不僅僅金融行業,政府部門會根據大數據分析結果來做預算,企業也會根據大數據來進行市場策略調整。
Gartner指出,64%的受訪企業表示他們正在或是即將進行大數據工作,然而其中一些企業卻并不知道他們能夠使用大數據做些什么。這正好印證了大數據領域的最主要的兩個挑戰:如何從大數據中獲取價值以及如何定義大數據戰略。這是本書首先需要解釋的內容。
谷歌、Amazon、Facebook等全球知名互聯網企業作為大數據領域的先驅者,憑借自身力量進行大數據探索,甚至在必要時創造出相關工具。這些工具目前已經被視為大數據技術的基礎,其中最知名的當數MapReduce與Hadoop。Hadoop是目前處理大規模結構化與非結構數據的首選平臺,它提供了分布式處理框架與開發環境。MapReduce是一種計算框架,它實現了將大型數據處理任務分解成很多單個的、可以在服務器集群中并行執行的任務,這些任務的計算結果可以合并在一起來計算最終的結果。在Hadoop問世以來的十年間,新的組件(如:Spark)層出不窮,極大地擴張了整個Hadoop生態圈。
大數據技術有別于傳統數據處理工具和技術,而且大數據技術很難掌握,一般需要1-2年的反復嘗試,在實際使用中解決了大量問題之后才能正確理解它。我們編寫這本書的目的是,以硅谷大數據實戰為基礎,讓讀者略過那些不重要的大數據的細枝末節,通過實際的案例,幫助讀者快速掌握大數據技術領域最能商用的大數據工具和軟件平臺,從而幫助讀者輕松實施大數據方案。在本書中,我們將闡述如下最為硅谷所熟知的大數據相關技術:
·框架:Hadoop、Spark。
·集群管理:MapReduce、Yarn、Mesos。
·開發語言:Java、Python、Scala、Pig、Hive、Spark SQL。
·數據庫:NoSQL、HBase、Cassandra、Impala。
·文件系統:HDFS、Ceph。
·搜索系統:Elastic Search。
·采集系統:Flume、Sqoop、Kafka。
·流式處理:Spark Streaming、Storm。
·發行版:HortonWorks、Cloudera、MapR。
·管理系統:Ambari、大數據管理平臺。
·機器學習:Spark MLlib、Mahout。
上面的列表也說明了,Hadoop生態圈有幾十個軟件組成。這些軟件提供了什么功能?到底在什么情況下使用什么軟件?軟件之間怎么組合使用?這些問題正是本書想要回答的。本書與市場上其他大數據書籍的區別是,我們不是專注某一個軟件(比如:Spark),而是闡述整個生態圈中的主流軟件,通過實例讓你理解這些軟件是什么,在什么場合使用,相互的區別是什么。如果我們把這幾十個軟件比喻成幾十種廚房工具,那就是讓你避免拿著菜刀去削蘋果,或者拿著水果刀去剁肉。
除了闡述大數據的定義、前景和各類Hadoop發行版之外,本書主要是按照大數據處理的幾個大步驟來組織內容的。
(1)大數據存儲:探究HDFS和HBase作為大數據存儲方式的優劣。
(2)大數據訪問:探究SQL引擎層中Hive、Phoenix、Spark SQL等組件的功能,并闡述了全文搜索的ElasticSearch,也探究了Spark的高速訪問能力。
(3)大數據采集:大數據的采集是指接收各類數據源(比如:Web、行業應用系統或者傳感器等)的數據。大數據采集的主要特點和挑戰是導入的數據量大(每秒鐘的導入量經常會達到百兆,甚至千兆級別)、并發數高和數據源的異構。采集端可能會有很多數據庫(或文件),有時需要在導入基礎上做一些簡單的清洗和預處理工作。在這個部分,我們探究了Flume、Kafka、Sqoop等技術,也探究了如何使用Storm和Spark Streaming來對數據進行流式計算,來滿足部分業務的實時和準實時計算需求。
(4)大數據管理:探究數據模型、安全控制、數據生命周期等數據管理內容。
(5)大數據的統計和分析:探究了如何利用分布式計算集群來對存儲于其內的海量數據進行統計分析,重點探究了機器學習和Spark MLlib,也闡述了多種分析算法。
參加本書編寫的同志還有:余飛、邵敏華、歐陽濤、楊正禮、王娜、李祥、劉畢操、彭勃、李招、張劍、楊磊等人。由于我們水平有限,書中難免存在紕漏之處,敬請讀者批評指正。楊正洪的郵件地址為yangzhenghong@yahoo.com。
楊正洪
2016年5月于San Jose
- 數據庫技術與應用教程(Access)
- 數據庫原理及應用教程(第4版)(微課版)
- MySQL基礎教程
- Flutter Projects
- 數據庫應用系統開發實例
- 數據庫技術及應用
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- Hadoop 3實戰指南
- 活用數據:驅動業務的數據分析實戰
- 改變未來的九大算法
- The Natural Language Processing Workshop
- Hands-On Deep Learning for Games
- Scratch 2.0 Game Development HOTSHOT
- 數據中臺實戰:手把手教你搭建數據中臺
- Oracle 內核技術揭密