文章目录
虚拟机
安装VMwareWorkStation
按照提示安装,输入秘钥即可
新建虚拟机
1、点击文件-新建虚拟机或直接点击创建新的虚拟机,进入新建虚拟机向导
2、选择典型-稍后安装操作系统
3、客户机操作系统:Linux,版本CentOS 7 64位
4、选择安装位置
5、最大磁盘大小,将虚拟磁盘拆分成多个文件选择默认
6、自定义硬件
(1)内存—推荐4GB
(2)新CD/DVD(IDE)–使用ISO映像文件
高级—虚拟设备节点:SATA(A)
(3)网络适配器设置两个
修改网络适配器–仅主机模式
高级–生成mac地址
添加网络适配器–NAT模式
高级–生成mac地址
7、点击完成,开启此虚拟机,等待运行
8、选择语言,continue
9、设置DATE&TIME:上海
设置NETWORK&HOST NAME:Ethernet33、Ethernet34状态设为on–done
设置INSTALLATION DESTINATION(分区分盘):默认–done
10、设置root初始密码,等待安装完成。
登录虚拟机
1、log in:root password为初始密码
2、配置网络 vi /etc/sysconfig/network-scripts/ifcfg-ens33
查看WindowsIp
3、systemctl restart network 重启网络
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁用防火墙
安装jdk
1、将安装包上传到/root/software下
2、解压到当前文件夹 tar -zxvf jdk-8u221-linux-x64.tar.gz
jdk1.8.0_221是jdk的安装目录
3、配置环境变量
vi /etc/profile
export JAVA_HOME=/root/software/jdk1.8.0_221
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
source /etc/profile
4、验证安装完成
安装mysql
1、上传安装包
MySQL-server-5.6.46-1.el7.x86_64.rpm
MySQL-client-5.6.46-1.el7.x86_64.rpm
2、逐次安装
yum -y install perl
rpm -ivh MySQL-client-5.6.46-1.el7.x86_64.rpm
yum install autoconf -y
rpm -e mariadb-libs-1:5.5.60-1.el7_5.x86_64 --nodeps
rpm -ivh MySQL-server-5.6.46-1.el7.x86_64.rpm
2、获取mysql初始密码 /root/.mysql_secret
3、启动mysql service mysql start
4、设置mysql密码
mysql -uroot -p(密码)
set password=password("**");
5、配置文件
/usr/my.cnf
hadoop伪分布式安装
1、上传包
hadoop-native-64-2.6.0.tar
hadoop-2.6.0-cdh5.14.2.tar.gz
2、解压hadoop-2.6.0-cdh5.14.2.tar.gz、修改文件名称为hadoop、删除压缩包
tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz
mv hadoop-2.6.0-cdh5.14.2 hadoop
rm -f hadoop-2.6.0-cdh5.14.2.tar.gz
3、cd hadoop查看一下hadoop的目录结构
bin sbin 执行文件
etc 配置文件
examples 示例
include 拓展
lib 依赖包
share 共享
src 源码
4、cd etc/hadoop里面是各种配置文件
1) vi hadoop-env.sh(hadoop和java相关联)
JAVA_HOME的安装目录
如何快速查找JAVA_HOME的安装目录
如果配置了环境变量 echo $JAVA_HOME
如果用rpm安装,没有配置环境变量
which java
2)core-site.xml
1、fs.defaultFS参数配置的是HDFS的地址
可以是主机名、ip地址:9000
2、hadoop.tmp.dir配置的是Hadoop临时目录
3、hosts、groups配置集群时需要配置,表示任意用户、任意组可以使用
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/software/hadoop/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
3)hdfs-site.xml
dfs.replication配置的是HDFS存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4)检查免密登录
1、修改主机的名称
hostnamectl set-hostname hadoop101(主机名)
2、添加地址和主机名
vi /etc/hosts
3、生成秘钥(私钥和公钥) ssh-keygen -t rsa -P “”
ssh-keygen生成,管理和转换认证密钥
-t 创建秘钥的类型
rsa 秘钥类型
-P 提供(旧)密码短语
4、自己保存秘钥 cat .ssh/id_rsa.pub > .ssh/authorized_keys
5)在yarn上执行 mapreduce
mapred-site.xml.template改为mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6) 配置yarn
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop100</value>
</property>
7)配置hadoop环境变量
/etc/profile
第一行 HADOOP_HOME=hadoop的安装目录
最后一行 如果用rpm安装的java
那么直接复制最后一行
如果配置了java环境变量
将$HADOOP_HOME/bin:$HADOOP_HOME/sbin添加到PATH中,位于$PATH前
export JAVA_HOME=/root/software/jdk1.8.0_221
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export HADOOP_HOME=/root/software/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH
用rpm安装的环境变量
前一个path初始化
source /etc/profile
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export HADOOP_HOME=/root/software/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
8)修改slaves文件 因为此时datanode是自己
将localhost 改为 主机名 hadoop20
9)hdfs namenode –format
格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中
10)cd /root/software/hadoop 执行 start-all.sh
11)jps命令查看是否已经启动成功
问题:
– process information unavailable
删除 rm -rf hsperfdata_*
重启
配置hadoop集群
新建虚拟机设置静态IP关闭防火墙
新建虚拟机,关机,导出为ovf文件
文件-打开-ovf文件-设置虚拟机名称和存储路径-导入
分别修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
最下面加一条IPADDR=192.168.232.XX(2-255)
重启网络
systemctl restart network
关闭防火墙:
systemctl stop firewalld
systmectl disable firewalld
建立互信
连接mobaxterm
修改主机名
hostnamectl set-hostname hadoop20
hostnamectl set-hostname hadoop21
hostnamectl set-hostname hadoop22
添加各个主机的地址和主机名 vi /etc/hosts
3、生成秘钥(私钥和公钥) ssh-keygen -t rsa -P “”
ssh-keygen生成,管理和转换认证密钥
-t 创建秘钥的类型
rsa 秘钥类型
-P 提供(旧)密码短语
4、自己保存秘钥 cat .ssh/id_rsa.pub > .ssh/authorized_keys
5、把秘钥传输给其他机器 ssh-copy-id -i .ssh/id_rsa.pub -p22 root@hadoop101(root用户@其他主机名)
ssh-copy-id -i id_rsa.pub -p22 root@hadoop21
将Hadoop21中的authorized_keys文件分发给hadoop20、Hadoop2
scp authorized_keys root@hadoop22:/root/.ssh/authorized_keys
scp authorized_keys root@hadoop20:/root/.ssh/authorized_keys
6、测试连接
ssh hadoop22
配置集群
准备三台虚拟机
集群部署规划
hadoop20:HDFS NameNode DataNode
YARN NodeManager ResourceManager
hadoop21:HDFS DataNode SecondaryNameNode
YARN NodeManager
hadoop22:HDFS DataNode
YARN NodeManager
1、配置jdk
在hadoop20上先配置jdk,然后分发给其他
解压:tar -zxf jdk-8u221-linux-x64.tar.gz
配置环境变量:
vi /etc/profile
export JAVA_HOME=/root/software/jdk1.8.0_221
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
source /etc/profile
将配置好的文件传给Hadoop21、hadoop22
scp -r jdk1.8.0_221/ root@hadoop21:/root/software/
scp -r jdk1.8.0_221/ root@hadoop22:/root/software/
scp -r /etc/profile root@hadoop21:/etc/profile
scp -r /etc/profile root@hadoop22:/etc/profile
别忘记source /etc/profile
2、配置hadoop
在hadoop20上先配置jdk,然后分发给其他机器
tar -zxf hadoop-2.6.0-cdh5.14.2.tar.gz
mv hadoop-2.6.0-cdh5.14.2 hadoop
cd hadoop/etc/hadoop
1)vi hadoop-env.sh hadoop和java相关联
java安装路径 /root/software/jdk1.8.0_221
2)core-site.xml
1、fs.defaultFS参数配置的是HDFS的地址
可以是主机名、ip地址:9000
2、hadoop.tmp.dir配置的是Hadoop临时目录
3、hosts、groups配置集群时需要配置,表示任意用户、任意组可以使用
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop20:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/software/hadoop/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
3)hdfs-site.xml中dfs.replication的数量为3
指定dfs.namenode.secondary.http-address地址为hadoop21:50090
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop21:50090</value>
</property>
</configuration>
4)在yarn上执行 mapreduce
mapred-site.xml.template改为mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5) 配置yarn
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop20</value>
</property>
6)slaves中分别加入hadoop20 hadoop21 hadoop22
hadoop20
hadoop21
hadoop22
7)配置环境变量
export JAVA_HOME=/root/software/jdk1.8.0_221
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export HADOOP_HOME=/root/software/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH
将hadoop文件夹和profile文件分发给其他机器
scp -r hadoop root@hadoop21:/root/software
scp -r hadoop root@hadoop22:/root/software
scp -r /etc/profile root@hadoop21:/etc/profile
scp -r /etc/profile root@hadoop22:/etc/profile
8将安装目录hadoop下的logs tmp 文件删除
9namenode格式化(只在hadoop20上格式化)
hadoop namenode -format
10namenode上在安装目录下执行start-all.sh(只在hadoop20上启动)
11查看jps
同步时间
一:NTP(network time protocol)是网络时间同步协议,就是用来同步网络中各个计算机的时间的协议。
二:NTP服务端配置
1.检查系统是否安装了NTP包(linux系统一般自带NTP4.2),没有安装我们直接使用yum命令在线安装: yum install ntp -y
2.NTP服务端配置文件编辑: vim /etc/ntp.conf
1)修改所有节点
restrict 本机IP mask 255.255.255.0 nomodify notrap
格式:restrict [ 客户端IP ] mask [ IP掩码 ] [参数]
允许client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时
2)选择一个主节点
在server部分添加一下部分,并注释掉server 0 ~ n
server 127.127.1.0 以本机时间作为时间服务
Fudge 127.127.1.0 stratum 10
3)主节点以外
在server部分添加如下语句,将server指向主节点。
server 主节点IP 指名上层NTP服务器
Fudge 主节点IP stratum 10
如图
主节点配置
restrict 192.168.232.211 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
Fudge 127.127.1.0 stratum 10
其他节点
server 192.168.232.20 profer
执行命令
service ntpd start
ntpstat #查看是否同步,这个过程可能要等一段时间
date #查看所有机器时间是否相同
zookeeper
开源的分布式的协调服务,是Google的Chubby一个开源的实现,它是一个为分布式应用提供一致性服务的软件
ZooKeeper集群搭建
1、解压 zookeeper-3.4.6.tar.gz并重命名为zkpr
tar -zxf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zkpr
2、将zoo_sample.cfg改为zoo.cfg,修改配置
mv zoo_sample.cfg zoo.cfg
Zookeeper的配置文件存放在主目录下的conf目录中,文件名为zoo.cfg
vi zoo.cfg
1)tickTime:默认值为3000,单位是毫秒,不支持以系统属性方式配置。tickTime用于配置Zookeeper中最小时间单元的长度,很多运行时的时间间隔都是使用tickTime的倍数来表示的。
2) initLimit:默认值为10,表示是tickTime的10倍,必须配置,并且是正整数,不支持以系统属性方式配置,用于配置Leader服务器等待Follower启动,并完成数据同步的时间。
3) syncLimit:默认值为5,表示是tickTime的5倍,必须配置,并且是正整数,不支持以系统属性方式配置,用于配置Leader服务器和Follower之间进行心跳检测的最大延时时间,在Zookeeper运行期间,Leader服务器会与所有的Follower进行心跳检测来确定该服务器是否存活。如果在syncLimit时间内无法获取到Follower的心跳检测响应,就认为Follower已经脱离了和自己的同步。在网络环境较差时,可以适当调大这个参数。
4)dataDir:无默认值,不支持以系统属性方式配置,用于配置Zookeeper服务器存储快照文件的目录。默认情况下,如果没有配置dataLogDir,那么事务日志也会存储到该目录中。
dataDir=/root/software/zkpr/zkData
5)clientPort:无默认值,不支持以系统属性方式配置,用于配置服务器对外的服务端口。客户端通过此端口和Zookeeper服务器创建连接,通常设置为2181。每台服务器可以使用不同的端口,并且集群中的所有服务器也不需要保持此端口一致。
6)添加一下内容
server.0=hadoop20:2287:3387
server.1=hadoop21:2287:3387
server.2=hadoop22:2287:3387
3、将zkpr目录分发给其他机器
scp -r zkpr root@hadoop21:/root/software/
scp -r zkpr root@hadoop22:/root/software/
4、在zookeeper的各个机器中分别创建myid文件(/root/software/zkpr/zkData ),内容分别为0 1 2
5、启动zookeeper服务
zkpr/bin/zkServer.sh start
角色是随机的
高可用集群
hdfsHA
配置高可用前,先将配置好的hadoop集群关闭
1、core-site.xml
<configuration>
<!--配置HadoopHA集群名-指定hdfs的nameservice-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoopHA</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/software/hadoop/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop20:2181,hadoop21:2181,hadoop22:2181</value>
</property>
</configuration>
2、hdfs-site.xml
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>hadoopHA</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.hadoopHA</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.hadoopHA.nn1</name>
<value>hadoop20:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.hadoopHA.nn1</name>
<value>hadoop20:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.hadoopHA.nn2</name>
<value>hadoop22:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.hadoopHA.nn2</name>
<value>hadoop22:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop20:8485;hadoop21:8485;hadoop22:8485/hadoopHA</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/root/software/hadoop/data/jn</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.hadoopHA</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>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
3、分发给其他节点
scp core-site.xml root@hadoop21:/root/software/hadoop/etc/hadoop/core-site.xml
scp core-site.xml root@hadoop22:/root/software/hadoop/etc/hadoop/core-site.xml
scp hdfs-site.xml root@hadoop22:/root/software/hadoop/etc/hadoop/hdfs-site.xml
scp hdfs-site.xml root@hadoop21:/root/software/hadoop/etc/hadoop/hdfs-site.xml
4、启动hdfs-HA集群
1)在各个 JournalNode 节点上,输入以下命令启动 journalnode 服务:
hadoop20、hadoop22
$HADOOP_HOME/sbin/hadoop-daemon.sh start journalnode
2)将各个节点上的logs和tmp删掉
3)在[nn1]上,对其进行格式化
$HADOOP_HOME/bin/hdfs namenode -format 此时hadoop20是nn1
4)将生成的tmp文件发送给nn2,就是hadoop22
scp -r tmp root@hadoop22:/root/software/hadoop/
5)启动nn1 nn2 namenode
$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode
6)查看 web 页面显示
此时都是standby状态
5、hdfs自动故障转移
1)关闭所有 HDFS 服务: $HADOOP_HOME/sbin/stop-dfs.sh
2)启动 Zookeeper 集群: 每台服务器启动
zkpr/bin/zkServer.sh start
3)初始化 HA 在 Zookeeper 中状态:主节点
$HADOOP_HOME/bin/hdfs zkfc -formatZK
4)启动 HDFS 服务:主节点
$HADOOP_HOME/sbin/start-dfs.sh
5)在各个 NameNode 节点上启动 DFSZK Failover Controller,先在哪台机器 启动,哪个机器的 NameNode 就是 Active NameNode $HADOOP_HOME/sbin/hadoop-daemon.sh start zkfc
6)验证 (1)将 Active NameNode 进程 kill kill -9 namenode 的进程 id (2)将 Active NameNode 机器断开网络 service network stop
(3)查看standby是否转换成active
kill之后
yarnHA
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--启用 resourcemanager ha-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--声明两台 resourcemanager 的地址-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster-yarn1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop20</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop22</value>
</property>
<!--指定 zookeeper 集群的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop20:2181,hadoop21:2181,hadoop22:2181</value>
</property>
<!--启用自动恢复-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--指定 resourcemanager 的状态信息存储在 zookeeper 集群-->
<property> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
1、分发给其他节点
scp yarn-site.xml root@hadoop21:/root/software/hadoop/etc/hadoop/yarn-site.xml
scp yarn-site.xml root@hadoop22:/root/software/hadoop/etc/hadoop/yarn-site.xml
2、启动yarn
主节点执行:
$HADOOP_HOME/sbin/start-yarn.sh
此时只有主节点的resourcemanager是启动的
另一个节点
$HADOOP_HOME/sbin/yarn-daemon.sh start resourcemanager
此时另外一个手动启动了
查看服务状态
$HADOOP_HOME/bin/yarn rmadmin -getServiceState rm1
网页无法显示:
C:\Windows\System32\drivers\etc 添加hosts
start-all.sh之后启动,需要手动启动第二个resourcemanager