为什么要写这本书?
随着大数据技术和云计算技术的发展,Hadoop大数据生态系统中的各项技术越来越流行,已然成为大数据开发领域的事实标准。特别是Hadoop大数据生态系统中各项技术的开源特性,使得其核心技术和各种解决方案得到了广泛的应用。程序员要想进入大数据开发领域,除了需要有扎实的编程基础外,还要融会贯通各种大数据框架,最好还要熟悉大数据领域中有典型意义和实用价值的各类开发案例,这样才能在竞争日益激烈的大数据市场环境中具备较强的竞争力。
目前,图书市场上关于大数据技术的图书很多,但是真正从实战应用出发,同时深入剖析大数据离线批处理计算领域和在线实时计算领域常用的大数据框架技术原理和编程案例的图书却很少。本书以实战案例为主旨,通过详细介绍大数据开发中常用的多种技术框架和其对应的大量开发案例,并在大数据处理实战案例篇整合多种大数据技术框架,来实现基于海量日志数据的分析统计系统(涵盖大数据离线批处理计算技术和大数据在线实时计算技术),让读者更加全面、深入、透彻地理解大数据开发领域中各种热门技术和主流框架的使用,提高读者对各种大数据框架的整合能力,进而提高大数据开发水平和项目实战能力。
本书有何特色?
1.大量图解和开发案例
为了方便读者的理解,本书在介绍每种技术框架时都配有大量的框架架构图和执行流程图,并为相关的技术框架配有详细的开发案例。这些框架架构图和执行流程图的Viso文件原件和案例开发源码收录于随书资料中。
2.涵盖大数据开发领域的常用热门技术和主流框架及各框架的整合使用
本书涵盖Hadoop、Zookeeper、Hive、Sqoop、Flume、Kafka和Storm等热门大数据开源技术框架,以及Hadoop+Zookeeper、Hadoop+Zookeeper+Hive、Hadoop+Zookeeper+Hive+ MySQL、Hadoop+Zookeeper+Sqoop+MySQL、Hadoop+Zookeeper+Hive+Sqoop+MySQL、Flume+Hadoop、Flume+Hive、Flume+Kafka、Kafka+Zookeeper、Storm+Zookeeper和Flume+
Kafka+Storm+Zookeeper+ActiveMQ+Redis+MySQL等大数据技术框架和数据库的整合使用。
3.对大数据框架做了基本的原理分析
本书每讲解一个大数据框架时,都会先对框架的基本原理和环境搭建做基本介绍,以便读者更加深入地理解框架的项目案例。
4.案例应用性强
本书对每种技术框架都配有相关的案例,都是相关框架常用的典型案例,具有较强的实用性。每个案例项目都是独立的,方面读者随时查阅和参考。
5.实战项目具有较高的应用价值
本书中大数据处理实战案例篇的基于海量日志数据的分析统计系统来源于笔者所开发的实际项目,本书对其进行了一定的简化,具有很高的实际应用价值和参考价值。另外,案例系统分别采用离线批处理计算技术和在线实时计算技术实现,几乎整合了本书中所涉及的所有大数据框架,便于读者融会贯通地理解本书中所介绍的大数据框架技术。对此系统案例稍加修改,便可用于实际的项目开发中。
本书内容及知识体系
第1篇 大数据基础篇(第1~3章)
本篇主要对大数据的基础知识、Hadoop和Storm的基础知识和基本技术,以及应用现状和发展趋势进行简单介绍。
第2篇 大数据离线批处理技术篇(第4~11章)
本篇主要介绍的是大数据离线批处理计算领域所涉及的技术和框架,包括Hadoop、Hive和Sqoop。分别介绍每种框架的基本原理和使用案例,包括安装CentOS 6.8虚拟机环境、搭建每种框架的运行环境、分别以命令行和API方式实现HDFS的数据操作、以Java语言和Python语言实现多个Hadoop MapReduce开发案例、使用HiveQL操作Hive中的数据库和数据表,以及自定义Hive函数、使用Sqoop实现HDFS与MySQL之间的数据导入/
导出。
第3篇 大数据在线实时处理技术篇(第12~17章)
本篇主要介绍大数据在线实时计算领域所涉及的技术和框架,包括Flume、Kafka和Storm。分别介绍每种框架的基本原理和使用案例,包括搭建每种框架的运行环境,Flume基于内存、文件和目录的Channel,Flume写数据到HDFS和Kafka,Flume采集Nginx日志到Hive,Flume采集Nginx日志到多个目标系统,自定义Flume的Agent,Flume监控,分别使用Java语言和Python语言实现Kafka客户端编程,使用Storm实现单词计数、追加字符串、聚合多种数据流、分组聚合、事务处理、监控等。
第4篇 大数据处理实战案例篇(第18~22章)
本篇主要介绍基于海量日志数据的分析统计系统的开发过程,以及系统的项目背景。在实现上将系统分为离线批处理计算子系统和在线实时计算子系统,分别介绍两个子系统的需求、架构设计、功能设计、存储选型、技术选型、环境搭建和具体的系统实现过程。
随书资料内容介绍
为了方便读者阅读本书,本书附带随书资料,内容如下。
. 书中所有案例项目源码。
. 书中所有的插图Viso文件。
可通过扫描下方二维码关注微信公众号,根据相应提示获取。
适合阅读本书的读者
. 在校大学生。
. 专业培训机构的学员。
. 想转行从事大数据开发的人员。
. 需要系统学习大数据技术的开发人员。
. 大数据从业者。
. 大数据运维工程师。
. 希望提高大数据开发实战水平的人员。
. 大数据开发经理。
. 大数据架构师。
. 需要时常查阅大数据常用框架技术和开发案例的人员。
阅读本书的建议
. 没有大数据开发基础的读者,建议按照顺序从第1章开始阅读,并实现每一个案例。
. 有一定大数据开发基础的读者,可以根据自身实际情况,选择性地阅读各个大数据框架的项目案例。
. 对于本书涉及的每个大数据框架项目案例,读者可以先自行思考实现方式,再阅读相关的项目案例,可达到事半功倍的学习效果。
. 读者可以先阅读本书涉及的大数据框架项目案例,再阅读各框架对应的原理细节,这样理解起来会更加深刻。
勘误和支持
尽管笔者对技术有着很高的追求,但是由于大数据领域中的各种技术和框架涉及的知识点众多,因此一本书籍很难涵盖所有的知识点和功能点。如果笔者有书写不妥的地方,恳请读者能够及时批评和指正。如果读者对本书有好的建议或者想法,也可以联系笔者。笔者的联系方式如下。
邮箱:
[email protected]。
微信:sun_shine_lyz。
致谢
感谢国内知名开源分布式数据库中间件Mycat创始人Leader us、阿里巴巴技术专家涯海、蚂蚁金服工程师黄小邪和LINUXPROBE刘遄(排名不分先后)对我的支持和帮助,以及对本书的大力推荐。
感谢我的团队以及许许多多一起合作过和交流过的朋友们,感谢CSDN博客的粉丝和那些在我的博客和公众号鼓励过我的朋友。
感谢我的家人,他们都在以自己的方式在我写作期间默默地给予支持与鼓励。
感谢出版社的各位编辑的辛勤劳作,没有他们的辛勤付出,就不会有本书的出版。