202164 Hadoop HA 集群部署 教学(完整)_第1页
202164 Hadoop HA 集群部署 教学(完整)_第2页
202164 Hadoop HA 集群部署 教学(完整)_第3页
202164 Hadoop HA 集群部署 教学(完整)_第4页
202164 Hadoop HA 集群部署 教学(完整)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲:方明清0102030405目录规划HadoopHA集群ZooKeeper安装与配置HDFSHA配置、启动与验证YARNHA配置、启动与验证YARNHA测试Job规划HadoopHA集群1HadoopHA集群部署模式什么是HA?HA是HighAvailability的简写,即高可用,指当前工作中的机器宕机后,会自动处理这个异常,并将工作无缝地转移到其他备用机器上去,以来保证服务的高可用。(简言之,有两台机器,一台工作,一台备用,当工作机挂了之后,备用机自动接替。)HadoopHA集群部署模式HadoopHA集群部署模式是最常见的生产环境上的安装部署方式。HadoopHA包括:NameNodeHA和ResourceManagerHA。DataNode和NodeManager本身就是被设计为高可用的,不用对它们进行特殊的高可用处理。HadoopHA集群模式配置方法我们将在完全分布式集群的基础上完成HA集群的配置。HadoopHA集群-服务器角色规划Master(IP:28)Slave1(IP:29)Slave2(IP:30)NameNode(Active)NameNode(Standby)DataNodeDataNodeDataNodeResourceManager(Active)ResourceManager(Standby)NodeManagerNodeManagerNodeManagerHistoryServerZookeeperZookeeperZookeeperjournalnodejournalnodejournalnodeZKFCZKFCHDFSHA架构图HDFSHA架构图HDFSHA在完全分布式部署模式基础上,设置多个NameNode节点,一个NameNode是Active状态,其余是Standby状态,并通过JournalNode集群来同步共享NameNode元数据,通过Zookeeper集群的ZKFC(失效检测控制)来保证在ActiveNameNode失效时及时切换并启用StandbyNameNode。YARNHA架构图YARNHA与HDFSHA类似,YRANHA利用Zookeeper等共享存储介质来存储这些信息来达到高可用,利用Zookeeper来实现ResourceManager自动故障转移。ActiveMaster将信息写入共享存储,StandbyMaster读取共享存储信息以保持和ActiveMaster同步。ZKFailoverController基于Zookeeper实现的切换控制器,由ActiveStandbyElector和HealthMonitor组成。Zookeeper核心功能是维护和保障整个集群上只有一个Active

ResourceManager。YARNHA架构图Zookeeper架构图Zookeeper集群中的每个Server在内存中存储了一份数据;Zookeeper启动时,将从实例中选举一个Leader(Paxos协议),其它实例为Follower;Leader负责处理数据更新等操作(Zab协议);

一个更新操作成功,当且仅当大多数Server在内存中成功修改数据:ZookeeperServer数目一般为奇数,Leader选举算法采用了Paxos协议;Paxos核心思想:当多数Server写成功,则任务数据写成功。也就是说:如果有3个Server,则两个写成功即可;Zookeeper架构图HadoopHA集群部署需要的主要软件包CentOS7操作系统安装光盘。可以是Mini版本的安装光盘,安装完成之后只有纯文字的命令界面,没有图形界面。如:CentOS_7.3.1611-x86_64-DVD-Minimal.isoJDK8安装文件。可以是JDK8的压缩包安装文件,解压之后配置环境变量即可使用。如:jdk-8u201-linux-x64.tar.gzHadoop2.8.5压缩包安装文件。如:hadoop-2.8.5.tar.gzChrony安装包文件,包含以下安装包文件:libseccomp-2.3.1-2.el7.x86_64.rpm、chrony-2.1.1-3.el7.centos.x86_64.rpmZookeeper安装包文件。如:apache-zookeeper-3.6.0-bin.tar.gzzookeeper-3.4.10.tar.gz

