《Elasticsearch集成Hadoop最佳實踐》是2017年6月清華大學出版社出版的圖書,作者是(美)Vishal Shukla。
基本介紹
- 書名:Elasticsearch集成Hadoop最佳實踐
- 作者:(美)Vishal Shukla
- 出版社:清華大學出版社
- 出版時間:2017年6月
- 定價:55 元
- ISBN:9787302469674
內容簡介,圖書目錄,
內容簡介
ElasticSearch是一個開源的分散式搜尋引擎,具有高可靠性,支持非常多的企業級搜尋用例。Elasticsearch Hadoop作為一個完美的工具,用來連線 Elasticsearch 和 Hadoop 的生態系統。通過Kibana技術,Elasticsearch Hadoop很容易從Hadoop 生態系統中獲得大數據分析的結果。
本書全面介紹Elasticsearch Hadoop技術用於大數據分析以及數據可視化的方法。內容共分7章,包括Hadoop、Elasticsearch、 Marvel和 Kibana 安裝;通過編寫 MapReduce 作業,把Hadoop數據導入 Elasticsearch;全面分析 Elasticsearch本質,如全文本搜尋分析、 查詢、 篩選器和聚合;使用 Kibana創建各種可視化和互動式儀錶板,並使用Storm和 Elasticsearch分類現實世界的流數據以及相關的其他主題。
本書適合從事大數據分析人員、大數據套用開發的人員參考,也適合高等院校及培訓機構相關專業的師生教學參考。
圖書目錄
第1章 環境部署 1
1.1 安裝部署Hadoop集群 1
Java安裝和配置 2
用戶添加和配置 2
SSH認證配置 3
Hadoop下載 4
環境變數配置 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及相關外掛程式 8
下載Elasticsearch 9
配置Elasticsearch 9
安裝Head外掛程式 11
安裝Marvel外掛程式 11
啟動Elasticsearch 12
1.3 運行WordCount示例 13
下載編譯示例程式 13
將示例檔案上傳到HDFS 13
運行第一個作業 14
1.4 使用Head 和 Marvel瀏覽數據 16
使用Head瀏覽數據 16
初識Marvel 18
使用Sense瀏覽數據 19
小結 21
第2章 初識ES-Hadoop 22
2.1 理解WordCount程式 23
理解Mapper 23
理解Reducer 24
理解Driver 25
使用舊的API——org.apache.hadoop.mapred 28
2.2 實際案例——網路數據監控 28
獲取並理解數據 28
明確問題 29
解決方案 30
解決方案1——預聚合結果 30
解決方案2——直接查詢聚合結果 32
2.3 開發MapReduce作業 33
編寫Mapper類 34
編寫Driver 37
編譯作業 38
上傳數據到HDFS 41
運行作業 41
查看TOP N結果 42
2.4 將數據從Elasticsearch寫回HDFS 44
了解Twitter數據集 44
導入Elasticsearch 45
創建MapReduce作業 46
編寫Tweets2HdfsMapper 46
運行示例 50
確認輸出 50
小結 52
第3章 深入理解Elasticsearch 53
3.1 理解搜尋 53
觀念轉換 54
索引 54
類型 55
文檔 55
欄位 55
3.2 與Elasticsearch互動 56
Elasticsearch的CRUD 56
創建文檔 56
獲取文檔 57
更新文檔 58
刪除文檔 58
創建索引 58
映射 59
數據類型 60
創建映射 61
索引模板 62
3.3 控制索引過程 63
什麼是反轉索引 63
輸入數據分析 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
執行聚合查詢 76
terms聚合 76
histogram聚合 78
range聚合 78
geo distance聚合 79
嵌套聚合 81
自測題 82
小結 82
第4章 利用Kibana進行大數據可視化 83
4.1 安裝部署 83
Kibana安裝 84
準備數據 84
自測題 85
啟動Kibana 86
4.2 數據發現 87
4.3 數據可視化 90
餅圖 91
堆積柱狀圖 94
使用堆積柱狀圖完成日期直方圖 96
面積圖 97
餅圖組圖 98
環形圖 98
瓦片地圖 99
自測題 100
4.4 動態圖表 101
小結 104
第5章 實時分析 105
5.1 了解Twitter趨勢分析器 105
實現目標 106
Apache Storm安裝 107
5.2 將流式數據接入Storm 107
編寫Storm spout 108
編寫Storm bolt 110
創建Storm topology 112
編譯運行Storm作業 113
5.3 趨勢分析 114
significant term聚合 114
使用Kibana分析趨勢 116
5.4 使用Percolator對推文分類 117
Percolator 118
Percolator最佳化 120
推文分類 121
小結 124
第6章 ES-Hadoop配置 125
6.1 分散式環境中的Elasticsearch 125
集群和節點 126
節點類型 126
節點發現 128
數據分布 129
分片 129
副本 129
分片分配 130
6.2 ES-Hadoop架構 132
動態並行 132
寫入Elasticsearch 133
從Elasticsearch中讀取 134
失敗捕獲 134
數據本地化 135
6.3 生產環境配置 135
硬體 135
記憶體 135
CPU 135
磁碟 136
網路 136
集群安裝 137
集群拓撲結構 137
設定名稱 138
設定路徑 138
設定記憶體 139
腦裂問題 140
設定恢復參數 141
預設配置 142
數據導入 142
全文檢索 144
快速聚合 144
生產環境部署檢查列表 145
6.4 集群管理 146
監控集群健康 146
備份和恢復 149
數據備份 149
數據恢復 150
小結 151
第7章 與Hadoop生態系統集成 152
7.1 與Pig集成 152
Pig安裝 154
向Elasticsearch中導入數據 155
從JSON源寫數據 157
類型轉換 157
從Elasticsearch中讀取數據 158
7.2 與Hive集成 158
安裝Apache Hive 158
向Elasticsearch中導入數據 159
從JSON源寫數據 161
類型轉換 161
從Elasticsearch中讀取數據 162
7.3 與Cascading集成 163
向Elasticsearch中導入數據 163
編寫一個Cascading作業 163
運行作業 164
從Elasticsearch中讀取數據 165
編寫一個reader作業 165
使用Lingual 165
7.4 與Spark集成 167
安裝Spark 168
向Elasticsearch中導入數據 168
使用SparkSQL向Elasticsearch中導入數據 169
從Elasticsearch中讀取數據 170
使用SparkSQL從Elasticsearch中讀取數據 170
7.5 與YARN集成 171
小結 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
網路配置 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
認證配置 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