Hadoop平台搭建与应用(第2版)(微课版) 课件 项目6 Hadoop HA集群搭建_第1页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目6 Hadoop HA集群搭建_第2页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目6 Hadoop HA集群搭建_第3页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目6 Hadoop HA集群搭建_第4页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目6 Hadoop HA集群搭建_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

任务6.1HadoopHA环境搭建任务实施1.配置静态IP在宿主机中,创建自定义网桥,指定网段,网关,操作命令及结果如下。[root@CentOS~]#dockernetworkcreate--subnet=/24--gateway=HAf1bad6fa92064749b7e9df80ae3832fd0a33ba644b781c83b2d7da6510ea57232.Docker容器添加端口映射创建3个容器,并添加端口映射,操作命令如下。[root@CentOS~]#dockerrun-dit-hmaster1--namemaster1--network=HA--ip=0-p10022:22-p50070:50070-p8088:8088-p8042:8042-p2181:2181--privileged=truecentos:7init

[root@CentOS~]#dockerrun-dit-hslave1--nameslave1--network=HA--ip=1-p10023:22-p50071:50070-p8089:8088-p2182:2181-p8043:8042--privileged=truecentos:7init

[root@CentOS~]#dockerrun-dit-hslave2--nameslave2--network=HA--ip=2-p10024:22-p8090:8088-p2183:2181-p8044:8042--privileged=truecentos:7init3.拷贝安装包到master1容器中,操作命令及结果如下。[root@CentOSopt]#dockercp/opt/hadoop-2.7.7.tar.gzmaster1:/optSuccessfullycopied218.7MBtomaster1:/opt[root@CentOSopt]#dockercp/opt/zookeeper-3.4.8.tar.gzmaster1:/optSuccessfullycopied22.26MBtomaster1:/opt[root@CentOSopt]#dockercp/opt/jdk-8u341-linux-x64.tar.gzmaster1:/optSuccessfullycopied148.2MBtomaster1:/opt4.进入master1容器,安装并开启SSH服务,操作命令如下。[root@CentOSopt]#dockerexec-itmaster1bash[root@master1/]#yuminstall-ynet-toolsvimopenssh

openssh-clientsopenssh-serverwhich[root@master1/]#systemctlstartsshd5.解压jdk,hadoop,zookeeper文件到指定目录中,并重命名文件,操作命令如下。[root@master1opt]#tar-zxvfjdk-8u341-linux-x64.tar.gz-C/usr/lib/[root@master1opt]#tar-zxvfhadoop-2.7.7.tar.gz-C/usr/local/[root@master1opt]#tar-zxvfzookeeper-3.4.8.tar.gz-C/usr/local/[root@master1opt]#cd/usr/lib[root@master1lib]#mvjdk1.8.0_341jdk1.8.0[root@master1lib]#cd/usr/local/[root@master1local]#mvhadoop-2.7.7hadoop[root@master1local]#mvzookeeper-3.4.8/zookeeper6.编辑“~/.bashrc”文件,将相应软件的安装路径添加到环境变量中,操作内容如下。exportJAVA_HOME=/usr/lib/jdk1.8.0exportHADOOP_HOME=/usr/local/hadoopexportZOOKEEPER_HOME=/usr/local/zookeeperPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin7.配置免密登录生成密钥,配置免密登录并测试,操作命令如下。[root@master1~]#ssh-keygen-trsa[root@master1~]#ssh-copy-idmaster1[root@master1~]#ssh-copy-idslave1[root@master1~]#ssh-copy-idslave2[root@master1~]#sshslave1Lastlogin:MonMar608:15:562023from[root@slave1~]#8.配置zookeeper切换到zookeeper下的conf目录,通过复制“zoo_sample.cfg”文件创建“zoo.cfg”文件,操作命令如下。[root@master1conf]#cpzoo_sample.cfgzoo.cfg编辑“zoo.cfg”文件,操作命令及文件内容如下。[root@master1conf]#vizoo.cfg