ZooKeeper安装与配置2基础环境配置序号任务名称任务一上传安装包到第1个Zookeeper节点并解压任务二编辑Zookeeper配置文件任务三创建zkdata和zkdatalog文件夹任务四设置Zookeeper节点对应的ID(myid)任务五配置Zookeeper环境变量任务六分发Zookeeper到其他Zookeeper节点任务七修改其他Zookeeper节点对应的ID(myid)任务八启动与验证Zookeeper集群任务一上传安装包到第1个Zookeeper节点并解压登录Zookeeper第1个节点(master),使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$上传Zookeeper安装包到master节点的/opt文件夹下,并解压 [hadoop@master~]$cd/opt [hadoop@master~]$tarzxvfapache-zookeeper-3.6.0-bin.tar.gz --解压安装包任务二编辑Zookeeper配置文件登录Zookeeper第1个节点(master),使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$进入Zookeeper的配置文件目录,复制配置文件并重命名为zoo.cfg [hadoop@master~]$cd/opt/zookeeper-3.6.0/conf --进入zookeeper配置文件目录 [hadoop@masterzookeeper-3.6.0]$cpzoo_sample.cfgzoo.cfg --复制配置文件并重命名编辑Zookeeper的配置文件zoo.cfg,增加或修改为以下内容: dataDir=/opt/zookeeper-3.6.0/zkdata --在原有语句上修改即可 dataLogDir=/opt/zookeeper-3.6.0/zkdatalog --zookeeper日志数据保存位置 #2888选举端口、3888原子广播端口 server.1=master:2888:3888 --节点对应ID,server.1=master server.2=slave1:2888:3888 --节点对应ID,server.2=slave1 server.3=slave2:2888:3888 --节点对应ID,server.3=slave2任务三创建zkdata和zkdatalog文件夹登录Zookeeper第1个节点(master),使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$进入Zookeeper安装目录 [hadoop@master~]$cd/opt/zookeeper-3.6.0 --进入zookeeper安装目录创建zkdata和zkdatalog文件夹 [hadoop@masterzookeeper-3.6.0]$mkdirzkdata --创建zkdata文件夹 [hadoop@masterzookeeper-3.6.0]$mkdirzkdatalog --创建zkdatalog文件夹任务四设置Zookeeper节点对应的ID(myid)登录Zookeeper第1个节点(master),使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$进入Zookeeper安装目录 [hadoop@master~]$cd/opt/zookeeper-3.6.0 --进入zookeeper安装目录进入zkdata文件夹,设置Zookeeper节点对应的ID(myid) [hadoop@masterzookeeper-3.6.0]$cdzkdata --进入zkdata文件夹 [hadoop@masterzkdata]$echo1>myid --创建myid文件,输入对应ID [hadoop@masterzkdata]$catmyid --查看myid内容,应该显示1任务五配置Zookeeper环境变量登录Zookeeper第1个节点(master),使用root用户登录,配置Zookeeper环境变量 #vi/etc/profile往/etc/profile文件末尾中追加以下配置内容 #zookeeper exportZOOKEEPER_HOME=/opt/zookeeper-3.6.0 exportPATH=$PATH:${ZOOKEEPER_HOME}/bin修改完成,保存后执行#source/etc/profile命令,使得环境变量生效,并查看环境变量 [root@master~]$source/etc/profile --运行脚本,使得环境变量生效 [root@master~]$export --查看环境变量拷贝/etc/profile文件到slave1和slave2从节点 #scp/etc/profileroot@slave1:/etc/ --复制文件到slave1从节点 #scp/etc/profileroot@slave1:/etc/ --复制文件到slave2从节点任务六分发Zookeeper到其他Zookeeper节点登录Zookeeper第1个节点(master),使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$分发Zookeeper文件到其他节点 [hadoop@master~]$cd/opt [hadoop@master~]$scp–r/opt/zookeeper-3.6.0hadoop@slave1:/opt/ --分发到slave1节点 [hadoop@master~]$scp–r/opt/zookeeper-3.6.0hadoop@slave2:/opt/ --分发到slave2节点分别登录slave1、slave2节点,切换为hadoop用户,检查分发结果以及环境变量 [hadoop@slave1~]$ls-l/opt --在slave1节点上检查分发结果 [hadoop@slave1~]$export --在slave1节点上检查环境变量 [hadoop@slave2~]$ls-l/opt --在slave2节点上检查分发结果 [hadoop@slave2~]$export --在slave2节点上检查环境变量任务七修改其他Zookeeper节点对应的ID(myid)分别登录Zookeeper其他节点(slave1、slave2),使用root用户登录,然后切换为hadoop用户 [root@slave1~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@slave1~]$进入Zookeeper安装目录 [hadoop@slave1~]$cd/opt/zookeeper-3.6.0 --进入zookeeper安装目录进入zkdata文件夹,设置Zookeeper节点对应的ID(myid) [hadoop@slave1zookeeper-3.6.0]$cdzkdata --进入zkdata文件夹 [hadoop@slave1zkdata]$echo2>myid --创建myid文件,输入对应ID [hadoop@slave1zkdata]$catmyid --查看myid内容,应该显示24、以上相同步骤进入zookeeper的slave2节点,将myid内容设置为3任务八启动与验证Zookeeper集群分别登录所有Zookeeper所有节点,使用hadoop用户登录,以master节点为例 #su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$在Zookeeper所有节点上启动zookeeper,以master为例,slave1、slave2操作步骤相同 [hadoop@master~]$zkServer.shstart --在master节点上启动Zookeeper [hadoop@master~]$zkServer.shstatus --在master节点上查看启动状态

