《Hadoop数据分析》这本书以Hadoop为核心,通过提供分布式数据存储和并行计算框架,将Hadoop演化成了一个大数据的操作系统。本书的目标是以可读且直观的方式,为数据科学家提供集群计算和分析的概览,并为他们深入了解特定主题领域铺平道路。书中从数据科学家的视角介绍了Hadoop集群计算和分析,使读者能够更好地理解和应用Hadoop进行数据分析。无论是对于正在学习Hadoop的初学者,还是对于已经有一定经验的专业人士来说,这本书都是一份有价值的参考资料,能够帮助读者在大数据时代中更好地处理和分析海量数据。
Hadoop数据分析电子书封面
读书心得
之前的hadoop学习篇由于是学习过程中随手记下来的一些内容,不具有系统性。所以在这个系列中,将凭着这段时间的研究心得,来记录一些自认为比较重要的东西。
本系列的主要参考书目是《Hadoop技术内幕:深入解析Yarn架构设计与实现原理》
比如作业从提交到执行到写出结果,将有一个从浅到深,逐步深入的过程。另外一些开发过程中使用到的比较零碎的东西,将会以外篇的形式记录。
hadoop版本:2.7.X
由于是第一篇,那么先来个综述吧。
学习hadoop我们到底要学些什么?
在2.x以后,hadoop的体系结构基本按如下三部分划分:
第一部分就是HDFS文件存储系统。就像我们操作系统的任意一种存储系统一样,这个模块决定了文件存在哪里,怎么存取。只不过他被hadoop集成使用。
主要的进程有三个: NameNode DataNode SecondaryName 这三个类,是有main函数的
第二部分就是计算框架mapreduce,同hadoop1.x里的实现基本一致
第三部分是调度框架yarn
yarn的作用是什么?调度!这个词是精髓,调度资源,调度任务。
主要进程:resourceManager ApplicationMaster,NodeManager这三个类,也是有main函数的。
我们要学的,主要就是这三部分内容。
下面先概括的说一下执行一个job的基本工作流程:
resourceManager 接到客户端提交的任务,会申请资源(container),本质是在集群中的一台机器上,与其上的NodeManager协调,在资源上启动ApplicationMaster。
然后把job的控制权交给ApplicationMaster。后者接管后,根据任务的描述信息,去向resourceManager 申请运行task的资源。根据resourceManager 的回馈(资源可用情况描述),与可用的节点(NodeManager)协调,启动task任务。
task任务启动,那么就使用计算框架内容执行具体的计算了。
而hdfs文件读取,贯穿于整个job执行阶段。
这里有必要说明一下,Job 和Application的关系,其实两者是一个东西在不同阶段的描述。提交的时候叫Job,提交后,hadoop系统跑起来后,那就是Application了。就好像一个人小时候在家里,家人都叫乳名。上学后,就用正式名字来称呼了。
下一篇将从资源调度框架yarn开始后讲起。
内容介绍
通过提供分布式数据存储和并行计算框架,Hadoop已经从一个集群计算的抽象演化成了一个大数据的操作系统。本书旨在通过以可读且直观的方式提供集群计算和分析的概览,为数据科学家深入了解特定主题领域铺平道路,从数据科学家的视角介绍Hadoop集群计算和分析。本书分为两大部分,* 一部分从非常高的层次介绍分布式计算,讨论如何在集群上运行计算;* 二部分则重点关注数据科学家应该了解的工具和技术,意在为各种分析和大规模数据管理提供动力。
目录
- 前言 ix
- * 一部分 分布式计算入门
- * 1章 数据产品时代 2
- * 2 章 大数据操作系统 9
- 第3 章 Python 框架和Hadoop Streaming 31
- 第4 章 Spark内存计算 52
- 第5 章 分布式分析和模式 69
- * 二部分 大数据科学的工作流和工具
- 第6 章 数据挖掘和数据仓 102
- 第7 章 数据采集 123
- 第8 章 使用高 级API 进行分析 137
- 第9 章 机器学习 154
- * 10 章 总结:分布式数据科学实战 167
- 附录A 创建Hadoop 伪分布式开发环境 176
- 附录B 安装Hadoop 生态系统产品 184
- 术语表 193
- 关于作者 211
- 关于封面 211
Hadoop 开源的分布式系统基础架构 优点 对大量数据进行分布式处理 可靠, 假设硬件失效为常态, 针对失败节点进行重新分布处理 高效, 并行处理提高处理速度 可伸缩, 在横向扩展至上千个节点, 可处理PB级数据 低成本, 项目开源,与同类产品比较成本低廉 相关组件包括 HDFS MapReduce Yarn Hive HBase ZooKeeper Sqoop Flume
Hadoop的优点 1 高可靠 Hadoop虽然好多文件都部署在低廉的(low-cost)硬件上,但是它会假设计算元素和存储都很可能会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。 2 高效性 因为Hadoop可以并行工作,通过并行处理加快处理速度。所以相比其他的工作方式将更高效。 3 可伸缩性 Hadoop还是可伸缩的,能够处理 PB 级数据。 4 可用性 Hadoop 是依赖于社区服务器,因此它的成本比较低。并且用户可以在不了解分布式底层细节的情况下,开发分布式程序,因此任何人都可以使用。