官方文档汇总:https://www.pythonnote.cn/OfficialDocuments/
包含了后端常使用的各种文档,小闫静心制作,快收藏起来吧 ~
Hadoop 简介
1.介绍
Hadoop是阿帕奇基金会(Apache)开源的一款分布式系统基础架构。由以下几部分组成:HDFS、MapReduce和YARN。它使用户可以快速简便的开发分布式程序去处理数据,而不需掌握过多的分布式知识以及底层实现逻辑。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
2.发展史
1) 02年由Doug Cutting开发了一款网络搜索引擎Nutch,这便是Hadoop的前身。
2) 03年到04年诞生了GFS和Map Reduce。
3) 08年Hadoop创造了最快排序1TB数据的新世界纪录。Hive成为了它的子项目。
4) 11年Hadoop1.0.0版本出现。
5) 13年到15年Hadoop2.x版本诞生并不断更新迭代。
6) 16年Hadoop进入3.x时代。
3.核心
分布式文件系统HDFS;分布式计算系统MapReduce;分布式资源管理系统YARN。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
3.1 HDFS
核心(角色):NameNode、DataNode
作用:分布式文件存储
特点:高可靠性、高扩展性、高吞吐率。
副本可以保证高可靠性
原理:NameNode负责管理存储所有的元数据信息(文件系统的目录信息、文件信息以及分块等信息)。DataNode负责管理存储块文件。DataNode会定时向NameNode报告自己的状态(比如磁盘空间、资源消耗、是死是活),可将此过程称为心跳。当客户端发起一次读或写的请求,请求先到达NameNode,它判断一下读写权限,再查找一个可用并适合的DataNode,然后向客户端返回该DataNode的相关信息。客户端拿到节点信息后与其交互,进行读或写操作。完成后客户端拿到对应结果(读取的数据或者写结果状态信息),最后向NameNode反馈结果。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
注意:HDFS会将数据文件以指定的块大小拆分成数据块,并将数据块以副本的方式保存到不同的节点上。其中数据写入时采用的方式是先完成第一个副本,然后再将其复制到其他节点,保证一个节点出现异常,数据不会丢失。过程虽然复杂,但是用户无感知,所有的切分、容错、负载均衡等都悄悄的完成,使得用户只知道上传了一个文件或者读取了一个文件。
3.2 MapReduce
核心:Map(映射)、Reduce(归纳)
作用:大数据量计算
特点:简化并行应用开发,不需要关注并行计算底层实现,而是直接调用所提供的API即可。
原理:将输入的数据集切分为若干独立的数据块,由map任务以并行的方式处理。然后将map的输出先进性排序,然后再把结果输入reduce任务,由reduce任务来完成最终的统一处理。
注意:部署Hadoop集群时,通常计算节点和存储节点部署在同一节点,使作业优先调度到那些已经存储有数据的节点进行计算,这样可以大大节省数据传输消耗的带宽。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
3.3 YARN
来源:是为了解除Hadoop1.x中只能运行MapReduce框架的限制,将MapReduce框架中Job Tracker的资源管理和作业调度监控功能进行分离。
作用:为运行在YARN上的分布式应用程序提供统一的资源管理和调度
特点:为Hadoop集群在利用率、资源统一管理和数据共享等方面带来了极大便利;可以运行不同类型的作业:MapReduce、Spark等计算框架。
4.选择原因
首先当然是它开源,免费的原因(你懂得 ~)。其次就是社区活跃,参与的人超多,这样一来,在使用过程中有任何问题,随时可以找到解决办法,而不需死扣晦涩的文档。还有它适用于大数据分布式存储和计算的各个场景,满足很多人的需求。最后就是它的成熟性,发展的十余年间,被各大企业所验证。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
5.版本
1) 社区版(官方,免费,但可能需要自己再研发额外功能)
2)Cloudera CDH(目前公司使用最多,安装、配置、升级等简便,文档完善,与Spark结合好,但是不开源,而且和社区版在某些功能上有些出入)
3)Hortonworks HDP(原装Hadoop,开源,版本与社区版一致,支持Tez,集成了开源监控方案Ganglia和Nagios,但是安装升级等比较繁琐,需要费点功夫)
学习自《基于Hadoop与Spark的大数据开发实战》更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
排版:小闫
图片素材:小闫
文案:小闫
长按扫描下方二维码即刻关注小闫



原文始发于微信公众号(全栈技术精选):Hadoop学习笔记(一)