Hadoop已經(jīng)是業(yè)界公認(rèn)的大數(shù)據(jù)處理的事實標(biāo)準(zhǔn),對海量數(shù)據(jù)的存儲與處理都是不在話下,不過,隨著業(yè)務(wù)的復(fù)雜化以及需求的多變,分析師們迫切地想要看到結(jié)果從而進行分析,而目前Hadoop離線+批量處理的方式稍微有點力不從心,有沒有一種能夠更靈活地使用和加工數(shù)據(jù)的方法呢?鑒于此,Elasticsearch脫穎而出,Elasticsearch可以很方便地對海量數(shù)據(jù)進行搜索與聚合,并且能夠?qū)崟r響應(yīng),用戶無需為每次不同的查詢而重新定義Schema或者預(yù)處理。
數(shù)據(jù)科學(xué)家可以非常靈活地對數(shù)據(jù)進行各種維度的鉆取與分析,把更多的精力關(guān)注在業(yè)務(wù)本身和挖掘數(shù)據(jù)本身的價值,并且可以隨時根據(jù)上一個查詢得到的線索隨時去構(gòu)建新的查詢從而繼續(xù)挖掘,這在以前是不敢想象的。另外,Elasticsearch還能和Hadoop進行結(jié)合,Hadoop 適合海量數(shù)據(jù)的歸檔與離線預(yù)處理,Elasticsearch則進行實時檢索與分析,而本書是目前介紹這兩方面結(jié)合使用的非常好的中文資料,相信對您一定會大有裨益。
ElasticSearch是一個開源的分布式搜索引擎,具有高可靠性,支持非常多的企業(yè)級搜索用例。ElasticsearchHadoop作為一個完美的工具,用來連接Elasticsearch和Hadoop的生態(tài)系統(tǒng)。通過Kibana技術(shù),ElasticsearchHadoop很容易從Hadoop生態(tài)系統(tǒng)中獲得大數(shù)據(jù)分析的結(jié)果。
本書全面介紹ElasticsearchHadoop技術(shù)用于大數(shù)據(jù)分析以及數(shù)據(jù)可視化的方法。內(nèi)容共分7章,包括Hadoop、Elasticsearch、Marvel和Kibana安裝;通過編寫MapReduce作業(yè),把Hadoop數(shù)據(jù)導(dǎo)入Elasticsearch;全面分析Elasticsearch本質(zhì),如全文本搜索分析、查詢、篩選器和聚合;使用Kibana創(chuàng)建各種可視化和交互式儀表板,并使用Storm和Elasticsearch分類現(xiàn)實世界的流數(shù)據(jù)以及相關(guān)的其他主題。
本書適合從事大數(shù)據(jù)分析人員、大數(shù)據(jù)應(yīng)用開發(fā)的人員參考,也適合高等院校及培訓(xùn)機構(gòu)相關(guān)專業(yè)的師生教學(xué)參考。
賈傳青,數(shù)據(jù)架構(gòu)師,Oracle OCM,DB2遷移之星,TechTarget特約作家,從數(shù)據(jù)庫向大數(shù)據(jù)轉(zhuǎn)型的先行者,酷愛攝影。曾服務(wù)于中國聯(lián)通、中國電信、建設(shè)銀行、PICC等,目前供職于一家大數(shù)據(jù)解決方案提供商,致力于大數(shù)據(jù)技術(shù)的應(yīng)用與實踐。著有《開源大數(shù)據(jù)分析引擎Impala實戰(zhàn)》一書。
第1章 環(huán)境部署 1
1.1 安裝部署Hadoop集群 1
Java安裝和配置 2
用戶添加和配置 2
SSH認(rèn)證配置 3
Hadoop下載 4
環(huán)境變量配置 4
Hadoop配置 5
配置core-site.xml 6
配置hdfs-site.xml 6
配置yarn-site.xml 6
配置mapred-site.xml 7
格式化HDFS 7
啟動Hadoop進程 8
1.2 安裝Elasticsearch及相關(guān)插件 8
下載Elasticsearch 9
配置Elasticsearch 9
安裝Head插件 11
安裝Marvel插件 11
啟動Elasticsearch 12
1.3 運行WordCount示例 13
下載編譯示例程序 13
將示例文件上傳到HDFS 13
運行第一個作業(yè) 14
1.4 使用Head 和 Marvel瀏覽數(shù)據(jù) 16
使用Head瀏覽數(shù)據(jù) 16
初識Marvel 18
使用Sense瀏覽數(shù)據(jù) 19
小結(jié) 21
第2章 初識ES-Hadoop 22
2.1 理解WordCount程序 23
理解Mapper 23
理解Reducer 24
理解Driver 25
使用舊的API——org.apache.hadoop.mapred 28
2.2 實際案例——網(wǎng)絡(luò)數(shù)據(jù)監(jiān)控 28
獲取并理解數(shù)據(jù) 28
明確問題 29
解決方案 30
解決方案1——預(yù)聚合結(jié)果 30
解決方案2——直接查詢聚合結(jié)果 32
2.3 開發(fā)MapReduce作業(yè) 33
編寫Mapper類 34
編寫Driver 37
編譯作業(yè) 38
上傳數(shù)據(jù)到HDFS 41
運行作業(yè) 41
查看TOP N結(jié)果 42
2.4 將數(shù)據(jù)從Elasticsearch寫回HDFS 44
了解Twitter數(shù)據(jù)集 44
導(dǎo)入Elasticsearch 45
創(chuàng)建MapReduce作業(yè) 46
編寫Tweets2HdfsMapper 46
運行示例 50
確認(rèn)輸出 50
小結(jié) 52
第3章 深入理解Elasticsearch 53
3.1 理解搜索 53
觀念轉(zhuǎn)換 54
索引 54
類型 55
文檔 55
字段 55
3.2 與Elasticsearch交互 56
Elasticsearch的CRUD 56
創(chuàng)建文檔 56
獲取文檔 57
更新文檔 58
刪除文檔 58
創(chuàng)建索引 58
映射 59
數(shù)據(jù)類型 60
創(chuàng)建映射 61
索引模板 62
3.3 控制索引過程 63
什么是反轉(zhuǎn)索引 63
輸入數(shù)據(jù)分析 64
停止詞 64
大小寫 65
詞根 65
同義詞 65
分析器 65
3.4 Elastic查詢 67
編寫查詢語句 68
URI查詢 68
match_all查詢 68
term查詢 68
boolean查詢 70
match查詢 71
range查詢 72
wildcard查詢 73
過濾器 73
3.5 聚合查詢 75
執(zhí)行聚合查詢 76
terms聚合 76
histogram聚合 78
range聚合 78
geo distance聚合 79
嵌套聚合 81
自測題 82
小結(jié) 82
第4章 利用Kibana進行大數(shù)據(jù)可視化 83
4.1 安裝部署 83
Kibana安裝 84
準(zhǔn)備數(shù)據(jù) 84
自測題 85
啟動Kibana 86
4.2 數(shù)據(jù)發(fā)現(xiàn) 87
4.3 數(shù)據(jù)可視化 90
餅圖 91
堆積柱狀圖 94
使用堆積柱狀圖完成日期直方圖 96
面積圖 97
餅圖組圖 98
環(huán)形圖 98
瓦片地圖 99
自測題 100
4.4 動態(tài)圖表 101
小結(jié) 104
第5章 實時分析 105
5.1 了解Twitter趨勢分析器 105
實現(xiàn)目標(biāo) 106
Apache Storm安裝 107
5.2 將流式數(shù)據(jù)接入Storm 107
編寫Storm spout 108
編寫Storm bolt 110
創(chuàng)建Storm topology 112
編譯運行Storm作業(yè) 113
5.3 趨勢分析 114
significant term聚合 114
使用Kibana分析趨勢 116
5.4 使用Percolator對推文分類 117
Percolator 118
Percolator優(yōu)化 120
推文分類 121
小結(jié) 124
第6章 ES-Hadoop配置 125
6.1 分布式環(huán)境中的Elasticsearch 125
集群和節(jié)點 126
節(jié)點類型 126
節(jié)點發(fā)現(xiàn) 128
數(shù)據(jù)分布 129
分片 129
副本 129
分片分配 130
6.2 ES-Hadoop架構(gòu) 132
動態(tài)并行 132
寫入Elasticsearch 133
從Elasticsearch中讀取 134
失敗捕獲 134
數(shù)據(jù)本地化 135
6.3 生產(chǎn)環(huán)境配置 135
硬件 135
內(nèi)存 135
CPU 135
磁盤 136
網(wǎng)絡(luò) 136
集群安裝 137
集群拓?fù)浣Y(jié)構(gòu) 137
設(shè)置名稱 138
設(shè)置路徑 138
設(shè)置內(nèi)存 139
腦裂問題 140
設(shè)置恢復(fù)參數(shù) 141
預(yù)設(shè)配置 142
數(shù)據(jù)導(dǎo)入 142
全文檢索 144
快速聚合 144
生產(chǎn)環(huán)境部署檢查列表 145
6.4 集群管理 146
監(jiān)控集群健康 146
備份和恢復(fù) 149
數(shù)據(jù)備份 149
數(shù)據(jù)恢復(fù) 150
小結(jié) 151
第7章 與Hadoop生態(tài)系統(tǒng)集成 152
7.1 與Pig集成 152
Pig安裝 154
向Elasticsearch中導(dǎo)入數(shù)據(jù) 155
從JSON源寫數(shù)據(jù) 157
類型轉(zhuǎn)換 157
從Elasticsearch中讀取數(shù)據(jù) 158
7.2 與Hive集成 158
安裝Apache Hive 158
向Elasticsearch中導(dǎo)入數(shù)據(jù) 159
從JSON源寫數(shù)據(jù) 161
類型轉(zhuǎn)換 161
從Elasticsearch中讀取數(shù)據(jù) 162
7.3 與Cascading集成 163
向Elasticsearch中導(dǎo)入數(shù)據(jù) 163
編寫一個Cascading作業(yè) 163
運行作業(yè) 164
從Elasticsearch中讀取數(shù)據(jù) 165
編寫一個reader作業(yè) 165
使用Lingual 165
7.4 與Spark集成 167
安裝Spark 168
向Elasticsearch中導(dǎo)入數(shù)據(jù) 168
使用SparkSQL向Elasticsearch中導(dǎo)入數(shù)據(jù) 169
從Elasticsearch中讀取數(shù)據(jù) 170
使用SparkSQL從Elasticsearch中讀取數(shù)據(jù) 170
7.5 與YARN集成 171
小結(jié) 172
附錄 配置 174
基本配置 174
es.resource 174
es.resource.read 174
es.resource.write 175
es.nodes 175
es.port 175
讀寫配置 175
es.query 175
es.input.json 176
es.write.operation 177
es.update.script 177
es.update.script.lang 177
es.update.script.params 177
es.update.script.params.json 178
es.batch.size.bytes 178
es.batch.size.entries 178
es.batch.write.refresh 178
es.batch.write.retry.count 178
es.batch.write.retry.wait 179
es.ser.reader.value.class 179
es.ser.writer.value.class 179
es.update.retry.on.conflict 179
映射配置 179
es.mapping.id 179
es.mapping.parent 180
es.mapping.version 180
es.mapping.version.type 180
es.mapping.routing 180
es.mapping.ttl 180
es.mapping.timestamp 181
es.mapping.date.rich 181
es.mapping.include 181
es.mapping.exclude 181
索引配置 181
es.index.auto.create 181
es.index.read.missing.as.empty 182
es.field.read.empty.as.null 182
es.field.read.validate.presence 182
網(wǎng)絡(luò)配置 182
es.nodes.discovery 182
es.nodes.client.only 183
es.http.timeout 183
es.http.retries 183
es.scroll.keepalive 183
es.scroll.size 183
es.action.heart.beat.lead 183
認(rèn)證配置 184
es.net.http.auth.user 184
es.net.http.auth.pass 184
SSL配置 184
es.net.ssl 184
es.net.ssl.keystore.location 184
es.net.ssl.keystore.pass 184
es.net.ssl.keystore.type 184
es.net.ssl.truststore.location 184
es.net.ssl.truststore.pass 185
es.net.ssl.cert.allow.self.signed 185
es.net.ssl.protocol 185
es.scroll.size 185
代理配置 185
es.net.proxy.http.host 185
es.net.proxy.http.port 185
es.net.proxy.http.user 185
es.net.proxy.http.pass 186
es.net.proxy.http.use.system.props 186
es.net.proxy.socks.host 186
es.net.proxy.socks.port 186
es.net.proxy.socks.user 186
es.net.proxy.socks.pass 186
es.net.proxy.socks.use.system.props 186