大數據技術入門

大數據技術入門
定價:354
NT $ 308
  • 作者:楊正洪
  • 出版社:清華大學出版社
  • 出版日期:2016-08-01
  • 語言:簡體中文
  • ISBN10:7302442835
  • ISBN13:9787302442837
  • 裝訂:291頁 / 普通級 / 1-1
 

內容簡介

從2015年開始,國內大數據市場繼續保持高速的發展態勢,作者在與地方政府、證券金融公司的項目合作中發現,他們對大數據技術很感興趣,並希望從大數據技術、大數據采集、管理、分析以及可視化等方面得到指導和應用幫助。因此編寫了這本大數據技術的快速入門書。

《大數據技術入門》共12章,以Hadoop和Spark框架為線索,比較全面地介紹了Hadoop技術、Spark技術、大數據存儲、大數據訪問、大數據采集、大數據管理、大數據分析等內容。最後還給出兩個案例:環保大數據和公安大數據,供讀者參考。

本書適合大數據技術初學者,政府、金融機構的大數據應用決策和技術人員,IT經理,CTO,CIO等快速學習大數據技術。本書也可以作為高等院校和培訓學校相關專業的培訓教材。

楊正洪,國內知名大數據專家,畢業於美國State University of New York at Stony Brook,在IBM公司從事大數據相關研發工作12年多。從2003~2013年,楊正洪在美國加州的IBM 谷實驗室(IBM Silicon Valley Lab)負責IBM大數據平台的設計、研發和實施,主持了保險行業、金融行業、政府行業的大數據系統的架構設計和實施。

楊正洪是華中科技大學和中國地質大學客座教授,擁有國家專利,是湖北省2013年海外引進人才。受武漢市政府邀請,楊正洪於2012年12月發起成立武漢市雲升科技發展有限公司,並獲得東湖高新技術開發區辦公場所和資金支持。

目前公司在浙江和上海分別有全資子公司,在美國 谷設有研發中心。公司的核心產品是大數據管理平台EasyDoop,並以EasyDoop為基礎研發了公安大數據產品和環保大數據產品。這些產品在公安和環保行業得到成功實施,三次被中央電視台新聞聯播節目播報,省部長級政府領導親自考察,並給予了很高的評價。

楊正洪參與了多項大數據相關標准的制定工作,曾受邀參與了公安部主導的「信息安全技術-大數據平台安全管理產品安全技術要求」的國家標准制定。
 

目錄

