Hadoop1.x与Hadoop2的区别
1、变更介绍
Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更:
l HDFS的NameNodes可以以集群的方式布署,增强了NameNodes的水平扩展能力和可用性;
l MapReduce将JobTracker中的资源管理及任务生命周期管理(包括定时触发及监控),拆分成两个独立的组件,并更名为YARN(Yet Another Resource Negotiator)。
1.1、HDFS的变化 - 增强了NameNode的水平扩展及可用性
1.1.1、Hadoop的1.X架构的介绍
而在1.x中的NameNodes只可能有一个,虽然可以通过SecondaryNameNode与NameNode进行数据同步备份,但是总会存在一定的时延,如果NameNode挂掉,但是如果有部份数据还没有同步到SecondaryNameNode上,还是可能会存在着数据丢失的问题。
架构如下:
包含两层:
Namespace
l 包含目录、文件以及块的信息
l 支持对Namespace相关文件系统的操作,如增加、删除、修改以及文件和目录的展示
Block Storage Service包含两部份
l 块管理(在Namenode中实现的)
提供数据节点群集成员的登记,并定期通过心跳进行检查。
提供块报告以及块的存储位置的维护
提供对块的操作,如对块进行增删改的操作及获取块的存储地址
对块的复本的的复制以及存储位置的管理
l 存储 - 提供Datanode进行数据的本地存储,并提供读写的操作
1.1.1、Hadoop的2.X架构的介绍
在2.X中,HDFS的变化,主要体现在增强了NameNode的水平扩展及可用性,可以同时部署多个NameNode,这些NameNodes之间是相互独立,也就是说他们不需要相互协调,DataNode同时在所有NameNodes注册,做为他们共有的存储节点,并向定时向所有的这些NameNodes发送心跳块使用情况的报告,并处理所有NameNodes向其发送的指令。
架构如下:
存储块池(Block Pool)
一个存储块池是由一组存储块组成,它属于一个单独的Namespace(Namenode),集群中所有存储块池的存储块都是存放在Datanodes中的。每个存储块池与其它的存储块池都是独立管理的,因而其在为新的块生成Block IDs时,就不需要与其它Namespace(Namenode)中的存储块池进行协作,即使一个Namespace(Namenode)挂掉了,也不会使得Datanodes中的块被访问不到,因为其它Namespace(Namenode)中的存储块池也存放了Datanodes中所有存储块的信息。
一个命名空间(Namespace)和它的块池一起被称为命名空间向量。它是一个自包含的管理单元。当一个Namenode/namespace被删除,存储于Datanodes中的相应的存储块池也会被删除掉,在集群的更新过程中,每个命名空间向量都是以一个整体进行升级的。
集群ID(ClusterID)
集群ID的加入,是用于确认集群中所有的节点,也可以在格式化其它Namenodes时指定集群ID,并使其加入到某个集群中。
1.2、MapReduce拆分JobTracker为资源管理及任务生命周期管理两个独立的组件
MapReduce在Hadoop2中称为MR2或YARN,将JobTracker中的资源管理及任务生命周期管理(包括定时触发及监控),拆分成两个独立的服务,用于管理全部资源的ResourceManager以及管理每个应用的ApplicationMaster,ResourceManager用于管理向应用程序分配计算资源,每个ApplicationMaster用于管理应用程序、调度以及协调。一个应用程序可以是经典的MapReduce架构中的一个单独的任务,也可以是这些任务的一个DAG(有向无环图)任务。ResourceManager及每台机上的NodeManager服务,用于管理那台机的用户进程,形成计算架构。每个应用程序的ApplicationMaster实际上是一个框架具体库,并负责从ResourceManager中协调资源及与NodeManager(s)协作执行并监控任务。
架构图:
其中ResourceManager包含两个主要的组件:定时调用器(Scheduler)以及应用管理器(ApplicationManager)。
定时调用器(Scheduler):
定时调度器负责向应用程序分配置资源,它不做监控以及应用程序的状 态跟踪,并且它不保证会重启由于应用程序本身或硬件出错而执行失败 的应用程序。
应用管理器(ApplicationManager):
应用程序管理器负责接收新任务,协调并提供在ApplicationMaster容 器失败时的重启功能。
节点管理器(NodeManager):
NodeManager是ResourceManager在每台机器的上代理,负责容器的管 理,并监控他们的资源使用情况(cpu,内存,磁盘及网络等),以及向 ResourceManager/Scheduler提供这些资源使用报告。
应用总管(ApplicationMaster):
每个应用程序的ApplicationMaster负责从Scheduler申请资源,以及 跟踪这些资源的使用情况以及任务进度的监控。
2、具体变化
2.1、配置文件的路径
在1.x中,Hadoop的配置文件是放在$HADOOP_HOME/conf目录下的,关键的配置文件在src目录都有对应的存放着默认值的文件,如下:
配置文件 |
默认值配置文件 |
$HADOOP_HOME/conf/core-site.xml |
$HADOOP_HOME/src/core/core-default.xml |
$HADOOP_HOME/conf/hdfs-site.xml |
$HADOOP_HOME/src/hdfs/hdfs-default.xml |
$HADOOP_HOME/conf/mapred-site.xml |
$HADOOP_HOME/src/mapred/mapred-default.xml |
我们在$HADOOP_HOME/conf下面配置的core-site.xml等的值,就是对默认值的一个覆盖,如果没有在conf下面的配置文件中设置,那么就使用src下面对应文件中的默认值,这个在使用过程中非常方便,也非常有助于我们理解。
Hadoop可以说是云计算的代名词,其也有很多衍生的产品,不少衍生的配置方式都遵从Hadoop的这种配置方式,如HBase的配置文件也是$HBase/conf目录,核心配置的名称就是hbase-site.xml,如果学习了Hadoop再去学习HBase,从配置的理解上来说,就会有一种亲切的感觉。
可是在2.x中,Hadoop的架构发生了变化,而配置文件的路径也发生了变化,放到了$HADOOP_HOME/etc/hadoop目录,这样修改的目的,应该是让其更接近于Linux的目录结构吧,让Linux用户理解起来更容易。Hadoop 2.x中配置文件的几个主要的变化:
l 去除了原来1.x中包括的$HADOOP_HOME/src目录,该目录包括关键配置文件的默认值;
l 默认不存在mapred-site.xml文件,需要将当前mapred-site.xml.template文件copy一份并重命名为mapred-site.xml,并且只是一个具有configuration节点的空文件;
l 默认不存在mapred-queues.xml文件,需要将当前mapred-queues.xml.template文件copy一份并重命名为mapred-queues.xml;
l 删除了master文件,现在master的配置在hdfs-site.xml通过属性dfs.namenode.secondary.http-address来设置,如下:
<property> <name>dfs.namenode.secondary.http-address</name> <value>nginx1:9001</value> </property> |
l 增加了yarn-env.sh,用于设置ResourceManager需要的环境变量,主要需要修改JAVA_HOME;
l 增加yarn-site.xml配置文件,用于设置ResourceManager;
2.2、命令文件目录的变化
在1.x中,所有的命令文件,都是放在bin目录下,没有区分客户端和服务端命令,并且最终命令的执行都会调用hadoop去执行;而在2.x中将服务端使用的命令单独放到了sbin目录,其中有几个主要的变化:
l 将./bin/hadoop的功能分离。在2.x中./bin/hadoop命令只保留了这些功能:客户端对文件系统的操作、执行Jar文件、远程拷贝、创建一个Hadoop压缩、为每个守护进程设置优先级及执行类文件,另外增加了一个检查本地hadoop及压缩库是否可用的功能,详情可以通过命令“hadoop -help”查看。
而在1.x中,./bin/hadoop命令还包括:NameNode的管理、DataNode的管理、 TaskTracker及JobTracker的管理、服务端对文件系统的管理、文件系统的检查、获取队列 信息等,详情可以通过命令“hadoop -help”查看。
l 增加./bin/hdfs命令。./bin/hadoop命令的功能被剥离了,并不是代表这些命令不需要了,而是将这些命令提到另外一个名为hdfs的命令中,通过hdfs命令可以对NameNode格式化及启动操作、启动datanode、启动集群平衡工具、从配置库中获取配置信息、获取用户所在组、执行DFS的管理客户端等,详细可以通过“hdfs -help”查看。
l 增加./bin/yarn命令。原来1.x中对JobTracker及TaskTracker的管理,放到了新增的yarn命令中,该命令可以启动及管理ResourceManager、在每台slave上面都启一个NodeManager、执行一个JAR或CLASS文件、打印需要的classpath、打印应用程序报告或者杀死应用程序等、打印节点报告等,详情可以通过命令“yarn -help”查看。
l 增加./bin/mapred命令。该命令可以用于执行一个基于管道的任务、计算MapReduce任务、获取队列的信息、独立启动任务历史服务、远程目录的递归拷贝、创建hadooop压缩包,详情可以通过“./mapred -help”。
相关推荐
理清Hadoop1.x与Hadoop2.x区别,对比分析。 Hadoop是大数据惊世之作,必学的东西,需要知道: 它由哪些部分组成? 各自的作用是什么? 如果工作的?
Hadoop2.x的安装过程与1.x相似,但有几个关键的区别: 1. **引入YARN**:Hadoop2.x引入了YARN(Yet Another Resource Negotiator),作为资源管理和任务调度的核心组件,取代了1.x中的JobTracker。 2. **配置文件的...
在这篇文章中,我们将讨论Hadoop 2.x与Hadoop 3.x之间的比较。 Hadoop3版本中添加了哪些新功能,Hadoop3中兼容的Hadoop 2程序,Hadoop 2和Hadoop 3有什么区别? 二、Hadoop 2.x与Hadoop 3.x比较 本节将讲述Hadoop 2...
### Hadoop2.X 新特性详解 #### Hadoop1.0 的局限性 Hadoop1.0作为初代的大数据处理框架,在数据存储和处理方面取得了显著成就,但也暴露出了一系列问题,主要包括: - **HDFS(Hadoop Distributed File System)...
文档中提到,与Hadoop 2.x相比,3.x版本在集群安装和配置方面基本变化不大,但具体到新版本的特性以及对默认端口的改变上,还是存在一些需要特别注意的地方。 #### 1. Hadoop 3.x集群安装知识 在集群安装知识部分,...
标题“win32win64hadoop2.7.x.hadoop.dll.bin”暗示了这是一个与Hadoop 2.7.x版本相关的二进制文件,适用于32位和64位的Windows操作系统。描述中提到,这些文件是用于在Windows环境下部署Hadoop时必需的组件,并且在...
Hadoop 3.x系列是Hadoop的主要版本之一,相比之前的Hadoop 2.x,它引入了诸多改进和优化,提升了整体的存储性能和计算效率。在本文中,我们将深入探讨Hadoop 3.x的关键特性、优化之处以及如何获取和安装这个版本。 ...
**Hadoop 2.x 入门指南** Hadoop 2.x 是一个开源的分布式计算框架,它是Apache Hadoop项目的最新版本,旨在提供高效、可扩展的数据处理能力。这个版本引入了若干关键改进,使得Hadoop更适合大数据处理的需求,提高...
hadoop2.x 介绍,及对比hadoop1.x的区别。hadoop2.x的新特性的详细介绍。
### Hadoop 2.x 入门知识点概览 #### 一、大数据应用发展前景 随着信息技术的飞速发展,数据量呈爆炸式增长,这不仅带来了挑战也孕育着新的机遇。根据2015年中国(深圳)IT领袖峰会的讨论,大数据正逐渐成为推动...
1. **Hadoop 2.x 平台基础:** - Hadoop 2.x 的架构原理及组件介绍(如HDFS、YARN等)。 - Hadoop 集群的搭建与管理。 - MapReduce 工作原理及实践应用。 2. **SQL on Hadoop 应用:** - Hive 的安装配置与使用...
在本文中,我们将深入探讨Spark 3.3.3与Hadoop 3.x的集成,以及它们在大数据处理领域的关键知识点。 首先,Spark的核心特性包括其内存计算能力,这极大地提高了数据处理速度。Spark的RDD(弹性分布式数据集)是其...
Hadoop是大数据技术中最重要的框架之一,是学习大数据必备的第一课,在Hadoop平台之上,可以更容易地开发和运行其他处理大规模数据的框架。尚硅谷Hadoop视频教程再次重磅升级!以企业实际生产环境为背景,增加了更...
1. **解压缩**: 首先,你需要根据你的Hadoop版本选择合适的压缩包,例如,如果你使用的是Hadoop 2.9.x,就解压缩`hadoop2.9配置文件.rar`。 2. **复制文件**: 解压后,你会找到`winutils.exe`和`hadoop.dll`。将这两...
Hadoop 3.x 笔记 Hadoop 是一个基于分布式存储的大数据处理框架,本文档将详细介绍 Hadoop 3.x 的配置和底层原理,从零搭建集群以及解决遇到的问题,通过图形化的方式更好地理解 Hadoop 的作用。 一、HDFS 组成 ...
Hadoop 2.X HDFS源码剖析-高清-完整目录-2016年3月,分享给所有需要的人!
【标题】"hadoop3.x带snappy(可用于windows本地开发)"所涉及的知识点主要集中在Hadoop 3.0版本以及Snappy压缩算法在Windows环境下的应用。Hadoop是一个开源的大数据处理框架,由Apache软件基金会开发,它使得在...
hadoop1.x环境搭建及其入门,如需获取更多hadoop资源
以上就是Hadoop 2.x集群的安装与配置过程,这是一个基础的大数据环境搭建,后续可以根据需要添加更多节点,或者集成其他大数据组件,如Hive、Spark等,构建更复杂的数据处理平台。在实际生产环境中,还需要考虑高...
1. YARN(Yet Another Resource Negotiator):Hadoop 2.x引入了YARN,取代了旧版中的JobTracker,负责集群资源管理和调度,提高了系统的可扩展性和资源利用率。 2. HDFS Federation:通过增加多个NameNode,解决了...