设为首页 收藏本站
查看: 2810|回复: 0

[经验分享] hadoop集群安装规划

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-12-16 23:36:03 | 显示全部楼层 |阅读模式
  http://mp.weixin.qq.com/s?__biz=MzI5MDYxNjIzOQ==&mid=2247483999&idx=1&sn=016e4c4d0ba7bd96e9f2d2d5f8cbe0de&chksm=ec1c649fdb6bed89e74984c28859557f577cdfedcdcee3f67ad50a5097daaff0e67718c50121&mpshare=1&scene=23&srcid=06136e9eXqqwI9Vfl2bIWLiv#rd
  在搭建Hadoop分布式集群之前,我们需要先准备好3台主机,分别安装好Linux系统,并完成Linux系统的网络配置和系统配置。
  
  相关资料:史上最全的Linux资料包,视频、电子书、PPT应有尽有。领取办法:关注“大数据研习社”后,微信后台回复“Linux”,即可获得私密下载链接。
  
  1.集群安装规划
  1.1主机规划
  这里我们选择3台主机搭建Hadoop3.0高可用的分布式集群,虽然节点有点少,但是足以完成分布式集群搭建,并进行合理的主机规划。
  master
  slave1
  slave2
  Namenode
  是
  是
  是
  DataNode
  是
  是
  是
  ResourceManager
  是
  是
  否
  NodeManager
  是
  是
  是
  Journalnode
  是
  是
  是
  Zookeeper
  是
  是
  是
大家需要注意的是:从Hadoop3.0开始支持更多的Namenode,因为我们只有3台机器,所以这3台机器都配置为Namenode,实际工作中Namenode也不宜过多,否则对集群造成压力。其他角色保持跟Hadoop2.x一致即可,如果Hadoop2.x集群不熟悉可以参考大讲台课程:http://www.dajiangtai.com/course/4.do
1.2软件规划
  软件
  版本
  位数
  说明
  Jdk
  Jdk1.8
  64位
  稳定版本
  Centos
  Centos6.5
  64位
  稳定版本
  Zookeeper
  Zookeeper3.4.6
  稳定版本
  Hadoop
  Hadoop   3.0.0-alpha3
  最新版本
需要注意的是:Hadoop3.0最低支持Java8,如果大家还在使用Java7或者更低版本,请升级到Java8。
1.3用户规划
出于权限考虑,Hadoop集群环境安装不要使用root用户,需要大家自己创建相关的用户和用户组,注意创建用户的时候需要设置密码。
  节点名称
  用户组
  用户
  Master
  Hadoop
  Hadoop3
  Slave1
  Hadoop
  Hadoop3
  Slave2
  Hadoop
  Hadoop3
1.4数据目录规划
在搭建Hadoop集群之前,需要规划好所有的软件目录和数据存放目录,便于后期的管理与维护。
  目录名称
  绝对路径
  所有软件存放目录
  /home/hadoop3/app
  所有数据与日志存放目录
  /home/hadoop3/data

2. 集群安装前的环境检查
2.1时钟同步
  所有节点的系统时间要与当前时间保持一致,否则集群运行会出现异常。时钟同步在3台机器上都需要操作,这里以master节点为例。
  首先查看master节点的当前系统时间
DSC0000.jpg

  如果系统时间与当前网络时间不一致,进行以下操作。
[iyunv@master ~]# cd /usr/share/zoneinfo/

[iyunv@master zoneinfo]# ls          //找到Asia

[iyunv@master zoneinfo]# cd Asia/            //进入Asia目录

[iyunv@master Asia]# ls            //找到Shanghai

[iyunv@master Asia]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime             //当前时区替换为上海

  我们可以保持当前系统时间与NTP(网络时间协议)一致。
[iyunv@master Asia]# yum install ntp   //如果ntp命令不存在,在线安装ntp

[iyunv@master Asia]# ntpdate pool.ntp.org          //执行此命令同步日期时间

[iyunv@master Asia]# date              //查看当前系统时间

2.2 hosts文件检查
  为了便于集群的操作,所有节点的hosts文件需要配置静态ip与hostname之间的对应关系。
DSC0001.jpg

2.3禁用防火墙
  学习环境下,大家可以将防火墙关闭掉。
  在root用户下,查看防火墙状态
[iyunv@master ~]# service iptables status

  执行以下命令可以临时关闭防火墙
