産品特色
編輯推薦
本書作者楊正洪是國內知名大數據專傢,是華中科技大學和中國地質大學客座教授,擁有國傢專利,是湖北省2013年海外引進的科技人纔,受武漢市政府邀請,成立武漢市雲升科技發展有限公司,在浙江和上海分彆有全資子公司,在美國矽榖設有研發中心。作者在與地方政府、證券金融公司的項目閤作中發現,他們對大數據技術很感興趣,並希望從大數據技術、大數據采集、管理、分析以及可視化等方麵得到指導和應用幫助。因此編寫瞭這本大數據技術的快速入門書。
本書以Hadoop和Spark框架為綫索,比較全麵地介紹瞭Hadoop技術、Spark技術、大數據存儲、大數據訪問、大數據采集、大數據管理、大數據分析等內容。最後還給齣兩個案例:環保大數據和公安大數據,供讀者參考。
內容簡介
從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
精彩書摘
第 9 章 Spark技術
Apache Spark 是一個新興的大數據處理通用引擎,提供瞭分布式的內存抽象。Spark最大的特點就是快(Lightning-Fast),可比 Hadoop MapReduce 的處理速度快 100 倍。此外,Spark 提供瞭簡單易用的 API,幾行代碼就能實現 WordCount。本章介紹Spark 的框架,Spark Shell 、RDD、Spark SQL、Spark Streaming 等的基本使用。
9.1 Spark框架
Spark作為新一代大數據快速處理平颱,集成瞭大數據相關的各種能力。Hadoop的中間數據需要存儲在硬盤上,這産生瞭較高的延遲。而Spark基於內存計算,解決瞭這個延遲的速度問題。Spark本身可以直接讀寫Hadoop上任何格式數據,這使得批處理更加快速。
圖9-1是以Spark為核心的大數據處理框架。最底層為大數據存儲係統,如:HDFS、HBase等。在存儲係統上麵是Spark集群模式(也可以認為是資源管理層),這包括Spark自帶的獨立部署模式、YARN和Mesos集群資源管理模式,也可以是Amazon EC2。Spark內核之上是為應用提供各類服務的組件。Spark內核API支持Java、Python、Scala等編程語言。Spark Streaming提供高可靠性、高吞吐量的實時流式處理服務,能夠滿足實時係統要求;MLib提供機器學習服務,Spark SQL提供瞭性能比Hive快瞭很多倍的SQL查詢服務,GraphX提供圖計算服務。
圖9-1 Spark 框架
從上圖看齣,Spark有效集成瞭Hadoop組件,可以基於Hadoop YARN作為資源管理框架,並從HDFS和HBase數據源上讀取數據。YARN是Spark目前主要使用的資源管理器。Hadoop能做的,Spark基本都能做,而且做的比Hadoop好。Spark依然是Hadoop生態圈的一員,它替換的主要是MR的計算模型而已。資源調度依賴於YARN,存儲則依賴於HDFS。
Spark的大數據處理平颱是建立在統一抽象的RDD之上。RDD是彈性分布式數據集(Resilient Distributed Dataset)的英文簡稱,它是一種特殊數據集閤,支持多種來源,有容錯機製,可以被緩存,支持並行操作。Spark的一切都是基於RDD的。RDD就是Spark輸入的數據。
Spark應用程序在集群上以獨立進程集閤的形式運行。如圖9-2所示,主程序(叫做Driver程序)中的SparkContext對象協調Spark應用程序。SparkContext對象首先連接到多種集群管理器(如:YARN),然後在集群節點上獲得Executor。SparkContext把應用代碼發給Executor,Executor負責應用程序的計算和數據存儲。
圖9-2 集群模式
每個應用程序都擁有自己的Executor。Executor為應用程序提供瞭一個隔離的運行環境,以Task的形式執行作業。對於Spark Shell來說,這個Driver就是與用戶交互的進程。
9.1.1 安裝Spark
最新的Spark版本是1.6.1。它可以運行在Windows或Linux機器上。運行 Spark 需要 Java JDK 1.7,CentOS 6.x 係統默認隻安裝瞭 Java JRE,還需要安裝 Java JDK,並確保配置好 JAVA_HOME、PATH和CLASSPATH變量。此外,Spark 會用到 HDFS 與 YARN,因此讀者要先安裝好 Hadoop。我們可以從Spark官方網站http://spark.apache.org/downloads.html上下載Spark,如圖9-3所示。
圖9-3 下載安裝包
有幾種Package type,分彆為:
l Source code:Spark 源碼,需要編譯纔能使用。
l Pre-build with user-provided H
大數據技術入門 下載 mobi epub pdf txt 電子書