没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
41页
1、hadoop3.1.4简单介绍及部署、简单验证 网址:https://editor.csdn.net/md/?articleId=130322812 本文介绍hadoop的发展过程、3.1.4的特性、部署及简单验证。 本文前提依赖:免密登录设置、jdk已经安装、zookeeper部署完成且正常运行。具体参见相关文章,具体在zookeeper专栏、环境配置。 本文分为三个部分介绍,即hadoop发展史、hadoop3.1.4部署及验证。 ———————————————— 版权声明:本文为CSDN博主「一瓢一瓢的饮 alanchan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/chenwewi520feng/article/details/130322812
资源推荐
资源详情
资源评论
本文介绍hadoop的发展过程、3.1.4的特性、部署及简单验证。
本文前提依赖:免密登录设置、jdk已经安装、zookeeper部署完成且正常运行。具体参见相关文章,具
体在zookeeper专栏、环境配置。
本文分为三个部分介绍,即hadoop发展史、hadoop3.1.4部署及验证。
@TOC
一、hadoop发展史
1、Hadoop介绍
Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件
平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。
狭义上说,Hadoop指Apache这款开源框架,它的核心组件有:
HDFS(分布式文件系统):解决海量数据存储
YARN(作业调度和集群资源管理的框架):解决资源任务调度
MAPREDUCE(分布式运算编程框架):解决海量数据计算
Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
当下的Hadoop已经成长为一个庞大的体系,随着生态系统的成长,新出现的项目越来越多,其中
不乏一些非Apache主管的项目,这些项目对HADOOP是很好的补充或者更高层的抽象。比如:
2、Hadoop发展简史
Hadoop是Apache Lucene创始人 Doug Cutting 创建的。最早起源于Nutch,它是Lucene的子项目。
Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网
页数量的增加,遇到了严重的可扩展性问题:如何解决数十亿网页的存储和索引问题。
2003年Google发表了一篇论文为该问题提供了可行的解决方案。论文中描述的是谷歌的产品架构,该架
构称为:谷歌分布式文件系统(GFS),可以解决他们在网页爬取和索引过程中产生的超大文件的存储需
求。
2004年 Google发表论文向全世界介绍了谷歌版的MapReduce系统。同时期,以谷歌的论文为基础,
Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目
HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。
2006年Google发表了论文是关于BigTable的,这促使了后来的Hbase的发展。因此,Hadoop及其生态
圈的发展离不开Google的贡献。
3、Hadoop特性优点
扩容能力(Scalable):Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群
可用方便的扩展到数以千计的节点中。
成本低(Economical):Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至
于成本很低。
高效率(Efficient):通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非
常快。
可靠性(Rellable):能自动维护数据的多份复制,并且在任务失败后能自动地重新部署
(redeploy)计算任务。所以Hadoop的按位存储和处理数据的能力值得人们信赖。
Hadoop的历史版本和发行版公司
4、Hadoop历史版本
1.x版本系列:hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等,该版本已被淘汰
2.x版本系列:架构产生重大变化,引入了yarn平台等许多新特性,是现在使用的主流版本。
3.x版本系列:对HDFS、MapReduce、YARN都有较大升级,还新增了Ozone key-value存储。
5、Hadoop发行版公司
Hadoop发行版本分为开源社区版和商业版。社区版是指由Apache软件基金会维护的版本,是官方维护
的版本体系。
商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件
兼容性测试而发行的版本,比较著名的有cloudera的CDH、mapR、hortonWorks等。
1)、免费开源版本Apache
http://hadoop.apache.org/
优点:拥有全世界的开源贡献者,代码更新迭代版本比较快,
缺点:版本的升级,版本的维护,版本的兼容性,版本的补丁都可能考虑不太周到
Apache所有软件的下载地址(包括各种历史版本):http://archive.apache.org/dist/
2)、免费开源版本HortonWorks:
hortonworks主要是雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks,核心
产品软件HDP(ambari),HDF免费开源,并且提供一整套的web管理界面,供我们可以通过web界面
管理我们的集群状态,web管理界面软件HDF网址(http://ambari.apache.org/),2018年,大数据领
域的两大巨头公司Cloudera和Hortonworks宣布平等合并,Cloudera以股票方式收购Hortonworks,
Cloudera股东最终获得合并公司60%的股份
3)、收费版本
软件收费版本Cloudera:
https://www.cloudera.com/
cloudera主要是美国一家大数据公司在apache开源hadoop的版本上,通过自己公司内部的各种补丁,
实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困
难,版本兼容性等各种问题。该版本中是根据节点进行收费的,一定数量节点也是免费的。
6、Hadoop 3.x的版本架构和模型介绍
由于Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,使Hadoop社区基于JDK
1.8重新发布一个新的Hadoop版本,即hadoop 3.0。
Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native
Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁
盘,共同处理数据。改变最大的是hdfs,hdfs 通过最近block块计算,根据最近计算原则,本地block块,
加入到内存,先计算,通过IO,共享内存计算区域,最后快速形成计算结果,比Spark快10倍。
1)、Hadoop 3.0新特性
Hadoop 3.0在功能和性能方面,对hadoop内核进行了多项重大改进,主要包括:
1、通用性
1、精简Hadoop内核,包括剔除过期的API和实现,将默认组件实现替换成最高效的实现。
2、Classpath isolation:以防止不同版本jar包冲突
3、Shell脚本重构: Hadoop 3.0对Hadoop的管理脚本进行了重构,修复了大量bug,增加了新特性。
2、HDFS
Hadoop3.x中Hdfs在可靠性和支持能力上作出很大改观:
1、HDFS支持数据的擦除编码,这使得HDFS在不降低可靠性的前提下,节省一半存储空间。
2、多NameNode支持,即支持一个集群中,一个active、多个standby namenode部署方式。注:多
ResourceManager特性在hadoop 2.0中已经支持。
3、HDFS纠删码
在Hadoop3.X中,HDFS实现了Erasure Coding这个新功能。Erasure coding纠删码技术简称EC,是一
种数据保护技术.最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。
它通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围的数据出错情况
下,通过纠删码技术都可以进行恢复。
hadoop-3.0之前,HDFS存储方式为每一份数据存储3份,这也使得存储利用率仅为1/3,hadoop-3.0引
入纠删码技术(EC技术),实现1份数据+0.5份冗余校验数据存储方式。与副本相比纠删码是一种更节省空
间的数据持久化存储方法。标准编码(比如Reed-Solomon(10,4))会有1.4 倍的空间开销;然而HDFS副本
则会有3倍的空间开销。
4、支持多个NameNodes
最初的HDFS NameNode high-availability实现仅仅提供了一个active NameNode和一个Standby
NameNode;并且通过将编辑日志复制到三个JournalNodes上,这种架构能够容忍系统中的任何一个
节点的失败。然而,一些部署需要更高的容错度。我们可以通过这个新特性来实现,其允许用户运行多
个Standby NameNode。比如通过配置三个NameNode和五个JournalNodes,这个系统可以容忍2个
节点的故障,而不是仅仅一个节点。
5、MapReduce
Hadoop3.X中的MapReduce较之前的版本作出以下更改:
1、Tasknative优化:为MapReduce增加了C/C++的map output collector实现(包括Spill,Sort和IFile
等),通过作业级别参数调整就可切换到该实现上。对于shuffle密集型应用,其性能可提高约30%。
2、MapReduce内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,一
旦设置不合理,则会使得内存资源浪费严重,在Hadoop3.0中避免了这种情况。
Hadoop3.x中的MapReduce添加了Map输出collector的本地实现,对于shuffle密集型的作业来说,这
将会有30%以上的性能提升。
6、默认端口更改
在hadoop3.x之前,多个Hadoop服务的默认端口都属于Linux的临时端口范围(32768-61000)。
这就意味着用户的服务在启动的时候可能因为和其他应用程序产生端口冲突而无法启动。
现在这些可能会产生冲突的端口已经不再属于临时端口的范围,这些端口的改变会影响
NameNode, Secondary NameNode, DataNode以及KMS。与此同时,官方文档也进行了相应的
改变,具体可以参见 HDFS-9427以及HADOOP-12811。
Namenode ports: 50470 --> 9871, 50070 --> 9870, 8020 --> 9820
Secondary NN ports: 50091 --> 9869,50090 --> 9868
Datanode ports: 50020 --> 9867, 50010 --> 9866, 50475 --> 9865, 50075 --> 9864
Kms server ports: 16000 --> 9600 (原先的16000与HMaster端口冲突)
7、YARN 资源类型
YARN 资源模型(YARN resource model)已被推广为支持用户自定义的可数资源类型(support user-
defined countable resource types),不仅仅支持 CPU 和内存。
比如集群管理员可以定义诸如 GPUs、软件许可证(software licenses)或本地附加存储器(locally-
attached storage)之类的资源。YARN 任务可以根据这些资源的可用性进行调度。
二、hadoop3.1.4集群部署
本文部署使用的是Apache 的3.1.4版本。
1、集群简介
HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
HDFS集群负责海量数据的存储,集群中的角色主要有:NameNode、DataNode、
SecondaryNameNode
YARN集群负责海量数据运算时的资源调度,集群中的角色主要有: ResourceManager、
NodeManager
mapreduce是一个分布式运算编程框架,是应用程序开发包,由用户按照编程规范进行程序开
发,后打包运行在HDFS集群上,并且受到YARN集群的资源调度管理。
2、集群部署方式
Hadoop部署方式分三种:
standalone mode(独立模式)
独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试。
Pseudo-Distributed mode(伪分布式模式)
伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的 ResourceManger和
NodeManager,但分别启动单独的java进程,主要用于调试。
Cluster mode(群集模式)
集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从
节点会分开部署在不同的机器上。
3、hadoop重新编译
由于appache给出的hadoop的安装包没有提供带C程序访问的接口,所以我们在使用本地库(本地库可
以用来做压缩,以及支持C程序等等)的时候就会出问题,需要对Hadoop源码包进行重新编译。
编译步骤参考:hadoop 3.1.4在centos7上snappy编译过程
4、Hadoop集群安装
集群模式主要用于生产环境部署,需要多台主机,并且这些主机之间可以相互访问,我们在之前搭建好
基础环境的三台虚拟机上进行Hadoop的搭建。
以下部署使用的是alanchan用户,其中为了后续的配置,需要做免密登录,具体参考链接:linux
centos7免密登录设置
1)、集群规划
搭建的是集群模式,以四台主机为例(四台机子上均创建了alanchan用户,且在root组,也创建了
usr/local/bigdata文件夹),以下是集群规划:
机器设置参考zookeeper的配置,同时该三台机器上部署了zookeeper
2)、主机名(4台机器)
该步骤是root用户操作,如果之前在免密登录时已经设置,则跳过。
vi /etc/hostname
server1
#root用户做,保存退出,重启机器reboot
#依次做4台机器(server2、server3、server4)
#验证
[root@server1 ~]# hostname
server1
剩余40页未读,继续阅读
资源评论
一瓢一瓢的饮alanchanchn
- 粉丝: 2876
- 资源: 69
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功