新書推薦:
《
律令国家与隋唐文明
》
售價:HK$
76.7
《
现代吴语的研究(中华现代学术名著3)
》
售價:HK$
65.0
《
天下的当代性:世界秩序的实践与想象(新版)
》
售價:HK$
77.3
《
德国天才4:断裂与承续
》
售價:HK$
109.8
《
妈妈的情绪,决定孩子的未来
》
售價:HK$
42.6
《
推拿纲目
》
售價:HK$
403.2
《
精致考古--山东大学实验室考古项目论文集(一)
》
售價:HK$
244.2
《
从天下到世界——国际法与晚清中国的主权意识
》
售價:HK$
76.2
|
內容簡介: |
本书分为三大部分,共九章。第壹部分(第1章)主要介绍了企业大数据系统的前期准备工作,包括如何构建企业大数据处理系统的软件环境和集群环境。第二部分(第2~7章)首先介绍了Spark的基本原理,Spark2.0版本的SparkSQL、StructuredStreaming原理和使用方法,以及Spark的多种优化方式;然后,介绍了Druid的基本原理、集群的搭建过程、数据摄入过程,以及在查询过程中如何实现Druid查询API;接着介绍了日志收集系统Flume的基本架构和关键组件,以及分层日志收集架构的设计与实践;后介绍了分布式消息队列Kafka的基本架构和集群搭建过程,以及使用Java语言实现客户端API的详细过程。第三部分(第8~9章)主要介绍了企业大数据处理的两个实际应用案例,分别是基于Druid构建多维数据分析平台和基于JMX指标的监控系统。
|
關於作者: |
肖冠宇目前就职于乐视网智能中心大数据部,曾就职于人民在线大数据团队,主要进行广告数据分析、大数据产品研发等工作,具有多年大数据产品研发、高性能分布式框架、实时计算等经验,对整个Hadoop生态系统的各项技术都非常了解,有丰富的实践经验。
|
目錄:
|
Contents?目录
前 言
第一部分 准备工作
第1章 基础环境准备2
1.1 软件环境准备2
1.2 集群环境准备4
1.2.1 Zookeeper集群部署4
1.2.2 Hadoop部署6
1.3 小结15
第二部分 核心技术
第2章 Spark详解18
2.1 Spark概述18
2.1.1 Spark概述18
2.1.2 Shuff?le详解25
2.2 Spark SQL29
2.2.1 SparkSession29
2.2.2 DataFrame30
2.2.3 DataSet35
2.3 Structured Streaming35
2.3.1 数据源36
2.3.2 输出到外部存储38
2.3.3 WordCount示例40
2.4 Spark优化42
2.4.1 数据优化42
2.4.2 代码优化44
2.4.3 参数优化46
2.5 小结48
第3章 Druid原理及部署49
3.1 架构设计49
3.1.1 节点类型49
3.1.2 Segment介绍57
3.1.3 容错处理59
3.1.4 路由节点60
3.2 集群部署63
3.2.1 集群规划63
3.2.2 配置安装64
3.3 小结72
第4章 Druid数据摄入73
4.1 模式设计73
4.1.1 设计概述73
4.1.2 数据解析75
4.1.3 Segment分区79
4.1.4 模式更改81
4.2 批量数据摄入81
4.3 流数据摄入87
4.3.1 Tranquility88
4.3.2 StreamPush91
4.3.3 从Kafka中摄取数据92
4.4 数据更新94
4.5 小结95
第5章 Druid客户端96
5.1 涉及组件96
5.1.1 查询相关96
5.1.2 过滤器99
5.1.3 聚合粒度101
5.1.4 聚合器105
5.2 查询类型109
5.2.1 时间序列查询109
5.2.2 TopN查询111
5.2.3 分组查询113
5.2.4 元数据查询117
5.2.5 搜索查询121
5.3 查询API125
5.3.1 RESTful介绍125
5.3.2 Jersey客户端126
5.4 小结129
第6章 日志收集130
6.1 Flume介绍130
6.1.1 基本架构131
6.2 Flume应用实践144
6.2.1 拦截器、选择器实践144
6.2.2 负载均衡、故障转移实践149
6.2.3 设计与实践150
6.3 小结154
第7章 分布式消息队列155
7.1 Kafka介绍155
7.1.1 基本架构155
7.1.2 高吞吐的实现157
7.1.3 高可用的实现160
7.2 安装部署161
7.2.1 Broker配置参数161
7.2.2 分布式部署162
7.3 客户端API163
7.3.1 Producer API164
7.3.2 Consumer API165
7.4 小结169
第三部分 项目实践
第8章 数据平台172
8.1 需求分析172
8.2 功能实现173
8.2.1 架构设计173
8.2.2 关键功能实现175
8.3 小结184
第9章 监控系统185
9.1 Inf?luxDB185
9.1.1 Inf?luxDB简介186
9.1.2 Inf?luxDB安装186
9.1.3 Inf?luxDB操作188
9.1.4 Inf?luxDB客户端191
9.2 JMXTrans192
9.2.1 JMXTrans介绍192
9.2.2 JMXTrans安装194
9.2.3 JMXTrans使用195
9.3 Grafana198
9.3.1 Grafana安装198
9.3.2 Grafana使用199
9.4 小结208
|
內容試閱:
|
Preface?前言我写本书的初衷是将自己在企业工作中应用的技术归纳总结,系统地将大数据处理相关技术融合在一起,给已经从事大数据相关技术研发工作的朋友,或是准备从其他行业转行进入大数据领域学习相关技术的朋友提供一份参考资料。希望本书能够帮助更多从事大数据相关工作的人,也希望通过本书结识更多热爱大数据的朋友。
目前,大数据已不只停留在概念阶段,而是在各领域成功落地,并取得了丰硕的成果。大数据已经渗透到生活中的各个方面,距离我们最近且与我们生活息息相关的大数据项目有交通大数据、医疗大数据、金融大数据、社交媒体大数据、互联网大数据等。如此多的大数据项目能够成功落地,关键原因在于数据来源的多样化,数据量的爆发式增长,新兴技术的快速发展,以及市场创新需求的不断增多,这为各种大数据项目提供了庞大的数据源,通过多种技术的综合应用,可不断挖掘出大数据背后的社会价值和商业价值。
随着开源社区的不断发展,越来越多的优秀项目被开源,以处理各种大数据场景下的问题和挑战。作为目前大数据生态系统内的早期开源项目,Hadoop在廉价机器上实现了分布式数据存储和高性能分布式计算,大大降低了数据存储和计算成本。Hadoop提供的分布式存储系统HDFS、大数据集并行计算编程模型MapReduce、资源调度框架YARN已经被广泛应用,为大数据生态系统的发展奠定了坚实的基础。如今,Hadoop大数据生态圈发展已经非常全面,涉及领域众多,在大数据处理系统中常用的技术框架包括数据采集、数据存储、数据分析、数据挖掘、批处理、实时流计算、数据可视化、监控预警、信息安全等。下图展示了大数据生态系统内比较流行并且已经在生产环境验证过的开源技术。
(1)SparkSpark是由加州大学伯克利分校AMP实验室开源的分布式大规模数据处理通用引擎,具有高吞吐、低延时、通用易扩展、高容错等特点。Spark内部提供了丰富的开发库,集成了数据分析引擎Spark SQL、图计算框架GraphX、机器学习库MLlib、流计算引擎Spark Streaming。Spark在函数式编程语言Scala中实现,提供了丰富的开发API,支持Scala、Java、Python、R等多种开发语言。同时,它提供了多种运行模式,既可以采用独立部署的方式运行,也可以依托Hadoop YARN、Apache Mesos等资源管理器调度任务运行。目前,Spark已经在金融、交通、医疗、气象等多种领域中广泛使用。
大数据生态系统中的开源技术(2)DruidDruid是由美国MetaMarkets公司创建并开源的分布式提供海量时序数据存储、支持实时多维数据分析的OLAP系统,主要应用于广告数据分析、网络系统监控等场景。Druid具有高吞吐、易扩展、高容错、低延迟、按时间序列存储等特点。
(3)FlumeFlume是由Cloudera公司开发的分布式、高可用的日志收集系统,是Hadoop生态圈内的关键组件之一,目前已开源给Apache。Flume的原始版本为Flume-OG,经过对整体架构的重新设计,现已改名为Flume-NG。Flume发展到现在已经不局限于日志收集,还可以通过简单的配置收集不同数据源的海量数据并将数据准确高效地传输到不同的中心存储。目前Flume可对接的主流大数据框架有Hadoop、Kafka、ElasticSearch、Hive、HBase等。在使用Flume的过程中,通过配置文件就可以实现整个数据收集过程的负载均衡和故障转移,而不需要修改Flume的任何代码。得益于优秀的框架设计,Flume通过可扩展、插件化、组合式、高可用、高容错的设计模式,为用户提供了简单、高效、准确的轻量化大数据采集工具。
(4)KafkaKafka是由LinkedIn开源的分布式消息队列,能够轻松实现高吞吐、可扩展、高可用,并且部署简单快速、开发接口丰富。目前,各大互联网公司已经在生产环境中广泛使用,而且已经有很多分布式处理系统支持使用Kafka,比如Spark、Strom、Druid、Flume等。
(5)InfluxDBInfluxDB是一款开源分布式时序数据库,非常适合存储监控系统收集的指标数据。时序数据库顾名思义就是按照时间顺序存储指标数据,即监控系统的场景大部分是按照时间顺序存储各项指标数据,过期时间太长的指标可能将不会再关注,所以为了提高数据库的存储率,提高查询性能,需要定期删除过期指标。InfluxDB的诸多特性非常适合监控系统的使用场景。
本书将详细介绍上述技术的原理,通过实践演示每种技术的实际应用场景。希望通过理论与实践相结合的方式使内容更通俗易懂,帮助读者根据实际的业务场景选择合适的技术方案,相信大数据在未来的发展中还会创造更多的价值。
内容概述本书分三部分展开介绍:
第一部分(第1章)主要介绍了企业大数据系统的前期准备工作,包括如何构建企业大数据处理系统的软件环境和集群环境。
第二部分(第2~7章)首先介绍了Spark的基本原理,Spark 2.0版本的Spark SQL、Structured Streaming原理和使用方法,以及Spark的多种优化方式;然后,介绍了Druid的基本原理、集群的搭建过程、数据摄入过程,以及在查询过程中如何实现Druid查询API;接着介绍了日志收集系统Flume的基本架构和关键组件,以及分层日志收集架构的设计与实践;最后介绍了分布式消息队列
|
|