验证Zookeeper集群,以master为例,slave1、slave2操作步骤相同 [hadoop@master~]$jps --查看zookeeper进程QuorumPeerMain [hadoop@master~]$zkServer.shstop --停止Zookeeper [hadoop@master~]$zkServer.shstatus --查看Zookeeper启动状态 [hadoop@master~]$zkServer.sh[start|restart] --重新启动Zookeeper [hadoop@master~]$zkCli.sh–servermaster:2181 --连接到Zookeeper服务HDFSHA配置、启动与验证3HDFSHA配置、启动与验证序号任务名称任务一修改core-site.xml配置文件(HDFSHA)任务二修改hdfs-site.xml配置文件(HDFSHA)任务三分发HDFSHA配置文件任务四HDFSHA集群的NameNode格式化任务五部署完成之后常规启动HDFSHA集群任务六验证HDFSHA集群任务一修改core-site.xml配置文件登录master节点,使用root用户登录,然后切换为hadoop用户,再进入haddop配置文件目录 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$cd/opt/hadoop-2.8.5/etc/hadoop --进入到hadoop配置文件目录修改core-site.xml配置文件,替换为以下内容 <configuration>

<!--指定NameNode主机连接到nameservices逻辑名(在hdfs-site.xml中有定义)--> <property> <name>fs.defaultFS</name> <value>hdfs://myha</value> </property>

<!--指定tmp文件夹路径--> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/data/tmp</value> </property> <!–设置zookeeper地址--> <property> <name>ha.zookeeper.quorum</name> <value>master:2181,slave1:2181,slave2:2181</value> </property> </configuration>任务二修改hdfs-site.xml配置文件(一)编辑hdfs-site.xml配置文件,主要是删除SecondaryNameNode配置信息,配置为双NN模式 <configuration> <property> <name>dfs.replication</name> <value>3</value> </property>

<!–为namenode集群定义一个nameservices逻辑名--> <property> <name>services</name> <value>myha</value> </property>

<!–映射nameservices逻辑名称到namenode逻辑名称--> <property> <name>nodes.myha</name> <value>nn1,nn2</value> </property> </configuration>在单一NameNode节点的集群中,访问HDFS集群的入口是NameNode所在的服务器,但是在有两个或多个NameNode节点的HA集群中,无法配置单一服务器入口,需要定义一个服务逻辑名。任务二修改hdfs-site.xml配置文件(二)编辑hdfs-site.xml配置文件(续上) <configuration>