第1章 大數據時代 1
1.1 什麽是大數據 1
1.2 大數據的四大特征 2
1.3 大數據的商用化 3
1.4 大數據分析 5
1.5 大數據與雲計算的關系 5
1.6 大數據的國家戰略 6
1.6.1 政府大數據的價值 7
1.6.2 政府大數據的應用場景 8
1.7 企業如何迎接大數據 8
1.7.1 評估大數據方案的維度 9
1.7.2 業務價值維度 10
1.7.3 數據維度 11
1.7.4 現有IT環境和成本維度 12
1.7.5 數據治理維度 13
1.8 大數據產業鏈分析 14
1.8.1 技術分析 14
1.8.2 角色分析 15
1.8.3 大數據運營 17
1.9 大數據交易 18
1.10 大數據之我見 19
第2章 大數據軟件框架 20
2.1 Hadoop框架 20
2.1.1 HDFS(分布式文件系統) 21
2.1.2 MapReduce(分布式計算框架) 22
2.1.3 YARN(集群資源管理器) 25
2.1.4 Zookeeper(分布式協作服務) 28
2.1.5 Ambari(管理工具) 29
2.2 Spark(內存計算框架) 29
2.2.1 Scala 31
2.2.2 Spark SQL 32
2.2.3 Spark Streaming 33
2.3 實時流處理框架 34
2.4 框架的選擇 35
第3章 安裝與配置大數據軟件 36
3.1 Hadoop發行版 36
3.1.1 Cloudera 36
3.1.2 HortonWorks 37
3.1.3 MapR 38
3.2 安裝Hadoop前的准備工作 39
3.2.1 Linux主機配置 40
3.2.2 配置Java環境 41
3.2.3 安裝NTP和python 42
3.2.4 安裝和配置openssl 43
3.2.5 啟動和停止特定服務 44
3.2.6 配置SSH無密碼訪問 44
3.3 安裝Ambari 和 HDP 45
3.3.1 配置安裝包文件 45
3.3.2 安裝 Ambari 46
3.3.3 安裝和配置HDP 47
3.4 初識Hadoop 49
3.4.1 啟動和停止服務 50
3.4.2 使用HDFS 51
3.5 Hadoop的特性 52
第4章 大數據存儲:文件系統 53
4.1 HDFS shell命令 53
4.2 HDFS配置文件 55
4.3 HDFS API編程 57
4.3.1 讀取HDFS文件內容 57
4.3.2 寫HDFS文件內容 60
4.4 HDFS API總結 62
4.4.1 Configuration類 62
4.4.2 FileSystem抽象類 62
4.4.3 Path類 63
4.4.4 FSDataInputStream類 63
4.4.5 FSDataOutputStream類 63
4.4.6 IOUtils類 63
4.4.7 FileStatus類 64
4.4.8 FsShell類 64
4.4.9 ChecksumFileSystem抽象類 64
4.4.10 其他HDFS API實例 64
4.4.11 綜合實例 67
4.5 HDFS文件格式 69
4.5.1 SequenceFile 70
4.5.2 TextFile(文本格式) 70
4.5.3 RCFile 70
4.5.4 Avro 72
第5章 大數據存儲:數據庫 73
5.1 NoSQL 73
5.2 HBase管理 74
5.2.1 HBase表結構 75
5.2.2 HBase系統架構 78
5.2.3 啟動並操作HBase數據庫 80
5.2.4 HBase Shell工具 82
5.3 HBase編程 86
5.3.1 增刪改查API 86
5.3.2 過濾器 90
5.3.3 計數器 93
5.3.4 原子操作 94
5.3.5 管理API 94
5.4 其他NoSQL數據庫 95
第6章 大數據訪問:SQL引擎層 97
6.1 Phoenix 97
6.1.1 安裝和配置Phoenix 98
6.1.2 在eclipse上開發phoenix程序 104
6.1.3 Phoenix SQL工具 108
6.1.4 Phoenix SQL 語法 109
6.2 Hive 111
6.2.1 Hive架構 111
6.2.2 安裝Hive 112
6.2.3 Hive和MySQL的配置 114
6.2.4 Hive CLI 115
6.2.5 Hive數據類型 115
6.2.6 HiveQL DDL 119
6.2.7 HiveQL DML 121
6.2.8 Hive編程 123
6.2.9 HBase集成 125
6.2.10 XML和JSON數據 127
6.2.11 使用Tez 128
6.3 Pig 130
6.3.1 Pig語法 131
6.3.2 Pig和Hive的使用場景比較 134
6.4 ElasticSearch(全文搜索引擎) 136
6.4.1 全文索引的基礎知識 136
6.4.2 安裝和配置ES 138
6.4.3 ES API 140
第7章 大數據采集和導入 143
7.1 Flume 145
7.1.1 Flume架構 145
7.1.2 Flume事件 146
7.1.3 Flume源 147
7.1.4 Flume攔截器(Interceptor) 148
7.1.5 Flume通道選擇器(Channel Selector) 149
7.1.6 Flume通道 150
7.1.7 Flume接收器 151
7.1.8 負載均衡和單點失敗 153
7.1.9 Flume監控管理 153
7.1.10 Flume實例 154
7.2 Kafka 155
7.2.1 Kafka架構 156
7.2.2 Kafka與JMS的異同 158
7.2.3 Kafka性能考慮 158
7.2.4 消息傳送機制 159
7.2.5 Kafka和Flume的比較 159
7.3 Sqoop 160
7.3.1 從數據庫導入HDFS 160
7.3.2 增量導入 163
7.3.3 將數據從Oracle導入Hive 163
7.3.4 將數據從Oracle導入HBase 164
7.3.5 導入所有表 165
7.3.6 從HDFS導出數據 165
7.3.7 數據驗證 165
7.3.8 其他Sqoop功能 165
7.4 Storm 167
7.4.1 Storm基本概念 168
7.4.2 spout 169
7.4.3 bolt 171
7.4.4 拓撲 173
7.4.5 Storm總結 175
7.5 Splunk 175
第8章 大數據管理平台 177
8.1 大數據建設總體架構 177
8.2 大數據管理平台的必要性 178
8.3 大數據管理平台的功能 179
8.3.1 推進數據資源全面整合共享 179
8.3.2 增強數據管理水平 180
8.3.3 支撐創新大數據分析 180
8.4 數據管理平台(DMP) 180
8.5 EasyDoop案例分析 182
8.5.1 大數據建模平台 183
8.5.2 大數據交換和共享平台 184
8.5.3 大數據雲平台 185
8.5.4 大數據服務平台 186
8.5.5 EasyDoop平台技術原理分析 188
第9章 Spark技術 192
9.1 Spark框架 192
9.1.1 安裝Spark 193
9.1.2 配置Spark 194
9.2 Spark Shell 195
9.3 Spark編程 198
9.3.1 編寫Spark API程序 198
9.3.2 使用sbt編譯並打成jar包 199
9.3.3 運行程序 200
9.4 RDD 200
9.4.1 RDD算子和RDD依賴關系 201
9.4.2 RDD轉換操作 203
9.4.3 RDD行動(Action)操作 204
9.4.4 RDD控制操作 205
9.4.5 RDD實例 205
9.5 Spark SQL 208
9.5.1 DataFrame 209
9.5.2 RDD轉化為DataFrame 213
9.5.3 JDBC數據源 215
9.5.4 Hive數據源 216
9.6 Spark Streaming 217
9.6.1 DStream編程模型 218
9.6.2 DStream操作 221
9.6.3 性能考慮 223
9.6.4 容錯能力 224
9.7 GraphX圖計算框架 224
9.7.1 屬性圖 226
9.7.2 圖操作符 228
9.7.3 屬性操作 231
9.7.4 結構操作 231
9.7.5 關聯(join)操作 233
9.7.6 聚合操作 234
9.7.7 計算度信息 235
9.7.8 緩存操作 236
9.7.9 圖算法 236
第10章 大數據分析 238
10.1 數據科學 239
10.1.1 探索性數據分析 240
10.1.2 描述統計 241
10.1.3 數據可視化 241
10.2 預測分析 244
10.2.1 預測分析實例 244
10.2.2 回歸(Regression)分析預測法 246
10.3 機器學習 247
10.3.1 機器學習的市場動態 248
10.3.2 機器學習分類 249
10.3.3 機器學習算法 251
10.4 Spark MLib 252
10.4.1 MLib架構 253
10.4.2 MLib算法庫 253
10.4.3 決策樹 257
10.5 深入了解算法 261
10.5.1 分類算法 262
10.5.2 預測算法 263
10.5.3 聚類分析 263
10.5.4 關聯分析 264
10.5.5 異常值分析算法 266
10.5.6 協同過濾(推薦引擎)算法 267
10.6 Mahout簡介 267
第11章 案例分析:環保大數據 268
11.1 環保大數據管理平台 268
11.2 環保大數據應用平台 269
11.2.1 環境自動監測監控服務 270
11.2.2 綜合查詢服務 272
11.2.3 統計分析服務 272
11.2.4 GIS服務 274
11.2.5 視頻服務 274
11.2.6 預警服務 275
11.2.7 應急服務 276
11.2.8 電子政務服務 277
11.2.9 智能化運營管理系統 279
11.2.10 環保移動應用系統 279
11.2.11 空氣質量發布系統 280
11.3 環保大數據分析系統 280
第12章 案例分析:公安大數據 281
12.1 總體架構設計 281
12.2 建設內容 282
12.3 建設步驟 284
附錄 1 數據量的單位級別 285
附錄 2 Linux Shell常見命令 286
附錄 3 Ganglia(分布式監控系統) 289
附錄 4 auth-ssh腳本 290
附錄 5 作者簡介 292
 

