前言
前 言在2004年到2006年期间,关于Hadoop的核心组件的讨论都是围绕MapReduce的。Hadoop天生具有分布式运算能力和水平扩展能力,这些特性使其在各个行业被广泛应用。那些超大型的组织认识到Hadoop带来的价值,包括处理TB和PB级数据、采集处理社交数据、利用廉价的商业硬件存储海量数据等。然而,大数据解决方案除了这些以外,还需要解决数据处理的实时性问题,尤其是对非结构化数据的实时性处理。Elasticsearch是一款高效的分布式搜索及分析引擎,可以让你实时了解你的海量数据。它丰富的查询能力可以帮助你进行复杂的全文检索、基于地理位置的分析及异常检测等。Elasticsearch-Hadoop也被简称为ES-Hadoop,是Elasticsearch和Hadoop的连接器,通过它可以非常方便地在Hadoop生态系统和Elasticsearch之间进行数据交互。你也可以将流式数据从Apache Storm或者Apache Spark写入Elasticsearch进行实时分析。本书的目标是让你获得真正的利用Hadoop和Elasticsearch的能力。我将带你一步一步地对海量数据进行数据发现和数据探索。你将学习如何将Elasticsearch与Pig、Hive、Cascading、Apache Storm和Apache Spark等Hadoop生态系统工具进行无缝集成。通过本书的学习,你可以使用Elasticsearch创建自己的分析报表。通过强大的数据分析和可视化平台Kibana,你可以对要展示的图形、大小、颜色等进行控制。在本书中我使用了不少很有意思的数据集,通过这些数据集你将获得真实的数据探索体验。因此,你可以使用我们介绍的工具和技术非常快速地构建基于特定行业的解决方案。我衷心希望阅读本书能够给你带来有趣的学习体验。
导语摘要
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
Java
2
SSH
Hadoop
4
Hadoop
core-site.xml 6
hdfs-site.xml 6
yarn-site.xml 6
mapred-site.xml 7
HDFS 7
Hadoop
1.2
Elasticsearch 9
Elasticsearch 9
Head
Marvel
Elasticsearch 12
1.3
13
HDFS 13
14
1.4
Head
Marvel 18
Sense
21
2
2.1
Mapper 23
Reducer 24
Driver 25
API
2.2
28
29
30
1
2
2.3
Mapper
Driver 37
38
HDFS 41
41
TOP N
2.4
Twitter
Elasticsearch 45
MapReduce
Tweets2HdfsMapper 46
50
50
52
3
3.1
54
54
55
55
55
3.2
Elasticsearch
56
57
58
58
58
59
60
61
62
3.3
63
64
64
65
65
65
65
3.4 Elastic
68
URI
match_all
term
boolean
match
range
wildcard
73
3.5
76
terms
histogram
range
geo distance
81
82
82
4
4.1
Kibana
84
85
Kibana 86
4.2
4.3
91
94
96
97
98
98
99
100
4.4
104
5
5.1
106
Apache Storm
5.2
Storm spout 108
Storm bolt 110
Storm topology 112
Storm
5.3
significant term
Kibana
5.4
Percolator 118
Percolator
121
124
6
6.1
126
126
128
129
129
129
130
6.2 ES-Hadoop
132
Elasticsearch 133
Elasticsearch
134
135
6.3
135
135
CPU 135
136
136
137
137
138
138
139
140
141
142
142
144
144
145
6.4
146
149
149
150
151
7
7.1
Pig
Elasticsearch
JSON
157
Elasticsearch
7.2
Apache Hive 158
Elasticsearch
JSON
161
Elasticsearch
7.3
Elasticsearch
Cascading
164
Elasticsearch
reader
Lingual 165
7.4
Spark 168
Elasticsearch
SparkSQL
Elasticsearch
SparkSQL
7.5
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
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
内容摘要
ElasticSearch是一个开源的分布式搜索引擎,具有高可靠性,支持非常多的企业级搜索用例。Elasticsearch Hadoop作为一个完美的工具,用来连接 Elasticsearch 和 Hadoop 的生态系统。通过Kibana技术,Elasticsearch Hadoop很容易从Hadoop 生态系统中获得大数据分析的结果。
本书全面介绍Elasticsearch Hadoop技术用于大数据分析以及数据可视化的方法。内容共分7章,包括Hadoop、Elasticsearch、 Marvel和 Kibana 安装;通过编写 MapReduce 作业,把Hadoop数据导入 Elasticsearch;全面分析 Elasticsearch本质,如全文本搜索分析、 查询、 筛选器和聚合;使用 Kibana创建各种可视化和交互式仪表板,并使用Storm和 Elasticsearch分类现实世界的流数据以及相关的其他主题。
本书适合从事大数据分析人员、大数据应用开发的人员参考,也适合高等院校及培训机构相关专业的师生教学参考。
主编推荐
精彩内容
第5章 实时分析
我们已经了解了如何以批处理方式对不同的数据源进行数据采集、分析和可视化。如果缩短分析的时间周期可以节省时间和金钱成本,那么实时分析就非常有必要了。当金融交易的交易量骤减或者某些商品的库存量变得太小时,我们希望立刻就能看到数据分析的结果来寻找原因,而不是让数据在晚上经历批处理任务,第二天才能从分析师那里看到分析的报告。在本章中,我们会讨论如何使用Apache Storm将数据导入Elasticsearch并进行实时分析。在很多场景下我们将要介绍的这些Elasticsearch高级特性会成为我们的瑞士军刀。在本章中,我们将介绍以下内容:● 了解Twitter趋势分析器● 将流式数据接入Storm● 趋势分析● 使用Percolator对推文分类5.1 了解Twitter趋势分析器要学习一个东西好的方式就是运用它。这也正是我们本章要做的。所以,让我们先来了解一下本章要做的东西。实现目标 Twitter是可能包括你的客户在内的很多人发表自己见解的地方。通过从海量的推文中分析特定的关键字或者话题可以进行趋势分析。在本章中,我们将使用Apache Storm和Elasticsearch开发自己的Twitter趋势分析器。当然,中间还需要使用ES-Hadoop来做这两个组件的整合。通常情况下,趋势分析器可以根据关键字或者话题展示其趋势。比如,#elasticsearch和#apachestorm就是上个月的热门话题。我们还可以找出像Big Data这样更高级别的热门话题。这个趋势其实是通过字符串进行精确匹配,将所有大数据生态系统的术语进行聚合得到的。类似地,我们可以通过添加和某个类别相关的关键词或者话题来创建一个新的类别。我们将使用分类技术来对流式的推文数据进行类别匹配。不止如此,你还可以以天、周、年等不同的时间周期来查看趋势。图5-1是我们要开发的趋势分析器的整理流程图。
图5-1如图5-1中显示,我们将使用Storm Spout来接收实时推文数据,将数据按照不同类别分类之后导入Elasticsearch中,在Elasticsearch中使用segnificant terms聚合计算出不同的趋势,然后使用Kibana进行展示。这个流程看起来挺简单,然而基于海量数据完成这个处理流程并不容易。同样的,分类的过程也不简单。我们将使用Elasticsearch中的Percolator来解决分类问题。我们需要先安装Apache Storm,用它来接收数据,并把数据导入Storm。Apache Storm安装 Apache Storm是一个分布式实时计算引擎。它可以对那些Hadoop使用批处理模式处理的数据进行实时计算。使用如下命令下载Apache Storm的相应版本(撰写本书时,Storm的稳定版本是0.9.5):$ cd /usr/local$ sudo wget http://www.apache.org/dyn/closer.cgi/storm/apache-storm-0.9.5 /apache-storm-0.9.5.tar.gz 使用如下命令将下载的文件解压到storm目录:$ sudo tar -zxvf apache-storm-0.9.5.tar.gz$ sudo mv apache-storm-0.9.5 storm通过如下命令在~/.bashrc文件中将storm二进制添加到PATH变量中:$ export PATH=$PATH:/usr/local/storm-0.9.5/bin我们现在安装的storm是以本地模式安装的。如果你需要在生产环境中以集群模式安装storm,就需要安装Zookeeper,还需要独立的nimbus和supervisor。5.2 将流式数据接入Storm很多读者可能已经对Storm有了充分的了解。但是,在这里我还是要对那些不太了解Storm的读者进行一个简单的介绍。Storm为流式数据提供了一个实时计算框架。因此,流是Storm的数据抽象,是由无限制的tuple组成的序列。在Storm术语中,tuple是流式数据的一个单元。Storm作业的工作组件包括spout和bolt。spout是流的数据源,而bolt消费这些流。你可以通过对spout和bolt进行级联生成t
以下为对购买帮助不大的评价