在线客服
大数据搜索与挖掘及可视化管理方案图书
人气:26

大数据搜索与挖掘及可视化管理方案

涵盖Elastic Stack组件功能与应用,一站式解读大数据搜索、挖掘、可视化概念与实现,帮你轻松开发搜索应用,完成日志挖掘与运行监控、可视化。

内容简介

对大数据的搜索、挖掘、可视化以及集群管理,在当今的“互联网 ”时代是很有必要的。本书的分布式大数据搜索、日志挖掘、可视化、集群监控与管理等方案是基于Elastic Stack 5而提出的,它能有效应对海量大数据所带来的分布式数据存储与处理、全文检索、日志挖掘、可视化、集群管理与性能监控等问题。构建在全文检索开源软件Lucene之上的Elasticsearch,不仅能对海量规模的数据完成分布式索引与检索,还能提供数据聚合分析;Logstash能有效处理来源于各种数据源的日志信息;Kibana是为Elasticsearch提供数据分析的Web接口,可使用它对数据进行高效的搜索、可视化、分析等操作;XPack监控组件可通过Kibana监控集群的状态;Beats是采集系统监控数据的。了解基于Elastic Stack 5的各相关组件并掌握它们的基本使用方法和技巧,对于大数据搜索与挖掘及管理是很有必要的。 和第1版、第2版相比,本书力求反映基于Elastic Stack 5架构的成果,内容新颖,强调实践。本书可为高等学校相关专业(如计算机科学与技术、软件工程、物联网、信息管理与信息系统、数据科学与大数据技术)学生的学习和科研工作提供帮助,同时对于从事大数据搜索与挖掘、日志分析、信息可视化、集群管理与性能监控的工程技术人员和希望了解网络信息检索技术的人员也具有较高的参考价值和工程应用价值。

编辑推荐

本书着重介绍关于Elastic Stack的基本知识,带领读者深入了解Elastic Stack的实际应用,通过对数据搜索、日志挖掘与结果可视化展示等相关功能的介绍和实战,引导读者掌握相关的大数据搜索、日志分析和可视化技术。本书还详细介绍了X-Pack和Beats组件,展示了在Elastic Stack中的一些实践。

作者简介

作者简介高凯,本书主编。教授,博士毕业于上海交通大学计算机应用技术专业,省级重点学科“计算机软件与理论”中“信息检索与云计算”方向学术带头人,研究生导师,中国计算机学会高级会员,中国计算机学会计算机应用专委会常委,International Journal of Computer Applications in Technology副主编;主要研究方向为大数据搜索与挖掘、自然语言处理、网络信息检索、社会计算等;近几年出版了《信息检索与智能处理》、《大数据搜索与挖掘》、《网络信息检索技术及搜索引擎系统开发》等学术专著及多部规划教材;在Expert Systems With Applications、International Journal on Intelligent Information and Database System、International Journal on Modelling, Identification and Control、《中文信息学报》、《电子学报》、《小型微型计算机系统》等学术期刊以及在PAKDD等国际学术会议上发表学术论文五十余篇;主持及参与国家自然科学基金课题、省级科技支撑计划课题、省级自然科学基金课题等多项,申请计算机软件著作权登记十余项。

目录

目录

第1章概述1

1.1Elasticsearch概述3

1.1.1Elasticsearch的安装与简单配置4

1.1.2Elasticsearch API的简单使用方式7

1.2Logstash7

1.3Kibana8

1.4其他8

1.5扩展知识与阅读9

1.6本章小结10

第2章文档索引及管理11

2.1文档索引概述11

2.2Head: Elasticsearch的数据管理工具13

2.3建立索引16

2.4通过映像mappings配置索引20

2.4.1在索引中使用映像21

2.4.2管理/配置映像22

2.4.3获取映像信息22

2.4.4删除映像24

2.5管理索引文件24

2.5.1打开、关闭、检测、删除索引文件24

2.5.2清空索引缓存25

2.5.3刷新索引数据25

2.5.4优化索引数据26

2.5.5Flush操作26[1][2][1][3]2.6设置中文分析器26

2.7对文档的其他操作29

2.7.1获取指定的文档信息29

2.7.2删除文档中的信息31

2.7.3数据更新31

2.7.4基于POST方式批量获取文档34

2.8实例36

2.9扩展知识与阅读40

2.10本章小结41

第3章信息检索与聚合42

3.1实验数据集描述43

3.2基本检索44

3.2.1检索方式44

