yarn部署
新增节点node4
下载nfs
执行yum install nfs-utils命令下载安装NFS相关工具包。
node1做免密,与本机也做免密
在node1上生成SSH密钥对,并将公钥分发到各节点,实现免密登录。
将node1的公钥添加到本机authorized_keys中,实现本机免密登录。
创建目录并挂载
在node1上创建共享目录,并配置NFS导出规则
执行exportfs -r命令使NFS导出配置生效
在其他节点上执行挂载命令,将NFS共享目录挂载到本地
切目录,启动
切换到NFS挂载目录,准备启动相关服务
执行启动命令,启动NFS相关服务进程
查看,成功
查看NFS服务状态,确认挂载成功
hdfs高可用部署
下载zookeeper
下载并解压ZooKeeper安装包。
配置文件中加入datanode的ip
在ZooKeeper配置文件中添加各datanode节点的IP地址。
所有datanode写入id
在每个datanode节点的myid文件中写入对应的节点ID。
三个node分别为1,2,3
三个节点的myid文件内容分别为1、2、3,用于标识ZooKeeper集群中的节点编号。
设置java路径
在ZooKeeper配置文件中设置JAVA_HOME环境变量路径。
确认Java环境变量配置正确,确保ZooKeeper可以正常启动。
启动zookeeper
在第一个节点上执行启动ZooKeeper的命令。
在第二个节点上启动ZooKeeper服务。
在第三个节点上启动ZooKeeper服务。
查看ZooKeeper进程状态,确认服务已启动。
查看ZooKeeper集群各节点的运行状态,确认集群正常。
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>masters</value>
</property>
<property>
<name>dfs.ha.namenodes.masters</name>
<value>h1,h2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.masters.h1</name>
<value>192.168.36.166:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.masters.h1</name>
<value>192.168.36.166:9870</value>
</property>
<property>
<name>dfs.namenode.rpc-address.masters.h2</name>
<value>192.168.36.170:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.masters.h2</name>
<value>192.168.36.170:9870</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://192.168.36.167:8485;192.168.36.168:8485;192.168.36.169:8485/masters</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/tmp/journaldata</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.masters</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>
修改hdfs-site.xml配置文件后,确认配置内容正确。
node2,3,4确认zookeeper集群启动
在node2、node3、node4上确认ZooKeeper集群已正常启动。
三个DN上依次启动
在三个datanode节点上依次执行启动命令。
查看
查看datanode进程状态,确认启动成功。
server1上执行,确保journalnode运行正常
在server1上执行命令,确保journalnode运行正常。
Namenode数据默认存放在/tmp,需要把数据拷贝到h2(node5)
将namenode数据从/tmp目录拷贝到h2(node5)节点。
格式化zookeeper,只在h1上执行(node1)
在h1(node1)上执行格式化ZooKeeper的命令。
启动并查看各节点状态,node1,5作为高可用,node2,3,4作为数据节点
启动HDFS服务并查看各节点状态,node1和node5作为高可用节点,node2、node3、node4作为数据节点。
查看namenode进程状态,确认高可用节点正常运行。
查看datanode进程状态,确认数据节点正常运行。
浏览器访问,此时node1为active,node5为standby
浏览器访问HDFS Web界面,此时node1为active状态,node5为standby状态。
查看HDFS集群的datanode列表,确认所有数据节点已正常注册。
故障切换测试,停止node1上namenode
执行命令停止node1上的namenode进程,进行故障切换测试。
此时node5变为active,node1拒绝访问
故障切换后,node5自动变为active状态,node1拒绝访问。
再次手动启动node1的namenode,此时node1变为standby
手动重新启动node1的namenode后,node1自动变为standby状态,高可用机制正常工作。
yarn高可用配置
node1,5配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>RM_CLUSTER</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>server1</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>server5</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>192.168.36.167:2181,192.168.36.168:2181,192.168.36.169:2181</value>
</property>
</configuration>
修改yarn-site.xml配置文件,配置YARN高可用相关参数。
修改mapred-site.xml
修改mapred-site.xml配置文件,设置MapReduce相关参数。
启动YARN服务并查看进程状态,确认服务正常启动
浏览器访问8088端口查看YARN Web界面,此时node1为active状态。
node5为standby
查看YARN Web界面,确认node5为standby状态,YARN高可用配置成功。