圖書介紹
從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為基礎研發了公安大數據產品和環保大數據產品。這些產品在公安和環保行業得到成功實施,三次被中央電視台新聞聯播節目播報,省部長級政府領導親自考察,並給予了很高的評價。
楊正洪參與了多項大數據相關標準的制定工作,曾受邀參與了公安部主導的“信息安全技術-大數據平台安全管理產品安全技術要求”的國家標準制定。
編輯推薦
本書作者楊正洪是國內知名大數據專家,是華中科技大學和中國地質大學客座教授,擁有國家專利,是湖北省2013年海外引進的科技人才,受武漢市政府邀請,成立武漢市雲升科技發展有限公司,在浙江和上海分別有全資子公司,在美國矽谷設有研發中心。作者在與地方政府、證券金融公司的項目合作中發現,他們對大數據技術很感興趣,並希望從大數據技術、大數據採集、管理、分析以及可視化等方面得到指導和套用幫助。因此編寫了這本大數據技術的快速入門書。
本書以Hadoop和Spark框架為線索,比較全面地介紹了Hadoop技術、Spark技術、大數據存儲、大數據訪問、大數據採集、大數據管理、大數據分析等內容。最後還給出兩個案例:環保大數據和公安大數據,供讀者參考。
圖書目錄
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.1Hadoop框架20
2.1.2MapReduce(分散式計算框架)22
2.1.3YARN(集群資源管理器)25
2.1.4Zookeeper(分散式協作服務)28
2.1.5Ambari(管理工具)29
2.2Spark(記憶體計算框架)29
2.2.1Scala31
2.2.2SparkSQL32
2.2.3SparkStreaming33
2.3實時流處理框架34
2.4框架的選擇35
第3章安裝與配置大數據軟體36
3.1Hadoop發行版36
3.1.1Cloudera36
3.1.2HortonWorks37
3.1.3MapR38
3.2安裝Hadoop前的準備工作39
3.2.1Linux主機配置40
3.2.2配置Java環境41
3.2.3安裝NTP和python42
3.2.4安裝和配置openssl43
3.2.5啟動和停止特定服務44
3.2.6配置SSH無密碼訪問44
3.3安裝Ambari和HDP45
3.3.1配置安裝包檔案45
3.3.2安裝Ambari46
3.3.3安裝和配置HDP47
3.4初識Hadoop49
3.4.1啟動和停止服務50
3.4.2使用HDFS51
3.5Hadoop的特性52
第4章大數據存儲:檔案系統53
4.1HDFSshell命令53
4.2HDFS配置檔案55
4.3HDFSAPI編程57
4.3.1讀取HDFS檔案內容57
4.3.2寫HDFS檔案內容60
4.4HDFSAPI總結62
4.4.1Configuration類62
4.4.2FileSystem抽象類62
4.4.3Path類63
4.4.4FSDataInputStream類63
4.4.5FSDataOutputStream類63
4.4.6IOUtils類63
4.4.7FileStatus類64
4.4.8FsShell類64
4.4.9ChecksumFileSystem抽象類64
4.4.10其他HDFSAPI實例64
4.4.11綜合實例67
4.5HDFS檔案格式69
4.5.1SequenceFile70
4.5.2TextFile(文本格式)70
4.5.3RCFile70
4.5.4Avro72
第5章大數據存儲:資料庫73
5.1NoSQL73
5.2HBase管理74
5.2.1HBase表結構75
5.2.2HBase系統架構78
5.2.3啟動並操作HBase資料庫80
5.2.4HBaseShell工具82
5.3HBase編程86
5.3.1增刪改查API86
5.3.2過濾器90
5.3.3計數器93
5.3.4原子操作94
5.3.5管理API94
5.4其他NoSQL資料庫95
第6章大數據訪問:SQL引擎層97
6.1Phoenix97
6.1.1安裝和配置Phoenix98
6.1.2在eclipse上開發phoenix程式104
6.1.3PhoenixSQL工具108
6.1.4PhoenixSQL語法109
6.2Hive111
6.2.1Hive架構111
6.2.2安裝Hive112
6.2.3Hive和MySQL的配置114
6.2.4HiveCLI115
6.2.5Hive數據類型115
6.2.6HiveQLDDL119
6.2.7HiveQLDML121
6.2.8Hive編程123
6.2.9HBase集成125
6.2.10XML和JSON數據127
6.2.11使用Tez128
6.3Pig130
6.3.1Pig語法131
6.3.2Pig和Hive的使用場景比較134
6.4ElasticSearch(全文搜尋引擎)136
6.4.1全文索引的基礎知識136
6.4.2安裝和配置ES138
6.4.3ESAPI140
第7章大數據採集和導入143
7.1Flume145
7.1.1Flume架構145
7.1.2Flume事件146
7.1.3Flume源147
7.1.4Flume攔截器(Interceptor)148
7.1.5Flume通道選擇器(ChannelSelector)149
7.1.6Flume通道150
7.1.7Flume接收器151
7.1.8負載均衡和單點失敗153
7.1.9Flume監控管理153
7.1.10Flume實例154
7.2Kafka155
7.2.1Kafka架構156
7.2.2Kafka與JMS的異同158
7.2.3Kafka性能考慮158
7.2.4訊息傳送機制159
7.2.5Kafka和Flume的比較159
7.3Sqoop160
7.3.1從資料庫導入HDFS160
7.3.2增量導入163
7.3.3將數據從Oracle導入Hive163
7.3.4將數據從Oracle導入HBase164
7.3.5導入所有表165
7.3.6從HDFS導出數據165
7.3.7數據驗證165
7.3.8其他Sqoop功能165
7.4Storm167
7.4.1Storm基本概念168
7.4.2spout169
7.4.3bolt171
7.4.4拓撲173
7.4.5Storm總結175
7.5Splunk175
第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.5EasyDoop案例分析182
8.5.1大數據建模平台183
8.5.2大數據交換和共享平台184
8.5.3大數據云平台185
8.5.4大數據服務平台186
8.5.5EasyDoop平台技術原理分析188
第9章Spark技術192
9.1Spark框架192
9.1.1安裝Spark193
9.1.2配置Spark194
9.2SparkShell195
9.3Spark編程198
9.3.1編寫SparkAPI程式198
9.3.2使用sbt編譯並打成jar包199
9.3.3運行程式200
9.4RDD200
9.4.1RDD運算元和RDD依賴關係201
9.4.2RDD轉換操作203
9.4.3RDD行動(Action)操作204
9.4.4RDD控制操作205
9.4.5RDD實例205
9.5SparkSQL208
9.5.1DataFrame209
9.5.2RDD轉化為DataFrame213
9.5.3JDBC數據源215
9.5.4Hive數據源216
9.6SparkStreaming217
9.6.1DStream編程模型218
9.6.2DStream操作221
9.6.3性能考慮223
9.6.4容錯能力224
9.7GraphX圖計算框架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.4SparkMLib252
10.4.1MLib架構253
10.4.2MLib算法庫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.6Mahout簡介267
第11章案例分析:環保大數據268
11.1環保大數據管理平台268
11.2環保大數據套用平台269
11.2.1環境自動監測監控服務270
11.2.2綜合查詢服務272
11.2.3統計分析服務272
11.2.4GIS服務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
附錄2LinuxShell常見命令286
附錄3Ganglia(分散式監控系統)289
附錄4auth-ssh腳本290
附錄5作者簡介292