3.2.2query查询45

3.2.3from / size查询45

3.2.4查询结果排序46

3.2.5高亮搜索词48

3.2.6查询模板50

3.3检索进阶50

3.3.1全文检索51

3.3.2词项检索54

3.3.3复合查询58

3.3.4跨度查询60

3.3.5特殊查询63

3.3.6脚本script64

3.4聚合67

3.4.1metrics aggregations68

3.4.2bucket aggregations72

3.4.3pipeline aggregations81

3.4.4matrix aggregations85

3.5实例87

3.6扩展知识与阅读92

3.7本章小结93

第4章面向Java的Elasticsearch Client部分功能实现94

4.1Elasticsearch节点实例化94

4.1.1通过Maven添加Elasticsearch依赖94

4.1.2初始化TransportClient96

4.2索引数据98

4.2.1准备JSON数据98

4.2.2索引JSON数据100

4.3对索引文档的操作101

4.3.1获取索引文档数据101

4.3.2删除索引文档104

4.3.3更新索引文档105

4.3.4批量操作索引文件105

4.4信息检索107

4.4.1概述107

4.4.2MultiSearch109

4.4.3Search template110

4.4.4Query DSL概述110

4.4.5matchAllQuery111

4.4.6全文检索的部分方法112

4.4.7词项检索的部分方法115

4.4.8复合查询的部分方法119

4.4.9跨度查询的部分方法121

4.4.10特殊查询124

4.5聚合126

4.5.1Metrics聚合126

4.5.2Bucket聚合130

4.6对检索结果的进一步处理134

4.6.1控制每页的显示数量及显示排序依据134

4.6.2基于scroll的检索结果及其分页135

4.7实例137

4.7.1在Elasticsearch中建立索引137

4.7.2连接Elasticsearch138

4.7.3信息采集与索引构建139

4.7.4搜索模块的实现141

4.7.5推荐模块的实现142

4.7.6聚合模块的实现143

4.8扩展知识与阅读145

4.9本章小结145

第5章Elasticsearch配置与集群管理146

5.1Elasticsearch部分基本配置及其说明146

5.2索引和查询效率的优化149

5.3监控集群状态150

5.4控制索引分片与副本分配152

5.5集群管理154

5.6扩展知识与阅读155

5.7本章小结156

第6章基于Logstash的日志处理157

6.1概述158

6.2Input: 处理输入的日志数据160

6.2.1处理基于file方式输入的日志信息161

6.2.2处理基于generator产生的日志信息162

6.2.3处理基于log4j的日志信息163

6.2.4处理基于redis的日志信息165

6.2.5处理基于stdin方式输入的信息168

6.2.6处理基于TCP传输的日志数据169

6.2.7处理基于UDP传输的日志数据173

6.3codecs: 格式化日志数据174

6.3.1JSON格式175

6.3.2rubydebug格式177

6.3.3plain格式177

6.4基于filter的日志处理与转换178

6.4.1JSON filter178

6.4.2grok filter180

6.4.3kv filter182

6.5output: 输出日志数据184

6.5.1将处理后的日志输出到Elasticsearch中185

6.5.2将处理后的日志输出至文件中186

6.5.3将处理后的部分日志输出到csv格式的文件中187

6.5.4将处理后的日志输出到redis中189

6.5.5将处理后的部分日志通过UDP协议输出190

6.5.6将处理后的部分日志通过TCP协议输出192

6.5.7将收集到的日志信息传输到自定义的HTTP接口中195

6.6扩展知识与阅读196

6.7本章小结197

第7章基于Kibana的数据分析可视化198

7.1Kibana概述199

7.2安装Kibana199

7.3使用Management管理配置200

7.3.1添加index pattern200

7.3.2高级设置202

7.3.3管理已保存的检索、可视化和仪表板205

7.4使用Discover执行查询206

7.4.1设置时间过滤器206

7.4.2在index pattern中执行搜索207

7.4.3字段过滤208

7.4.4查看文档数据210

7.5使用Visualize创建统计图表211

7.6使用Dashboard创建动态仪表板214

7.6.1创建新的动态仪表板215

7.6.2打开已保存的动态仪表板215

7.6.3分享动态仪表板216

7.7使用Timelion创建时间线216

7.8使用Dev Tools执行命令行218

7.8.1在Console中执行命令218

7.8.2Console的快捷键220

7.8.3Console的配置221

7.9网站性能监控可视化应用的设计与实现221

7.9.1概述222