<!–映射namenode逻辑名称到真实主机名(RPC)nn1

--> <property> <name>node.rpc-address.myha.nn1</name> <value>master:8020</value> </property>

<!–映射namenode逻辑名称到真实主机名(RPC)nn2

--> <property> <name>node.rpc-address.myha.nn2</name> <value>slave1:8020</value> </property>

</configuration>node.rpc-address.[nameserviceID].[namenodeID]分别指定每个NameNode的RPC服务完整监听地址(hostname+端口号),真实的NN主机分别是master和slave1,端口8020是NameNode节点Active状态的端口号,是HDFS的内部通信端口。任务二修改hdfs-site.xml配置文件(三)编辑hdfs-site.xml配置文件(续上) <configuration>

<!–映射namenode逻辑名称到真实主机名(HTTPWEB)nn1

--> <property> <name>node.http-address.myha.nn1</name> <value>master:50070</value> </property>

<!–映射namenode逻辑名称到真实主机名(HTTPWEB)nn2

--> <property> <name>node.http-address.myha.nn2</name> <value>slave1:50070</value> </property>

</configuration>node.http-address.[nameserviceID].[namenodeID]分别指定每个NameNode的HTTP服务地址(hostname+端口号),真实的NN主机分别是master和slave1,端口50070是NameNode节点用于访问和监控Hadoop系统运行状态的WebUI(Web界面)默认端口。任务二修改hdfs-site.xml配置文件(四)编辑hdfs-site.xml配置文件(续上) <configuration>

<!–配置namenode间用于共享编辑日志的journalnode列表--> <property> <name>node.shared.edits.dir</name> <value>qjournal://master:8485;slave1:8485;slave2:8485/myha</value> </property>

<!–配置journalnode用于存放共享编辑日志的目录--> <property> <name>dfs.journalnode.edits.dir</name> <value>/home/hadoop/data/dfs/jn</value> </property> </configuration>两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控editlog的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。任务二修改hdfs-site.xml配置文件(五)编辑hdfs-site.xml配置文件(续上) <configuration>

<!–开启NameNode失败自动切换--> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>

<!–配置NameNode失败自动切换实现方式--> <property> <name>vider.myha</name> <value>node.ha.ConfiguredFailoverProxyProvider</value> </property>

<!–配置隔离机制方法,多个机制用换行分割,即每个机制占用一行--> <property> <name>dfs.ha.fencing.methods</name> <value> sshfence shell(/bin/true) </value> </property> </configuration>任务三分发HDFSHA配置文件master节点,使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$分发HDFSHA配置文件 [hadoop@master~]$cd/opt/hadoop-2.8.5/etc/hadoop/ [hadoop@master~]$scp–rcore-site.xmlhadoop@slave1:/opt/hadoop-2.8.5/etc/hadoop/ [hadoop@master~]$scp–rcore-site.xmlhadoop@slave2:/opt/hadoop-2.8.5/etc/hadoop/ [hadoop@master~]$scp–rhdfs-site.xmlhadoop@slave1:/opt/hadoop-2.8.5/etc/hadoop/ [hadoop@master~]$scp–rhdfs-site.xmlhadoop@slave2:/opt/hadoop-2.8.5/etc/hadoop/分别登录slave1、slave2节点,切换为hadoop用户,检查分发结果以及环境变量 [hadoop@slave1~]$ls-l/opt/hadoop-2.8.5/etc/hadoop/ --在slave1节点上检查分发结果 [hadoop@slave1~]$export --在slave1节点上检查环境变量 [hadoop@slave2~]$ls-l/opt/hadoop-2.8.5/etc/hadoop/ --在slave2节点上检查分发结果 [hadoop@slave2~]$export --在slave2节点上检查环境变量任务四HDFSHA集群的NameNode格式化(一)所有节点,使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$所有节点,在进行HDFSHA的NameNode格式化之前,需要将原来HDFS数据临时存放文件删除 [hadoop@master~]$rm–rf/home/hadoop/data/dfs/namenode --删除namenode目录 [hadoop@master~]$rm–rf/home/hadoop/data/dfs/datanode --删除datanode目录