我們生活在大數據時代,正以前所未有的速度和規模產生數據。數據資產正成為和土地、資本、人力並駕齊驅的關鍵生產要素,並在社會、經濟、科學研究等方面顛覆人們探索世界的方法、驅動產業間的融合與分立。

大數據是用來描述數據規模巨大、數據類型復雜的數據集,它本身蘊含着豐富的價值。比如:在金融行業,企業和個人的一些信用記錄、消費記錄、客戶點擊數據集、客戶刷卡、存取款、電子銀行轉賬、微信評論等行為數據組合為金融大數據,他們利用大數據技術為財富客戶推薦產品,利用客戶行為數據設計滿足客戶需求的金融產品,利用金融行業全局數據了解業務運營薄弱點並加快內部數據處理速度,利用決策樹技術進入抵押貸款管理,利用數據分析報告實施產業信貸風險控制,利用客戶社交行為記錄實施信用卡反欺詐,依據客戶消費習慣、地理位置、銷售時間進行推薦(精准營銷)。不僅僅金融行業,政府部門會根據大數據分析結果來做預算,企業也會根據大數據來進行市場策略調整。

Gartner指出,64%的受訪企業表示他們正在或是即將進行大數據工作,然而其中一些企業卻並不知道他們能夠使用大數據做些什麼。這正好印證了大數據領域的最主要的兩個挑戰:如何從大數據中獲取價值以及如何定義大數據戰略。這是本書首先需要解釋的內容。