7.9.2使用Visualize实现可视化222

7.9.3使用Dashboard整合可视化结果225

7.10扩展知识与阅读227

7.11本章小结227

第8章基于XPack的系统运行监控229

8.1XPack概述229

8.2安装XPack230

8.3Security插件与安全性231

8.3.1身份验证机制与用户管理231

8.3.2匿名访问233

8.3.3基于域的用户认证234

8.3.4基于角色的访问权限配置236

8.3.5IP过滤238

8.3.6带有身份认证的TransportClient240

8.3.7带有身份认证的RESTful命令243

8.4使用Monitoring监控系统运行状态243

8.4.1系统运行状态监控243

8.4.2配置Monitoring247

8.4.3搭建独立的Monitoring集群248

8.5Alerting插件与异常事件警报250

8.5.1通过RESTful方式设置监视器250

8.5.2通过Java程序设置监视器254

8.6Reporting与报告生成256

8.6.1在程序中生成报告256

8.6.2通过监视器自动生成报告257

8.7使用Graph探索数据关联259

8.8扩展知识与阅读261

8.9本章小结261

第9章基于Beats的数据解析传输262

9.1基于Packetbeat的网络数据包传输263

9.1.1概述263

9.1.2安装263

9.1.3配置264

9.1.4加载索引模板266

9.1.5启动和关闭267

9.1.6使用Kibana进行展示268

9.2基于Filebeat的日志传输269

9.2.1概述269

9.2.2安装和配置269

9.2.3启动和关闭272

9.2.4使用Kibana进行展示272

9.3基于Metricbeat的系统指标数据传输273

9.3.1概述273

9.3.2安装和配置274

9.3.3启动和关闭275

9.3.4使用Kibana进行展示276

9.4基于Winlogbeat的Windows事件日志数据传输277

9.4.1概述277

9.4.2安装278

9.4.3配置279

9.4.4启动和关闭282

9.4.5使用Kibana进行展示283

9.5扩展知识与阅读284

9.6本章小结285

第10章网络信息检索与分析实践1286

10.1信息采集286

10.2基于Python的信息检索及Web端设计291

10.2.1安装Python及Django291

10.2.2安装Elasticsearch的Python插件292

10.2.3Web页面设计293

10.3基于Logstash的日志处理296

10.3.1安装和配置Nginx297

10.3.2设计面向日志文件的pattern297

10.3.3在Logstash中进行相关配置298

10.4基于Kibana的日志分析结果可视化设计与实现299

10.4.1图表1: 状态码走势分析300

10.4.2图表2: 查询词分析302

10.4.3图表3: 分析各状态码随时间的变迁302

10.4.4集成图表304

10.5扩展知识与阅读304

10.6本章小结305

第11章网络信息检索与分析实践2306

11.1面向动态网站的信息采集307

11.1.1软件准备307

11.1.2浏览器驱动程序准备307

11.1.3创建索引和映像308

11.1.4导入依赖309

11.1.5数据采集310

11.2基于Spring MVC的信息检索及Web程序设计317

11.2.1创建和配置Spring MVC项目317

11.2.2前端页面设计319

11.2.3后端控制器类324

11.3基于Logstash的日志处理329

11.4基于Beats的数据传输330

11.5基于Kibana的数据可视化331

11.5.1可视化索引文件中的信息331

11.5.2对Logstash、Beats的可视化展示333

11.6基于XPack的系统监控335

11.7扩展知识与阅读337

11.8本章小结337

参考文献339

在线预览