[hadoop@master~]$rm–rf/home/hadoop/data/tmp/ --删除tmp目录文件所有节点,启动Zookeeper(以master节点为例,其他节点步骤完全相同) [hadoop@master~]$zkServer.shstart --启动Zookeeper [hadoop@master~]$zkServer.shstatus --查看启动状态 [hadoop@master~]$jps --查看Zookeeper进程所有节点,启动JourmnalNode(以master节点为例,其他节点步骤完全相同) [hadoop@master~]$hadoop-daemon.shstartjournalnode --启动本机JournalNode [hadoop@master~]$jps --查看JournalNode进程

或者 [hadoop@master~]$hadoop-daemons.shstartjournalnode --启动所有节点的JournalNode [hadoop@master~]$jps --查看JournalNode进程任务四HDFSHA集群的NameNode格式化(二)所有NameNode节点(master和slave1)格式化NameNode

[hadoop@master~]$hdfsnamenode–format --master节点格式化NameNode

[hadoop@master~]$hadoop-daemon.shstartnamenode --master节点启动NameNode

[hadoop@master~]$jps --master查询NameNode进程

通过双NN同步,在slave1上格式化NameNode,步骤如下:

[hadoop@slave1~]$hdfsnamenode–bootstrapStandby --slave1节点格式化NameNode从master节点启动HDFSHA集群 [hadoop@master~]$start-dfs.sh --启动HDFSHA集群 [hadoop@master~]$jps --查看进程,所有节点都执行

[hadoop@master~]$hdfshaadmin–getServiceStatenn1 --查询NameNode1状态

[hadoop@master~]$hdfshaadmin–getServiceStatenn2 --查询NameNode2状态所有ZKFC节点,启动ZookeeperFailoverController(以master节点为例,slave1节点步骤完全相同) [hadoop@master~]$hdfszkfc-formatZK --第一次启动ZKFC,在Zookeeper中创建znode [hadoop@master~]$hadoop-daemon.shstartzkfc --master节点启动ZKFC [hadoop@slave1~]$hadoop-daemon.shstartzkfc --slave1节点启动ZKFC [hadoop@master~]$jps --master节点查看ZKFC进程:DFSZKFailoverController

[hadoop@master~]$hdfshaadmin–getServiceStatenn1 --查询NameNode1状态

[hadoop@master~]$hdfshaadmin–getServiceStatenn2 --查询NameNode2状态任务五部署完成之后常规启动HDFSHA集群所有节点,启动Zookeeper(以master节点为例,其他节点步骤完全相同) [hadoop@master~]$zkServer.shstart --启动Zookeeper [hadoop@master~]$zkServer.shstatus --查看启动状态,一个Leader,其余Follower [hadoop@master~]$jps --查看Zookeeper进程,QuorumPeerMain所有节点,启动JourmnalNode(以master节点为例,其他节点步骤完全相同) [hadoop@master~]$hadoop-daemon.shstartjournalnode --启动本机JournalNode [hadoop@master~]$jps --查看JournalNode进程

或者 [hadoop@master~]$hadoop-daemons.shstartjournalnode --启动所有节点的JournalNode [hadoop@master~]$jps --查看JournalNode进程从master节点启动HDFSHA集群 [hadoop@master~]$start-dfs.sh --启动HDFSHA集群 [hadoop@master~]$jps --查看进程,所有节点都执行所有ZKFC节点,启动ZookeeperFailoverController(以master节点为例,slave1节点步骤完全相同) [hadoop@master~]$hadoop-daemon.shstartzkfc --master节点启动ZKFC [hadoop@slave1~]$hadoop-daemon.shstartzkfc --slave1节点启动ZKFC [hadoop@master~]$jps --master节点查看ZKFC进程:DFSZKFailoverController