谷歌、Amazon、Facebook等全球知名互聯網企業作為大數據領域的先驅者,憑借自身力量進行大數據探索,甚至在必要時創造出相關工具。這些工具目前已經被視為大數據技術的基礎,其中最知名的當數MapReduce與Hadoop。Hadoop是目前處理大規模結構化與非結構數據的首選平台,它提供了分布式處理框架與開發環境。MapReduce是一種計算框架,它實現了將大型數據處理任務分解成很多單個的、可以在服務器集群中並行執行的任務,這些任務的計算結果可以合並在一起來計算最終的結果。在Hadoop問世以來的十年間,新的組件(如:Spark)層出不窮,極大地擴張了整個Hadoop生態圈。

大數據技術有別於傳統數據處理工具和技術,而且大數據技術很難掌握,一般需要1-2年的反復嘗試,在實際使用中解決了大量問題之后才能正確理解它。我們編寫這本書的目的是,以硅谷大數據實戰為基礎,讓讀者略過那些不重要的大數據的細枝末節,通過實際的案例,幫助讀者快速掌握大數據技術領域最能商用的大數據工具和軟件平台,從而幫助讀者輕松實施大數據方案。

在本書中,我們將闡述如下最為硅谷所熟知的大數據相關技術:
框架:Hadoop、Spark。
集群管理:MapReduce、Yarn、Mesos。
開發語言:Java、Python、Scala、Pig、Hive、SparkSQL。
數據庫:NoSQL、HBase、Cassandra、Impala。
文件系統:HDFS、Ceph。
搜索系統:ElasticSearch。
采集系統:Flume、Sqoop、Kafka。
流式處理:SparkStreaming、Storm。
發行版:HortonWorks、Cloudera、MapR。
管理系統:Ambari、大數據管理平台。
機器學習:SparkMLlib、Mahout。

上面的列表也說明了,Hadoop生態圈有幾十個軟件組成。這些軟件提供了什麼功能?到底在什麼情況下使用什麼軟件?軟件之間怎麼組合使用?這些問題正是本書想要回答的。

本書與市場上其他大數據書籍的區別是,我們不是專注某一個軟件(比如:Spark),而是闡述整個生態圈中的主流軟件,通過實例讓你理解這些軟件是什麼,在什麼場合使用,相互的區別是什麼。如果我們把這幾十個軟件比喻成幾十種廚房工具,那就是讓你避免拿着菜刀去削蘋果,或者拿着水果刀去剁肉。

除了闡述大數據的定義、前景和各類Hadoop發行版之外,本書主要是按照大數據處理的幾個大步驟來組織內容的。

(1)大數據存儲:探究HDFS和HBase作為大數據存儲方式的優劣。

(2)大數據訪問:探究SQL引擎層中Hive、Phoenix、SparkSQL等組件的功能,並闡述了全文搜索的ElasticSearch,也探究了Spark的高速訪問能力。

(3)大數據采集:大數據的采集是指接收各類數據源(比如:Web、行業應用系統或者傳感器等)的數據。大數據采集的主要特點和挑戰是導入的數據量大(每秒鍾的導入量經常會達到百兆,甚至千兆級別)、並發數高和數據源的異構。采集端可能會有很多數據庫(或文件),有時需要在導入基礎上做一些簡單的清洗和預處理工作。在這個部分,我們探究了Flume、Kafka、Sqoop等技術,也探究了如何使用Storm和SparkStreaming來對數據進行流式計算,來滿足部分業務的實時和准實時計算需求。

(4)大數據管理:探究數據模型、安全控制、數據生命周期等數據管理內容。
(5)大數據的統計和分析:探究了如何利用分布式計算集群來對存儲於其內的海量數據進行統計分析,重點探究了機器學習和SparkMLlib,也闡述了多種分析算法。

參加本書編寫的同志還有:余飛、邵敏華、歐陽濤、楊正禮、王娜、李祥、劉畢操、彭勃、李招、張劍、楊磊等人。由於我們水平有限,書中難免存在紕漏之處,敬請讀者批評指正。楊正洪的郵件地址為[email protected]

楊正洪
2016年5月於SanJose
網路書店 類別 折扣 價格
  1. 新書
    87
    $308