tickTime=2000initLimit=10syncLimit=5clientPort=2181dataDir=/usr/local/zookeeper/datadataLogDir=/usr/local/zookeeper/logsserver.1=master1:2888:3888server.2=slave1:2889:3889server.3=slave2:2890:3890其中配置项“dataDir”和“dataLogDir”中的目录需要手动创建,操作命令如下。[root@master1zookeeper]#mkdirdata[root@master1zookeeper]#mkdirlogs进入新创建的data目录中,创建myid文件,并编辑其内容为1,操作命令如下。[root@master1zookeeper]#cddata/[root@master1data]#touchmyid9.配置Hadoop配置完Zookeeper后,切换到“/usr/local/hadoop/etc/hadoop”目录中在此查看目录,操作命令如下。[root@master1hadoop]#lscapacity-scheduler.xmlhttpfs-env.shmapred-env.shconfiguration.xsl

httpfs-pertiesmapred-queues.xml.templatecontainer-executor.cfg

httpfs-signature.secretmapred-site.xml.templatecore-site.xmlhttpfs-site.xmlslaveshadoop-env.cmdkms-acls.xmlssl-client.xml.examplehadoop-env.shkms-env.shssl-server.xml.examplepertiespertiesyarn-env.cmdpertieskms-site.xmlyarn-env.shhadoop-policy.xmlpertiesyarn-site.xmlhdfs-site.xmlmapred-env.cmd编辑hadoop-env.sh,修改JAVA_HOME配置项,配置内容如下。#Thejavaimplementationtouse.exportJAVA_HOME=/usr/lib/jdk1.8.0在“/usr/local/hadoop/etc/hadoop”目录中,通过拷贝“mapred-site.xml.template”文件生成“mapred-site.xml”文件,操作命令如下。[root@master1hadoop]#cpmapred-site.xml.templatemapred-site.xml分别编辑core-site.xml、hdfs-site.xml、mapred-site.xml,yarn-site.xml四文件个文件。<configuration><!--使用fs.defa还是使用fs.defaultFS,首先判断是否开启了namenode的高可用,如果开启了就用fs.defaultFS,在单一namenode的情况下,就用fs.defa

<!--指定默认的HDFS路径--><property><name>fs.defaultFS</name><value>hdfs://mycluster</value></property><!--指定NameNode、DataNode、secondaryNamenode等存放数据的公共目录--><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/tmp</value></property><!--指定zookeeper地址--><property><name>ha.zookeeper.quorum</name><value>master1:2181,slave1:2181,slave2:2181</value></property><!--设置hadoop链接zookeeper的超时时间--><property><name>ha.zookeeper.session-timeout.ms</name><value>30000</value></property><!--设置垃圾回收时间,以分钟为单位,1440分钟=60*24,刚好是一天--><property><name>erval</name><value>1440</value></property></configuration>编辑“core-site.xml”文件,内容如下。

(文本过长,放在ppt页面下方)编辑“hdfs-site.xml”文件,文件内容如下,(文本过长,放在ppt页面下方,第一页)。

<configuration><!--指定journalnode集群之间通信的超时时间--><property><name>dfs.qjournal.start-segment.timeout.ms</name><value>60000</value></property><!--指定namenode的组名称,自己可以定义--><property><name>dfs.nameservices</name><value>mycluster</value></property><!--指定namenode组mycluster的成员--><property><name>dfs.ha.namenodes.mycluster</name><value>master1,slave1</value></property><!--配置master1的rpc地址及端口号--><property><name>dfs.namenode.rpc-address.mycluster.master1</name><value>master1:9000</value></property><!--配置slave1的rpc地址及端口号--><property><name>dfs.namenode.rpc-address.mycluster.slave1</name><value>slave1:9000</value></property><!--配置master1的地址及端口号--><property><name>dfs.namenode.http-address.mycluster.master1</name><value>master1:50070</value></property><!--配置slave1的地址及端口号--><property><name>dfs.namenode.http-address.mycluster.slave1</name><value>slave1:50070</value></property><!--指定NameNode的edits元数据在JournalNode上的存放位置--><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://master1:8485;slave1:8485;slave2:8485/mycluster</value></property><!--指定该集群出故障时,哪个实现类负责执行故障切换--><property> <name>dfs.client.failvider.mycluster</name><value> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider </value></property><!--配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行--><property> <name>dfs.ha.fencing.methods</name><value>