Chapter 5第5章Elasticsearch配置与集群管理“Elasticsearch comes with reasonable defaults for most settings. Before you set out to tweak and tune the configuration,make sure you understand what are you trying to accomplish and the consequences. The primary way of configuring a node is via the elasticsearch.yml file. This template lists the most important settings you may want to configure for a production cluster.”——elasticsearch.yml基于Elasticsearch,可以完成很多和信息存储、检索等相关的问题。本章将对Elasticsearch的配置、集群管理等进行说明,并对提高索引和查询效率的策略进行简述。通过对本章的学习,能达到更好地配置和使用Elasticsearch的目的。5.1Elasticsearch部分基本配置及其说明Elasticsearch的大多数配置信息位于{es_home}/config/elasticsearch.yml文件中,所有配置都可使用环境变量。另一个是日志配置文件{es_home}/config/log4j2.properties,它对日志进行配置,其设置按普通log4j2配置文件来设置即可。Elasticsearch.yml负责设置服务器的默认状态,Elasticsearch的大多数配置在该配置文件中完成。参考文献\[Open,2014a\]\[子猴博客,2014\],本节给出针对elasticsearch.yml的部分配置设置信息,包括:(1) 集群名称cluster.name: 例如“cluster.name: elasticsearch”。设置好以后,会自动发现在同一网段下的节点,如果在同一网段下有多个集群,可用这个属性来区分不同的集群。(2) 节点名称node.name: Elasticsearch启动时会自动创建节点名称,但也可在node.name中配置,例如“node.name: "Franz Kafka"”。指定节点名称有助于利用API访问具体的节点。虽然默认的集群启动时会给每个节点初始化一个名称,但仍然建议在这里手动设置节点名称。(3) 节点是否为master主节点: 每个节点都可被配置成为主节点,默认值为true,如“node.master: true”。在node.master: true中进行设置,目的是指定该节点是否有资格被选举成为node,默认集群中的及时台机器为master,如果这台机器宕机就会重新选举master。[1][2][1][3](4) 设置节点是否存储数据: 默认值为true,即设置node.data的值为“node.data: true”。如果希望节点只是一个master但不存储数据,则应当设置为代码段5.1所示的属性(注: 的#标记后的文字是注释说明)。#代码段5.1: 设置节点是master但不存储数据node.master: truenode.data: false如果希望节点只存储数据但不是一个master,则应当设置为代码段5.2所示的属性。#代码段5.2: 设置节点不作为master但存储数据node.master: falsenode.data: true如果既不希望该节点为一个master也不想它存储数据,则应该设置为代码段5.3所示的属性。对部分相关配置的说明如下:#代码段5.3: 设置节点既不是master也不存储数据node.master: falsenode.data: false(1) node.attr.rack设置机架编号,如“r1”。(2) 可在node.max_local_storage_nodes中设置一台机器能运行的较大节点数目。 (3) 设置配置文件的存储路径: path.conf: /path/to/conf,默认是Elasticsearch根目录下的config文件夹。(4) 设置分配给当前节点的索引数据所在的位置: 可在配置文件的path.data: /path/to/data中进行设置,默认是Elasticsearch根目录下的data文件夹,可以选择包含一个以上的位置,用逗号隔开,这样使得数据在文件级别可跨越位置,在创建时就有更多的自由路径可供选择。(5) 设置日志文件所在位置: 可在path.logs: /path/to/logs中进行设置,默认是Elasticsearch根目录下的logs文件夹。(6) 设置绑定的IP地址,可以是IPv4或IPv6的,默认为0.0.0.0。默认情况下Elasticsearch使用0.0.0.0地址,并为HTTP传输开启9200~9300端口,为节点到节点的通信开启9300~9400端口。也可自行设置IP地址,可在配置文件的network.bind_host和network.publish_host中进行设置。(7) 设置节点与其他节点交互的TCP端口,默认是9300,可在配置文件的transport.tcp.port中进行设置。(8) 设置是否压缩TCP传输时的数据,默认为false,可在配置文件的transport.tcp.compress中进行设置。(9) 设置为HTTP传输监听定制的端口,默认是9200,可在配置文件的http.port中进行设置。(10) 设置是否使用HTTP协议对外提供服务,默认为true,可在配置文件的http.enabled中进行设置。(11) 设置内容的较大长度,默认是100MB,可在配置文件的http.max_content_length中进行设置。(12) 设置参数来保障集群中的节点可以知道其他N个有master资格的节点,默认为1。对于较大的集群来说,可以将该值设置为 (具有master资格的节点数/2) 1,可在配置文件的discovery.zen.minimum_master_nodes中进行设置。(13) 设置集群中自动发现其他节点时ping连接超时时间,默认为3s,即3秒,对于比较差的网络环境可以提高该值来防止自动发现时出错,可在配置文件的discovery.zen.ping_timeout中进行设置。(14) 设置集群中N个节点启动时进行数据恢复,默认为1,可在配置文件的gateway.recover_after_nodes中进行设置。(15) 设置初始化数据恢复进程的超时时间,默认是5分钟: 可在配置文件的gateway.recover_after_time中进行设置。(16) 设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复,可在gateway.expected_nodes中进行设置。(17) 初始化数据恢复时并发恢复线程的个数,默认为4,可在配置文件的cluster.routing.allocation.node_initial_primaries_recoveries中进行设置。

网友评论(不代表本站观点)

免责声明

更多出版社