[iyunv@master ~]#  service iptables stop

  执行以下命令才可以永久关闭防火墙
[iyunv@master ~]#  chkconfig iptables off   

  如果防火墙状态如下,则说明防火墙已经关闭。
DSC0002.jpg


3. 配置SSH免密码通信
  Hadoop 集群中各个节点间会通过 SSH 访问,每次访问都输入密码是不切实际的,所以需要配置各个节点间的 SSH 是无密码登录的。
  首先在各个节点上生成公钥,这里以master节点、Hadoop3用户为例
[iyunv@master ~]# su hadoop3            //切换到hadoop3用户下

[hadoop3@master root]$ cd        //切换到hadoop3用户目录

[hadoop3@master ~]$ mkdir .ssh

[hadoop3@master ~]$ ssh-keygen -t rsa        //执行命令一路回车,生成秘钥

[hadoop3@master ~]$cd .ssh

[hadoop3@master .ssh]$ ls


  id_rsa >
[hadoop3@master .ssh]$ cat>
[hadoop3@master .ssh]$ ls


  authorized_keys >
[hadoop3@master .ssh]$ cd ..

[hadoop3@master ~]$ chmod 700 .ssh

[hadoop3@master ~]$ chmod 600 .ssh/*

[hadoop3@master ~]$ ssh master            //第一次执行需要输入yes

[hadoop3@master ~]$ ssh master            //第二次以后就可以直接访问

  将另外2个节点中的共钥id_ras.pub拷贝到master节点中的authorized_keys文件中。
  cat ~/.ssh/id_rsa.pub | ssh hadoop3@master 'cat >> ~/.ssh/authorized_keys'
  然后将master中的authorized_keys文件分发到其他2个节点上。
  scp -r authorized_keys hadoop3@slave1:~/.ssh/
  scp -r authorized_keys hadoop3@slave2:~/.ssh/
  各个节点如果能通过ssh相互访问,且不需要输入密码,则代表ssh配置成功。

4. 脚本工具的使用
  在master节点,hadoop3用户下创建/home/hadoop3/tools目录。
[hadoop3@master ~]$ mkdir /home/hadoop3/tools

  cd /home/hadoop3/tools
  将本地脚本文件上传至/home/hadoop3/tools目录下,这些脚本大家可以自己写, 如果不熟练也可以直接使用。
[hadoop3@master tools]$ rz deploy.conf

[hadoop3@master tools]$ rz deploy.sh

[hadoop3@master tools]$ rz runRemoteCmd.sh

[hadoop3@master tools]$ ls

  deploy.conf  deploy.sh  runRemoteCmd.sh
  查看一下deploy.conf配置文件内容。
[hadoop3@master tools]$ cat deploy.conf

  master,all,namenode,zookeeper,resourcemanager,
  slave1,all,slave,namenode,zookeeper,resourcemanager,
  slave2,all,slave,datanode,zookeeper,
  查看一下deploy.sh远程复制文件脚本内容。
[hadoop3@master tools]$ cat deploy.sh

  #!/bin/bash
  #set -x
  if [ $# -lt 3 ]
  then
  echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag"
  echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag confFile"
  exit
  fi
  src=$1
  dest=$2
  tag=$3
  if [ 'a'$4'a' == 'aa' ]
  then
  confFile=/home/hadoop3/tools/deploy.conf
  else
  confFile=$4
  fi
  if [ -f $confFile ]
  then
  if [ -f $src ]
  then
  for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'`
  do
  scp $src $server":"${dest}
  done
  elif [ -d $src ]
  then
  for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'`
  do
  scp -r $src $server":"${dest}
  done
  else
  echo "Error: No source file exist"
  fi
  else
  echo "Error: Please assign config file or run deploy.sh command with deploy.conf in same directory"
  fi
  查看一下runRemoteCmd.sh远程执行命令脚本内容。
[hadoop3@master tools]$ cat runRemoteCmd.sh

  #!/bin/bash
  #set -x
  if [ $# -lt 2 ]
  then
  echo "Usage: ./runRemoteCmd.sh Command MachineTag"
  echo "Usage: ./runRemoteCmd.sh Command MachineTag confFile"
  exit
  fi
  cmd=$1
  tag=$2
  if [ 'a'$3'a' == 'aa' ]
  then
  confFile=/home/hadoop3/tools/deploy.conf
  else
  confFile=$3
  fi
  if [ -f $confFile ]
  then
  for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'`
  do
  echo "*******************$server***************************"
  ssh $server "source /etc/profile; $cmd"
  done
  else
  echo "Error: Please assign config file or run deploy.sh command with deploy.conf in same directory"
  fi
  以上三个文件,方便我们搭建hadoop3分布式集群。具体如何使用看后面如何操作。
  如果我们想直接使用脚本,还需要给脚本添加执行权限。
[hadoop3@master tools]$ chmod u+x deploy.sh

[hadoop3@master tools]$ chmod u+x runRemoteCmd.sh

  同时我们需要将/home/hadoop3/tools目录配置到PATH路径中。
[hadoop3@master tools]$vi ~/.bashrc

  PATH=/home/hadoop3/tools:$PATH
  export PATH
  我们在master节点上,通过runRemoteCmd.sh脚本,一键创建所有节点的软件安装目录/home/hadoop3/app。
[hadoop3@master tools]$ runRemoteCmd.sh "mkdir /home/hadoop3/app" all

  我们可以在所有节点查看到/home/hadoop3/app目录已经创建成功。

5. jdk安装
  下载jdk1.8至本地,然后将jdk1.8上传至/home/hadoop3/app目录下。
[hadoop3@master app]$  ls

  jdk-8u51-linux-x64.tar.gz
  解压
[hadoop3@master app]$ tar –zxvf  jdk-8u51-linux-x64.tar.gz

  删除安装包
[hadoop3@master app]$ rm –rf jdk-8u51-linux-x64.tar.gz

[hadoop3@master app]$  ls

  jdk1.8.0_51
  创建jdk软链接
[hadoop3@master app]$ ln –s jdk1.8.0_51  jdk

  在hadoop3用户下,配置jdk环境变量
[hadoop3@master app]$ vi  ~/.bashrc

  JAVA_HOME=/home/hadoop3/app/jdk
  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  PATH=$JAVA_HOME/bin:/home/hadoop3/tools:$PATH

  export JAVA_HOME>  生效配置文件
[hadoop3@master app]$ source  ~/.bashrc

  确认jdk配置成功
[hadoop3@master app]$ java -version

  java version "1.8.0_51"
  Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
  Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
  通过deploy.sh脚本将jdk安装目录分发到另外两个节点
[hadoop3@master app]$ deploy.sh jdk1.8.0_51 /home/hadoop3/app/ slave

  在另外两个节点做相关操作,完成jdk配置

6. Zookeeper安装
  下载zookeeper-3.4.6.tar.gz安装包,然后上传至/home/hadoop3/app目录
6.1解压
[hadoop3@master app]$ ls

  zookeeper-3.4.6.tar.gz
[hadoop3@master app]$ tar –zxvf zookeeper-3.4.6.tar.gz

[hadoop3@master app]$ ls

  zookeeper-3.4.6
[hadoop3@master app]$ rm –rf zookeeper-3.4.6.tar.gz

6.2修改配置文件
[hadoop3@master app]$ cd zookeeper-3.4.6/conf/

[hadoop3@master conf]$ ls

  configuration.xsl  log4j.properties  zoo_sample.cfg
[hadoop3@master conf]$ cp  zoo_sample.cfg  zoo.cfg

[hadoop3@master conf]$vi zoo.cfg

  # The number of milliseconds of each tick
  tickTime=2000
  # The number of ticks that the initial
  # synchronization phase can take
  initLimit=10
  # The number of ticks that can pass between
  # sending a request and getting an acknowledgement
  syncLimit=5
  # the directory where the snapshot is stored.
  # do not use /tmp for storage, /tmp here is just
  # example sakes.
  dataDir=/home/hadoop3/data/zookeeper/zkdata
  dataLogDir=/home/hadoop3/data/zookeeper/zkdatalog
  # the port at which the clients will connect
  clientPort=2181
  # the maximum number of client connections.
  # increase this if you need to handle more clients
  #maxClientCnxns=60
  #
  # Be sure to read the maintenance section of the
  # administrator guide before turning on autopurge.
  #
  # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  #
  # The number of snapshots to retain in dataDir
  #autopurge.snapRetainCount=3
  # Purge task interval in hours
  # Set to "0" to disable auto purge feature
  #autopurge.purgeInterval=1
  server.1=master:2888:3888
  server.2=slave1:2888:3888
  server.3=slave2:2888:3888
  备注:
  1 2 3代表服务编号;2888代表Zookeeper节点通信端口;3888代表zook选举端口
6.3远程拷贝
  通过远程脚本deploy.sh将Zookeeper安装目录拷贝到其他节点。
[hadoop3@master app]$ deploy.sh zookeeper-3.4.6 /home/hadoop3/app/ slave

  所有节点创建数据目录和日志目录
[hadoop3@master app]$ runRemoteCmd.sh "mkdir -p /home/hadoop3/data/zookeeper/zkdata" all

[hadoop3@master app]$ runRemoteCmd.sh "mkdir -p /home/hadoop3/data/zookeeper/zkdatalog" all

6.4创建myid文件
  在各个节点上,在 dataDir 所指定的目录下创一个名为 myid 的文件, 文件内容为各个server 点后面的数字。
[hadoop3@master zkdata]$ vi myid

DSC0003.jpg

[hadoop3@slave1 zkdata]$ vi myid

DSC0004.jpg

[hadoop3@slave2 zkdata]$ vi myid

DSC0005.jpg

6.5测试运行
  使用runRemoteCmd.sh 脚本,启动所有节点上面的Zookeeper。
[hadoop3@master zookeeper-3.4.6]$runRemoteCmd.sh "/home/hadoop3/app/zookeeper-3.4.6/bin/zkServer.sh start" zookeeper

DSC0006.jpg

  查看所有节点上面的QuorumPeerMain进程是否启动。
[hadoop3@master zookeeper-3.4.6]$ runRemoteCmd.sh "jps" all

DSC0007.jpg

  查看所有Zookeeper节点状态。
[hadoop3@master zookeeper-3.4.6]$ runRemoteCmd.sh "/home/hadoop3/app/zookeeper-3.4.6/bin/zkServer.sh status" all

DSC0008.jpg

  如果一个节点为leader,另两个节点为follower,则说明Zookeeper安装成功。

7.Hadoop3.0分布式集群搭建
7.1配置HDFS
7.1.1下载解压Hadoop3.0
  到Hadoop官网下载hadoop-3.0.0-alpha2.tar.gz,并上传至/home/hadoop3/app目录
[hadoop3@master app]$ ls

  hadoop-3.0.0-alpha2.tar.gz
[hadoop3@master app]$tar –zxvf hadoop-3.0.0-alpha2.tar.gz

[hadoop3@master app]$ ls

  hadoop-3.0.0-alpha2.tar.gz  hadoop-3.0.0-alpha3
[hadoop3@master app]$ rm –rf hadoop-3.0.0-alpha2.tar.gz

[hadoop3@master app]$ mv hadoop-3.0.0-alpha3 hadoop-3.0.0

7.1.2配置hadoop-env.sh
[hadoop3@master app]$ cd hadoop-3.0.0/etc/hadoop/

[hadoop3@master hadoop]$ vi hadoop-env.sh

  export JAVA_HOME=/home/hadoop3/app/jdk
  export HADOOP_HOME=/home/hadoop3/app/hadoop
7.1.3配置core-site.xml
[hadoop3@master hadoop]$ vi core-site.xml

  <configuration>
  <property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
  </property>
  <property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop3/data/tmp</value>
  </property>
  <property>
  <name>ha.zookeeper.quorum</name>
  <value>master:2181,slave1:2181,slave2:2181</value>
  </property>
  </configuration>
7.1.4配置hdfs-site.xml
[hadoop3@master hadoop]$ vi  hdfs-site.xml

  <configuration>
  <property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
  </property>
  <property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
  </property>
  <property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2,nn3</value>
  </property>
  <property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>master:9820</value>
  </property>
  <property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>slave1:9820</value>
  </property>
  <property>
  <name>dfs.namenode.rpc-address.mycluster.nn3</name>
  <value>slave2:9820</value>
  </property>
  <property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>master:9870</value>
  </property>
  <property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>slave1:9870</value>
  </property>
  <property>
  <name>dfs.namenode.http-address.mycluster.nn3</name>
  <value>slave2:9870</value>
  </property>
  <property>
  <name>dfs.ha.automatic-failover.enabled</name>
  <value>true</value>
  </property>
  <property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://master:8485;slave1:8485;slave2:8485/mycluster</value>
  </property>
  <property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/home/hadoop3/data/journaldata/jn</value>
  </property>
  <property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
  <property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
  </property>
  <property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/hadoop3/.ssh/id_rsa</value>
  </property>
  <property>
  <name>dfs.ha.fencing.ssh.connect-timeout</name>
  <value>10000</value>
  </property>
  <property>
  <name>dfs.namenode.handler.count</name>
  <value>100</value>
  </property>
  <property>
  <name>dfs.ha.automatic-failover.enabled</name>
  <value>true</value>
  </property>
  </configuration>
7.1.5配置workers
[hadoop3@master hadoop]$ vi workers

  master
  slave1
  slave2
  注意:hadoop2.x配置的是slaves文件,这里有所改变。
7.1.6将hadoop3.0安装包分发到其他节点
[hadoop3@master app]$ deploy.sh hadoop-3.0.0 /home/hadoop3/app/ slave

7.1.7创建hadoop3.0软连接
  在所有节点上创建hadoop3.0软连接,这里以master节点为例。
[hadoop3@master app]$ ln -s hadoop-3.0.0 hadoop

[hadoop3@master app]$ ls

  hadoop  hadoop-3.0.0
7.1.8配置hadoop3.0环境变量
  在所有节点上配置hadoop3.0环境变量,这里以master节点为例
[hadoop3@master app]$ vi ~/.bashrc

  JAVA_HOME=/home/hadoop3/app/jdk
  HADOOP_HOME=/home/hadoop3/app/hadoop
  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  PATH=$JAVA_HOME/bin:HADOOP_HOME/bin:$PATH

  export JAVA_HOME>7.1.9格式化hdfs
  第一次安装hdfs的时候,需要对hdfs进行相关的格式化操作,以后就不需要了。
  7.1.9.1先启动Zookeeper
[hadoop3@master app]$runRemoteCmd.sh "/home/hadoop3/app/zookeeper-3.4.6/bin/zkServer.sh start" all

  7.1.9.2接着启动journalnode
[hadoop3@master app]$ runRemoteCmd.sh "/home/hadoop3/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all

  7.1.9.3在master节点上执行格式化
[hadoop3@master hadoop]$ bin/hdfs namenode -format / /namenode 格式化

[hadoop3@master hadoop]$ bin/hdfs zkfc -formatZK //格式化高可用

[hadoop3@master hadoop]$bin/hdfs namenode //启动namenode

  7.1.9.4备用节点slave1 slave2通过master节点元数据信息,分别在slave1、slave2节点上执行。
[hadoop3@slave1 hadoop]$ bin/hdfs namenode -bootstrapStandby

[hadoop3@slave2 hadoop]$ bin/hdfs namenode -bootstrapStandby

  7.1.9.5slave1 slave2节点同步完master上的元数据之后,在master节点上按下ctrl+c来结束namenode进程。
  7.1.9.6 关闭所有节点journalnode
[hadoop3@master app]$ runRemoteCmd.sh "/home/hadoop3/app/hadoop/sbin/hadoop-daemon.sh stop journalnode" all

7.1.10 启动HDFS
  一键启动hdfs
[hadoop3@master hadoop]$ sbin/start-dfs.sh

DSC0009.jpg

7.1.11 测试运行HDFS
  7.1.11.1查看HDFS Web界面,这里配置的master slave1 slave2节点都为namenode。
DSC00010.jpg

DSC00011.jpg

DSC00012.jpg

  关闭active状态的namenode,检查是否会自动切换其他节点
  7.1.11.2测试hdfs文件上传
[hadoop3@master hadoop]$ vi djt.txt   

  hadoop
  hadoop
  hadoop
  dajiangtai
  dajiangtai
  dajiangtai
[hadoop3@master hadoop]$ bin/hdfs dfs -mkdir /dajiangtai  

[hadoop3@master hadoop]$ bin/hdfs dfs -put djt.txt /dajiangtai  

[hadoop3@master hadoop]$ bin/hdfs dfs -cat /dajiangtai/djt.txt

DSC00013.jpg

7.2配置YARN
7.2.1配置mapred-site.xml
[hadoop3@master hadoop]$ vi  mapred-site.xml

  <configuration>
  <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
  </property>
  <property>
  <name>mapreduce.application.classpath</name>
  <value>
  /home/hadoop3/app/hadoop/etc/hadoop,
  /home/hadoop3/app/hadoop/share/hadoop/common/*,
  /home/hadoop3/app/hadoop/share/hadoop/common/lib/*,
  /home/hadoop3/app/hadoop/share/hadoop/hdfs/*,
  /home/hadoop3/app/hadoop/share/hadoop/hdfs/lib/*,
  /home/hadoop3/app/hadoop/share/hadoop/mapreduce/*,
  /home/hadoop3/app/hadoop/share/hadoop/mapreduce/lib/*,
  /home/hadoop3/app/hadoop/share/hadoop/yarn/*,
  /home/hadoop3/app/hadoop/share/hadoop/yarn/lib/*
  </value>
  </property>
  </configuration>
7.2.2配置yarn-site.xml
[hadoop3@master hadoop]$ vi  yarn-site.xml

  <configuration>
  <property>
  <name>yarn.resourcemanager.connect.retry-interval.ms</name>
  <value>2000</value>
  </property>
  <property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
  </property>
  <property>
  <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
  <value>true</value>
  </property>
  <property>
  <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
  <value>true</value>
  </property>
  <property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>yarn-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>master</value>
  </property>
  <property>
  <name>yarn.resourcemanager.hostname.rm2</name>
  <value>slave1</value>
  </property>
  <property>
  <name>yarn.resourcemanager.recovery.enabled</name>
  <value>true</value>
  </property>
  <property>

  <description>The>  <name>yarn.resourcemanager.store.class</name>
  <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  </property>
  <property>
  <name>yarn.resourcemanager.zk.state-store.address</name>
  <value>master:2181,slave1:2181,slave2:2181</value>
  </property>
  <property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>master:2181,slave1:2181,slave2:2181</value>
  </property>
  <property>
  <name>yarn.resourcemanager.address.rm1</name>
  <value>master:8032</value>
  </property>
  <property>
  <name>yarn.resourcemanager.scheduler.address.rm1</name>
  <value>master:8034</value>
  </property>
  <property>
  <name>yarn.resourcemanager.webapp.address.rm1</name>
  <value>master:8088</value>
  </property>
  <property>
  <name>yarn.resourcemanager.address.rm2</name>
  <value>slave1:8032</value>
  </property>
  <property>
  <name>yarn.resourcemanager.scheduler.address.rm2</name>
  <value>slave1:8034</value>
  </property>
  <property>
  <name>yarn.resourcemanager.webapp.address.rm2</name>
  <value>slave1:8088</value>
  </property>
  <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>
  </configuration>
7.2.3脚本分发修改的yarn配置
[hadoop3@master hadoop]$ deploy.sh mapred-site.xml /home/hadoop3/app/hadoop-3.0.0/etc/hadoop/ slave

[hadoop3@master hadoop]$ deploy.sh yarn-site.xml

  /home/hadoop3/app/hadoop-3.0.0/etc/hadoop/ slave
7.2.4启动yarn
  在master节点启动resourcemanager
[hadoop3@master hadoop]$ bin/yarn --daemon start resourcemanager

  在slave1节点启动resourcemanager
[hadoop3@slave1  hadoop]$ bin/yarn --daemon start resourcemanager

  在3个节点分别启动nodemanager
[hadoop3@master  hadoop]$ bin/yarn --daemon start nodemanager [hadoop3@slave1  hadoop]$ bin/yarn --daemon start nodemanager [hadoop3@slave2  hadoop]$ bin/yarn --daemon start nodemanager

7.2.5 通过Web查看YARN
DSC00014.jpg

7.2.6检查ResourceManager状态
DSC00015.jpg

DSC00016.jpg

  关闭active 状态的resourcemanager,检查另外一个节点是否能称为active状态。
7.2.7测试运行WordCount
[hadoop3@master hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha2.jar wordcount /dajiangtai/djt.txt /dajiangtai/output

DSC00017.jpg

  查看yarn的Web界面
DSC00018.jpg

  查看运行结果
[hadoop3@master hadoop]$ bin/hdfs dfs -cat /dajiangtai/output/*

DSC00019.jpg

DSC00020.jpg

  如果以上操作没有问题,说明Hadoop3.0分布式高可用集群成功搭建完毕。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424874-1-1.html 上篇帖子: liuming_1992 下篇帖子: hadoop的hdfs中的javaAPI操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表