sshfenceshell(/bin/true)</value></property><!--如果为"true",则在HDFS中启用权限检查;如果为"false",则关闭权限检查;默认值为"true"。--><property><name>dfs.permissions.enabled</name><value>false</value></property>

<property><!--指定是否允许支持文件追加,默认为”false”--><name>dfs.support.append</name><value>true</value></property><!--使用sshfence隔离机制时需要ssh免登录--><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><!--数据备份的个数--><property><name>dfs.replication</name><value>2</value></property><!--指定hdfs元数据存储的路径--><property><name>dfs.namenode.name.dir</name><value>/usr/local/hadoop/dfs/name</value></property><!--指定hdfs数据存储的路径--><property><name>dfs.datanode.data.dir</name><value>/usr/local/hadoop/dfs/data</value></property><!--指定journalnode日志文件存储的路径--><property><name>dfs.journalnode.edits.dir</name><value>/usr/local/hadoop/tmp/journal</value></property><!--开启自动故障转移--><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!--开启WebHDFS功能(基于REST的接口服务)--><property><name>dfs.webhdfs.enabled</name><value>true</value></property><!--配置sshfence隔离机制超时时间--><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property><!--设定从CLI手动运行的FC功能等待健康检查、服务状态超时时间--><property><name>ha.failover-controller.cli-check.rpc-timeout.ms</name><value>60000</value></property></configuration>编辑“hdfs-site.xml”文件,文件内容如下,(文本过长,放在ppt页面下方,第二页)。

编辑“mapred-site.xml”文件,文件内容如下。<configuration><!--设定指定mapreduce执行框架为YARN方式--><property><name>map</name><value>yarn</value></property><!--设定jobhistory的IPC地址--><property><name>mapreduce.jobhistory.address</name><value>master1:10020</value></property><!--设定jobhistory的web地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>master1:19888</value></property></configuration>编辑“yarn-site.xml”文件,文件内容如下。(文本过长,放在ppt页面下方)<configuration><!--开启resourcemanger高可用--><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!--指定resourcemanger的clusterid--><property><name>yarn.resourcemanager.cluster-id</name><value>yrc</value></property><!--指定resourcemanger的名字--><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!--分别指定resourcemanger的地址--><property><name>yarn.resourcemanager.hostname.rm1</name><value>master1</value></property><!--分别指定resourcemanger的地址--><property><name>yarn.resourcemanager.hostname.rm2</name><value>slave1</value></property><!--指定resourcemanger使用ZK集群地址--><property><name>yarn.resourcemanager.zk-address</name><value>master1:2181,slave1:2181,slave2:2181</value></property><!--配置yarn运行shuffle的方式,选择mapreduce的默认shuffle算法--><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>86400</value></property><!--开启Recovery后,ResourceManger会将应用的状态等信息保存到yarn.resourcemanager.store.class配置的存储介质中,重启后会load这些信息,并且NodeManger会将还在运行的container信息同步到ResourceManager,整个过程不影响作业的正常运行。--><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>修改slaves文件(3.X为workers),编辑内容如下。master1slave1slave2在core-site.xml、hdfs-site.xml、mapred-site.xml,yarn-site.xml四个配置文件中,所涉及的配置项中的目录需要手动创建,操作命令如下。[root@master1hadoop]#mkdirlogs[root@master1hadoop]#mkdirdfs[root@master1hadoop]#mkdirtmp[root@master1hadoop]#cddfs[root@master1dfs]#mkdirdata[root@master1dfs]#mkdirname[root@master1dfs]#cd..[root@master1hadoop]#cdtmp/[root@master1tmp]#mkdirjournal在master1节点中分别拷贝“.bashrc”、“jdk”、“hadoop”和“zookeeper”文件到slave1和slave2节点中,操作命令如下。[root@master1~]#scp-r~/.bashrcslave1:~/.bashrc[root@master1~]#scp-r~/.bashrcslave2:~/.bashrc[root@master1~]#scp-r/usr/lib/jdk1.8.0slave1:/usr/lib/[root@master1~]#scp-r/usr/lib/jdk1.8.0slave2:/usr/lib/[root@master1~]#scp-r/usr/local/zookeeperslave1:/usr/local/[root@master1~]#scp-r/usr/local/zookeeperslave2:/usr/local/[root@master1~]#scp-r/usr/local/hadoopslave1:/usr/local/[root@master1~]#scp-r/usr/local/hadoopslave2:/usr/local/分别在slave1和slave2节点上执行“source~/.bashrc”命令使环境变量立即生效。10.启动Hadoop集群(1)启动Zookeeper集群并查看状态。在master1节点启动Zookeeper并查看状态,操作命令及结果如下。[root@master1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED[root@master1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower

在slave1节点启动Zookeeper并查看状态,操作命令及结果如下。[root@slave1zookeeper]#cdbin[root@slave1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED[root@slave1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower

在slave2节点启动Zookeeper并查看状态,操作命令及结果如下。[root@slave2zookeeper]#cdbin[root@slave2bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED[root@slave2bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:leader(2)初始化HA在Zookeeper中的状态,操作命令及部分结果如下。[root@master1bin]#./hdfs

zkfc-formatZK23/03/0614:42:42INFOha.ActiveStandbyElector:Successfullycreated/hadoop-ha/myclusterinZK.23/03/0614:42:42INFOha.ActiveStandbyElector:Sessionconnected.23/03/0614:42:42INFOzookeeper.ZooKeeper:Session:0x386b7555fb80000closed23/03/0614:42:42INFOzookeeper.ClientCnxn:EventThreadshutdown(3)在master1、slave1和slave2中启动journalnode,操作命令如下。[root@master1sbin]#./hadoop-daemon.shstartjournalnode[root@slave1sbin]#./hadoop-daemon.shstartjournalnode[root@slave2sbin]#./hadoop-daemon.shstartjournalnode在master1中初始化namenode节点,如果看到“status0”字样即代表初始化成功,操作命令及部分结果如下。[root@master1bin]#hdfs

namenode-format23/03/0614:47:20INFOutil.ExitUtil:Exitingwithstatus023/03/0614:47:20INFOnamenode.NameNode:SHUTDOWN_MSG:/************************************************************SHUTDOWN_MSG:ShuttingdownNameNodeatmaster1/10************************************************************/(4)在master1节点执行‘start-all.sh’命令,并分别查看master1、slave1和slave2节点进程,操作命令及结果如下。[root@master1hadoop]#start-all.sh[root@master1hadoop]#jps4896ResourceManager225QuorumPeerMain5330Jps3879JournalNode4072DFSZKFailoverController5016NodeManager3673DataNode3565NameNode

[root@slave1hadoop]#jps2322Jps1783DFSZKFailoverController218QuorumPeerMain1596DataNode1692JournalNode2190NodeManager

[root@slave2hadoop]#jps228QuorumPeerMain1173DataNode1269JournalNode1592NodeManager1724Jps(5)格式化主、从节点将master1节点元数据复制到slave1和slave2节点中,由于之前namenode,datanode的数据存放在hadoop/dfs目录下,journalnode的数据存放在hadoop/tmp目录下,所以直接复制dfs和tmp目录至slave1和slave2节点中,操作命令如下。[root@master1hadoop]#scp-r/usr/local/hadoop/tmp/*slave1:/usr/local/hadoop/tmp/[root@master1hadoop]#scp-r/usr/local/hadoop/dfs/*slave1:/usr/local/hadoop/dfs/[root@master1hadoop]#scp-r/usr/local/hadoop/tmp/*slave2:/usr/local/hadoop/tmp/[root@master1hadoop]#scp-r/usr/local/hadoop/dfs/*slave2:/usr/local/hadoop/dfs/(6)在slave1节点启动resoucemanager和namenode,操作命令及结果如下。[root@slave1sbin]#./yarn-daemon.shstartresourcemanager[root@slave1sbin]#./hadoop-daemon.shstartnamenode[root@slave1

温馨提示

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

评论

0/150

提交评论