书籍作者:贾传青 | ISBN:9787302469674 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:4023 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
ElasticSearch是一个开源的分布式搜索引擎,具有高可靠性,支持非常多的企业级搜索用例。ElasticsearchHadoop作为一个完美的工具,用来连接Elasticsearch和Hadoop的生态系统。通过Kibana技术,ElasticsearchHadoop很容易从Hadoop生态系统中获得大数据分析的结果。
本书全面介绍ElasticsearchHadoop技术用于大数据分析以及数据可视化的方法。内容共分7章,包括Hadoop、Elasticsearch、Marvel和Kibana安装;通过编写MapReduce作业,把Hadoop数据导入Elasticsearch;全面分析Elasticsearch本质,如全文本搜索分析、查询、筛选器和聚合;使用Kibana创建各种可视化和交互式仪表板,并使用Storm和Elasticsearch分类现实世界的流数据以及相关的其他主题。
本书适合从事大数据分析人员、大数据应用开发的人员参考,也适合高等院校及培训机构相关专业的师生教学参考。
Vishal Shukla,美国知名大数据分析师。
通过本书,你可以使用Elasticsearch、Kibana和Elasticsearch-Hadoop对流式数据或者HDFS上的数据进行高效的数据分析。
你将深入理解Hadoop、Elasticsearch、Marvel和Kibana的安装部署 ; 通过真实的案例你将了解到如何通过MapReduce作业将HDFS上的数据导入到Elasticsearch中。然后,你将全面理解像全文搜索、查询、过滤器、聚集等Elasticsearch中关键的概念 ; 了解如何使用Kibana进行可视化,创建交互报表 ; 学习如何使用Storm和Elasticsearch对真实案例中的数据进行分类和趋势分析。最后,学习如何将Elasticsearch与Pig、Hive、Spark等Hadoop生态系统进行集成。
在2004年到2006年期间,关于Hadoop的核心组件的讨论都是围绕MapReduce的。Hadoop天生具有分布式运算能力和水平扩展能力,这些特性使其在各个行业被广泛应用。那些超大型的组织认识到Hadoop带来的价值,包括处理TB和PB级数据、采集处理社交数据、利用廉价的商业硬件存储海量数据等。然而,大数据解决方案除了这些以外,还需要解决数据处理的实时性问题,尤其是对非结构化数据的实时性处理。
Elasticsearch是一款高效的分布式搜索及分析引擎,可以让你实时了解你的海量数据。它丰富的查询能力可以帮助你进行复杂的全文检索、基于地理位置的分析及异常检测等。Elasticsearch-Hadoop也被简称为ES-Hadoop,是Elasticsearch和Hadoop的连接器,通过它可以非常方便地在Hadoop生态系统和Elasticsearch之间进行数据交互。你也可以将流式数据从ApacheStorm或者ApacheSpark写入Elasticsearch进行实时分析。
本书的目标是让你获得真正的利用Hadoop和Elasticsearch的能力。我将带你一步一步地对海量数据进行数据发现和数据探索。你将学习如何将Elasticsearch与Pig、Hive、Cascading、ApacheStorm和ApacheSpark等Hadoop生态系统工具进行无缝集成。通过本书的学习,你可以使用Elasticsearch创建自己的分析报表。通过强大的数据分析和可视化平台Kibana,你可以对要展示的图形、大小、颜色等进行控制。
在本书中我使用了不少很有意思的数据集,通过这些数据集你将获得真实的数据探索体验。因此,你可以使用我们介绍的工具和技术非常快速地构建基于特定行业的解决方案。我衷心希望阅读本书能够给你带来有趣的学习体验。
第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