[hadoop@master~]$hdfshaadmin–getServiceStatenn1 --查询NameNode1状态

[hadoop@master~]$hdfshaadmin–getServiceStatenn2 --查询NameNode2状态任务六验证HDFSHA集群(一)使用jps命令查看进程 [hadoop@master~]$jps --查看启动的进程情况 [hadoop@master~]$hdfsdfsadmin–report --查看HDFSHA集群报告 [hadoop@master~]$hdfshaadmin–getServiceStatenn1--查询NameNode1状态 [hadoop@master~]$hdfshaadmin–getServiceStatenn2--查询NameNode2状态查看集群HDFSWebUI页面(NN1:master)

打开浏览器,访问master主机50070端口页面,28:50070,如下图。查看集群HDFSWebUI页面(NN2:slave1)

打开浏览器,访问slave1主机50070端口页面,29:50070,如下图。任务六验证HDFSHA集群(二)测试NameNode的主备切换 [hadoop@master~]$ps–ef|grepnamenode --查看所有进程 [hadoop@master~]$kill-9xxxxxxx --手工杀掉namenode进程 [hadoop@master~]$hdfshaadmin–getServiceStatenn1--查询NameNode1状态 [hadoop@master~]$hdfshaadmin–getServiceStatenn2--查询NameNode2状态查看集群HDFSWebUI页面(NN1:master)

打开浏览器访问master主机50070端口页面,28:50070,无法访问。查看集群HDFSWebUI页面(NN2:slave1)

打开浏览器,访问slave1主机50070端口页面,29:50070,如下图。YARNHA配置、启动与验证4YARNHA配置、启动与验证序号任务名称任务一配置SSH无密钥登录(slave2为主节点)任务二修改yarn-site.xml配置文件(YARNHA)任务三检查mapred-site.xml配置文件(无须修改)任务四分发YARNHA配置文件任务五启动YARNHA集群任务六启动历史服务任务七验证YARNHA集群与历史服务任务一配置SSH无密钥登录(slave2为主节点)所有节点,使用hadoop用户登录,并生成RSA密钥对(此步骤前面已经做过,可以忽略) #su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$ssh-keygen --生成RSA密钥对 [hadoop@master~]$ls-abl.ssh --查看生成的RSA密钥对配置SSH无密钥登录,实现从slave2无密钥登录其他所有节点(含本机) [hadoop@slave2~]$ssh-copy-id–i.ssh/id_rsa.pubslave2 [hadoop@slave2~]$ssh-copy-id–i.ssh/id_rsa.pubslave1 [hadoop@slave2~]$ssh-copy-id–i.ssh/id_rsa.pubmaster测试SSH无密钥登录 [hadoop@slave2~]$sshslave2 --从master无密钥登录到slave2 [hadoop@slave2~]$sshslave1 --从master无密钥登录到slave1 [hadoop@slave2~]$sshmaster --从master无密钥登录到master#YARNHA的主备ResourceManager用到节点slave1、slave2,所以需要做无密钥登录任务二修改yarn-site.xml配置文件(一)编辑yarn-site.xml配置文件,配置为双RM模式 <configuration> <!--配置yarn的默认混洗方式,选择为mapreduce的默认混洗算法-->

<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>

<!--是否启用日志聚集功能-->

<property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property>

