Hadoop3.13概述与分而治之思想
一、Hadoop的发展史
图解
Hadoop三大开源发行版本:Apache、Cloudera(CDH)、Hortonworks(HDP)。Apache版本最原始(最基础)的版本,对于入门学习最好。Cloudera在大型互联网企业中用的较多。Hortonworks文档较好。
- Apache Hadoop
- Cloudera Hadoop
官网地址:https://www.cloudera.com/downloads/cdh.html
> 下载地址:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html
1)2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。
2)2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support
3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。Cloudera的标价为每年每个节点**10000美元。
4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。
5)Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。
- Hortonworks Hadoop
官网地址:https://www.clouderacn.cn/products/hdp.html
下载地址:https://www.cloudera.com/downloads/hdp.html
1)2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。
2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。
3)雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。
4)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。
5)HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook开源的Hive中。Hortonworks的Stinger开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒。
6)Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Window Server和Windows Azure在内的microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元。
2018年10月,均为开源平台的Cloudera与Hortonworks公司宣布他们以52亿美元的价格合并。
官方网站:https://www.cloudera.com/
Cloudera 官方文档: https://www.cloudera.com/documentation/enterprise/latest.html
两家公司称合并后公司将拥有2500客户、7.2亿美元收入和5亿美元现金,且没有债务,宣布了它们所谓了相对平等的合并。
两大开源大数据平台Cloudera与Hortonworks宣布合并,合并后的企业定位为企业数据云提供商,推出了ClouderaDataPlatform(CDP),可以跨AWS、Azure、Google等主要公有云架构进行数据管理。2020年6月,Cloudera发布CDP私有云,将本地部署环境无缝连接至公有云。
CDP的版本号延续了之前CDH的版本号,从7.0开始,目前最新的版本号为7.0.3.0。
那么CDP对比之前的Cloudera Enterprise Data Hub(CDH企业版)与HDPEnterprise Plus(HDP企业版)到底在组件上发生了哪些变化呢?
由于HDP在国内市场上的市场占有量很小,大部分公司都是采用CDH,所以对于HDP带来的一些东西,使用CDH的用户和开发人员会比较陌生,下面带大家详细的了解一下CDP中的组件一些变化,也方便大家为在2022年以及之后的学习做好准备。
二、Hadoop组件
- Hadoop Common:基础型功能
- Hadoop Distributed File System (HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。负责存放数据
- Hadoop YARN:作业调度和集群资源管理的框架。负责资源的调配
- Hadoop MapReduce:基于 YARN 的系统,用于并行处理大型数据集。大数据的计算框架
Hadoop框架透明地为应⽤提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应⽤程序被分割成许多⼩部分,⽽每个部分都能在集群中的任意节点上执⾏或重新执⾏。此外,Hadoop还提供了分布式⽂件系统,⽤以存储所有计算节点的数据,这为整个集群带来了⾮常⾼的带宽。MapReduce和分布式⽂件系统的设计,使得整个框架能够⾃动处理节点故障。它使应⽤程序与成千上万的独⽴计算的电脑和PB级的数据
Hadoop是一个适合海量数据的分布式存储和分布式计算的平台
三、分布式文件系统构架
1、FS File System
文件系统时极域硬盘之上的文件管理的工具
我们用户操作文件系统可以和硬盘进行解耦
2、DFS Distributed File System
分布式文件系统
将我们的数据存放在多台电脑上存储
分布式文件系统有很多,HDFS(Hadoop Distributed FileSyetem)是Hadoop自带的分布式文件系统
HDFS是mapreduce计算的基础
四、Block拆分标准
- 数据块Block
a. 在hadoop中是磁盘进行数据 读/写的最小单位,数据被切分后的一个整体被称之为块
b. 在Hadoop 1默认大小为64M,在Hadoop 2及其之后默认大小为128M块,这么大是为了最小化寻址开销
c. 同一个文件中,每个数据块的实际大小要一致除了最后一个节点外
不同文件中,块的大小可以不一致
文件大小不同可以设置不同的块的数量
HDFS中小于一个块的大小的文件不会占据整个块的空间
d. 真实情况下,会根据文件大小和集群节点的数量综合考虑块的大小
e. 数据块的个数=Ceil(文件大小/每个块的大小)
- 拆分的数据块需要等大
a. 数据计算的时候简化问题的复杂度(否则进行分布式算法设计的时候会因为数据量不一很难设计)
b. 数据拉取的时候时间相对一致
c. 通过偏移量就知道这个块的位置
d. 相同文件分成的数据块大小应该相等
- 注意事项
a. 只要有任意一个块丢失,整个数据文件被损坏
b. HDFS中一旦文件被存储,数据不建议被修改
修改会影响偏移量,修改会导致数据倾斜(单节点数据量过多),修改数据会导致蝴蝶效应
c. 但是可以被追加(一般不推荐)
追加设置需要手动打开
d. 一般HDFS存储的都是历史数据.所以将来Map Reduce都用来进行离线数据的处理
f. 块的大小一旦文件上传之后就不允许被修改 128M-512M
- Block数据安全
a. 只要有任意一个块丢失,整个数据文件被损坏
b. 肯定要对存储数据做备份
c. HDFS是直接对原始数据进行备份的,这样能保证恢复效率和读取效率
d. 备份的数据肯定不能存放在一个节点上,使用数据的时候可以就近获取数据
f. 备份的数量要小于等于节点的数量
g. 每个数据块默认会有三个副本,相同副本是不会存放在同一个节点上
h. 副本的数量可以变更
可能近期数据被分析的可能性很大,副本数可以多设置几个
后期数据很少被分析,可以减少副本数
浙公网安备 33010602011771号