<!--配置聚集的日志在HDFS上最多保存多长时间--> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>106800</value> </property> </configuration>yarn.nodemanager.aux-services配置yarn默认的混洗方式为mapreduce_shuffle,yarn.log-aggregation-enable配置是否启用日志聚集功能,yarn.log-aggregation.retain-seconds配置聚集的日志在HDFS上最多保存多长时间。任务二修改yarn-site.xml配置文件(二)编辑yarn-site.xml配置文件,配置为双RM模式 <configuration> <!--启用resourcemanager的ha功能--> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <!--为resourcemanageha集群起个id--> <property> <name>yarn.resourcemanager.cluster-id</name> <value>yarn-ha</value> </property> <!--指定resourcemangerha有哪些节点逻辑名称--> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> </configuration>任务二修改yarn-site.xml配置文件(三)编辑yarn-site.xml配置文件,配置为双RM模式 <configuration><!--指定第一个RM节点所在机器--><property><name>yarn.resourcemanager.hostname.rm1</name><value>slave1</value></property><!--指定第二个RM节点所在机器--><property><name>yarn.resourcemanager.hostname.rm2</name><value>slave2</value></property><!--指定resourcemangerha所用的zookeeper节点--><property><name>yarn.resourcemanager.zk-address</name><value>master:2181,slave1:2181,slave2:2181</value></property> </configuration>任务二修改yarn-site.xml配置文件(四)编辑yarn-site.xml配置文件,配置为双RM模式 <configuration><!--开启Recovery--><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property><!--指定yarn.resourcemanager.store.class的存储介质(HA集群只支持ZKRMStateStore)--><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property> </configuration>开启Recovery后,ResourceManger会将应用的状态等信息保存到yarn.resourcemanager.store.class配置的存储介质中,重启后会load这些信息,并且NodeManger会将还在运行的container信息同步到ResourceManager,整个过程不影响作业的正常运行。任务二检查mapred-site.xml配置文件(无须修改)从mapred-site.xml.template复制一个mapred-site.xml文件,并进行编辑配置(mapreduce参数配置文件) <configuration>

<property> <name></name>

<value>yarn</value>

</property>

<property> <name>mapreduce.jobhistory.address</name>

<value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888</value> </property> </configuration>设置mapreduce任务运行在yarn上。mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在master机器上。mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。任务四分发YARNHA配置文件slave1节点,使用root用户登录,然后切换为hadoop用户 [root@master~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@master~]$分发YARNHA配置文件 [hadoop@master~]$cd/opt/hadoop-2.8.5/etc/hadoop/ [hadoop@master~]$scp–ryarn-site.xmlhadoop@slave1:/opt/hadoop-2.8.5/etc/hadoop/ [hadoop@master~]$scp–ryarn-site.xmlhadoop@slave2:/opt/hadoop-2.8.5/etc/hadoop/分别登录slave1、slave2节点,切换为hadoop用户,检查分发结果以及环境变量 [hadoop@slave1~]$ls-l/opt/hadoop-2.8.5/etc/hadoop/ --在slave1节点上检查分发结果 [hadoop@slave1~]$export --在slave1节点上检查环境变量 [hadoop@slave2~]$ls-l/opt/hadoop-2.8.5/etc/hadoop/ --在slave2节点上检查分发结果 [hadoop@slave2~]$export --在slave2节点上检查环境变量任务五启动YARN

HA集群slave1节点,使用root用户登录,然后切换为hadoop用户 [root@slave1~]#su–hadoop --从root用户切换为hadoop身份 [hadoop@slave1~]$启动YARN,只需要在slave1节点操作即可(根据规划,YARN的主节点设置在slave1) [hadoop@slave1~]$start-yarn.sh --启动YARN分别在slave1、slave2节点上启动ResourceManager,即启动双RM模式 [hadoop@slave1~]$yarn-daemon.shstartresourcemanager --slave1上启动RM [hadoop@slave2~]$yarn-daemon.shstartresourcemanager --slave2上启动RM使用jps命令查看进程情况 [hadoop@slave1~]$jps --查看启动的进程情况 [hadoop@slave2~]$jps --查看启动的进程情况如果启动集群YARN失败,则可以查看启动事件日志;必要时可清除日志文件,重启集群。任务六启动集群历史服务master节点,使用root用户登录,然后切换为hadoop用户 [root

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论