当前位置:   article > 正文

Hadoop的高可用搭建_jps【截图】

jps【截图】

1、虚拟机和组件的获取和选择

1.1、虚拟机

参数说明
虚拟机名称namenode,datanode1,datanode219.168.229.[100/101/102]
虚拟机个数3台个数最少3个,且最好为奇数
内存20G/4G主节点20G子节点4G
磁盘300G三台相同
系统CentOS-7-x86_64-DVD-1708.iso三台相同

之前搭建CDH,因此沿用它的配置。

1.2、版本选择

系统
CentOS-7-x86_64-DVD-1708.iso
jdk
jdk-8u152-linux-x64.tar.gz
hadoop
hadoop-2.7.7.tar.gz
zookeeper
zookeeper-3.4.14.tar.gz

1.3 、架包下载

系统下载地址:http://mirrors.163.com/centos/7/isos/x86_64/
jdk下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
hadoop下载地址:https://archive.apache.org/dist/hadoop/common/
zookeeper下载地址:https://mirrors.bfsu.edu.cn/apache/zookeeper/

2、配置基础环境

2.1、虚拟机IP配置

输入如下命令,开始配置ip

vi /etc/sysconfig/netwok-scripts/ifcfg-*
  • 1

进入文件后配置静态IP添加或者修改配置如下

添加配置参数

IPADDR=192.168.229.100/101/102
NETMASK=255.255.255.0	
GATEWAY=192.168.229.2
DNS1=114.114.114.114	
  • 1
  • 2
  • 3
  • 4

上面的配置是添加的ip地址,子网掩码,网关和DNS
修改配置参数

ONBOOT=yes	              
BOOTPROTO=static
  • 1
  • 2

机器重启生效和 机器IP地址获取方式由动态变为静态 static=>> dhcp

重启network

service network restart
  • 1

检测是否能ping通其他内网机器,若无法ping通,查看ESXI配置,是否是桥接模式且宿主机器网络是否联通。

2.2、配置hostname

执行如下操作修改主机名称

vi /etc/hostname  或者
vi /etc/sysconfig/network
  • 1
  • 2

填写想要设定的主机名称即可,查看主机名称

hostname                                 
  • 1

2.3、配置hosts

配置hosts的目的在于CDH能够通过主机名称或者别名登陆其他机器。

vi /etc/hosts
  • 1

我的配置如下

192.168.229.100 namenode   
192.168.229.101 datanode1
192.168.229.102 datanode2
  • 1
  • 2
  • 3

2.4、禁用防火墙

CDH运行过程中,可能会因为防火墙的原因,会有特殊的问题,建议关闭防火墙,如果不能关闭,那需要逐条配置端口规则。

systemctl stop firewalld	
systemctl disable firewalld  
  • 1
  • 2

上面两步依次是检查是否安装了mariadb和卸载mariadb

2.5、禁用SELinux功能

首先查看 SELinux功能是否开启。

getenforce          
  • 1

如果显示Permissive 或者 Disabled 该步骤直接跳过,如果是enforcing ,进行下一步

vi /etc/selinux/config
  • 1

将SELINUX=enforcing改为 SELINUX= disabled或者在外面输入

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  • 1

2.6、创建个人用户

2.6.1、创建用户并修改密码

useradd wangkkai
passwd wangkai
  • 1
  • 2

在这里插入图片描述

2.6.2、配置用户权限

chmod 777 /etc/sudoers
vi /etc/sudoers
  • 1
  • 2

如下图添加
在这里插入图片描述

chmod 440 /etc/sudoers
  • 1

2.6、免密登陆

在主节点上运行

ssh-keygen -t rsa
  • 1

回车三次 生成一个秘钥
在这里插入图片描述
分发到所有节点

ssh-copy-id ip(需要分发节点的具体ip)
  • 1

输入该节点的密码即可成功
验证:ssh root@节点名称 登陆成功不输入密码代表配置成功
(注:配置的第一个节点以后在配置第二个节点时不用再生成密钥,直接分发即可)

3、安装jdk

3.1、jdk选择

目前来看,jdk8版本的在网上的参考资料先对来说挺多的,而且java作为其他组件的依赖基础,选择8版本的挺好的。
因此我选择jdk-8u152-linux-x64.tar.gz

3.2、创建目录

我这里方便以后进行集群的搭建,统一/opt/software放组件的架包,/opt/module放解压文件。

mkdir -p /opt/module
mkdir -p /opt/software
  • 1
  • 2

3.3、解压 JDK

把下载的文件 jdk-8u152-linux-x64.tar.gz 放在/opt/software目录下然后进行解压。

tar -zxf /opt/software/jdk-8u152-linux-x64.tar.gz -C /opt/module/
  • 1

3.4、设置环境变量

vi /etc/profile
在 profile 文件中添加如下内容并保存:

# JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_152
export PATH=$PATH:$JAVA_HOME/bin

  • 1
  • 2
  • 3
  • 4

注意:其中 JAVA_HOME 请根据自己的实际安装路径及 JDK 版本配置进行配置。

让配置生效:

source /etc/profile
  • 1

3.5、检测

输入java -version
显示 java 版本信息,则说明 JDK 安装成功。

4、安装zookeeper

4.1、解压软件zookeeper

tar -zxf /opt/software/zookeeper-3.4.14.tar.gz -C /opt/module/
  • 1

4.2、配置环境变量

# ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_HOME/bin
  • 1
  • 2
  • 3

4.3、进入zookeeper的解压文件后执行如下操作

cp /opt/module/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/module/zookeeper-3.4.14/conf/zoo.cfg
sudo vi /opt/module/zookeeper-3.4.14/conf/zoo.cfg
  • 1
  • 2
tickTime=2000
clientPort=2181
initLimit=5
syncLimit=2
dataDir=/opt/module/zookeeper-3.4.14/data
dataLogDir=/opt/module/zookeeper-3.4.14/logs
server.0=192.168.229.100:2888:3888
server.1=192.168.229.101:2888:3888
server.2=192.168.229.102:2888:3888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

• initLimit
ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。
• syncLimit
配置follower和leader之间发送消息,请求和应答的最大时间长度。
• tickTime
tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
• clientPort
clientPort这个端口就是客户端(应用程序)连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求。
• server.A=B:C:D
A是一个数字,表示这个是第几号服务器;
B是这个服务器的IP地址(或者是与IP地址做了映射的主机名);
C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的Leader服务器交换信息的端口;
D是在leader挂掉时专门用来进行选举leader所用的端口。
注意:如果是伪集群的配置方式,不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

4.4、创建myid文件

在dataDir=/opt/module/zookeeper-3.4.14/data这个文件下创建myid文件。执行如下操作。

touch myid
echo 0 > myid
  • 1
  • 2

【注】每一个节点对应的数字依次增加即可。

5、安装hadoop

5.1 hadoop集群的节点服务

节点NNDNZKZKFCJNRMNM
namenode
datanode1
datanode2

HA的NN和RM可以多个配置,最小两个,官方建议不要超过5个。

HDFS-HA架构图:
在这里插入图片描述
YARN HA 架构图:

在这里插入图片描述

5.1 开始安装

5.1.1、文件解压

tar -zxf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/
  • 1

5.1.2、配置环境变量

sudo vi /etc/profile
  • 1
# HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3
  • 4

刷新配置文件让配置生效

source /etc/profile
  • 1

为了方便文件的传递。我们写一个脚本xsynsc。
关于复制指令scp和rsync对比。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
开始编写
在/root/文件夹下执行如下内容。

mkdir bin
cd bin/
touch xsync
vi xsync
  • 1
  • 2
  • 3
  • 4

脚本内容

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=1; host<3; host++)); do
        echo ------------------- datanode$host --------------
        rsync -av $pdir/$fname $user@datanode$host:$pdir
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

保存后,修改权限并传输到各个节点。

chmod 777 xsync
xsync /home/wangkai/bin
  • 1
  • 2

5.2、修改配置文件

配置文件core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml和yarn-site.xml 共5个文件。

5.2.1、hadoop-env.sh

将JAVA_HOME后填写路径。

export JAVA_HOME=/opt/module/jdk1.8.0_152
  • 1

5.2.2、core-site.xml

<configuration>
    <property>
        <name>hadoop.native.lib</name>
        <value>false</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.wangkai.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.wangkai.groups</name>
        <value>*</value>
    </property>
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://cluster1</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.7/data/tmp</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/module/hadoop-2.7.7/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/module/hadoop-2.7.7/dfs/data</value>
    </property>
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>namenode:2181,datanode1:2181,datanode2:2181</value>
    </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

5.2.3、hdfs-site.xml

<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>cluster1</value>
    </property>
    <property>
        <name>dfs.ha.namenodes.cluster1</name>
        <value>nn,dn1</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.cluster1.nn</name>
        <value>namenode:9820</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.cluster1.dn1</name>
        <value>datanode1:9820</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.cluster1.nn</name>
        <value>namenode:50070</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.cluster1.dn1</name>
        <value>datanode1:50070</value>
    </property>
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://namenode:8485;datanode1:8485;datanode2:8485/cluster1</value>
    </property>
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/module/hadoop-2.7.7/dfs/journal</value>
    </property>
    <property>
        <name>dfs.client.failover.proxy.provider.cluster1</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/wangkai/.ssh/id_rsa</value>
    </property>
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.journalnode.http-address</name>
        <value>0.0.0.0:8480</value>
    </property>
    <property>
        <name>dfs.journalnode.rpc-address</name>
        <value>0.0.0.0:8485</value>
    </property>
    <property> 
        <name>ha.zookeeper.quorum</name>
        <value>namenode:2181,datanode1:2181,datanode2:2181</value>
    </property>
    <property> 
        <name>dfs.permissions.enabled</name> 
        <value>true</value> 
    </property> 
    <property> 
        <name>dfs.namenode.acls.enabled</name> 
        <value>true</value> 
    </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78

5.2.4、mapred-site.xml

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>0.0.0.0:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>namenode:19888</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.resource.mb</name>
        <value>512</value>
    </property>
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>512</value>
    </property>
    <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xmx512M</value>
    </property>
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>512</value>
    </property>
    <property>
        <name>mapreduce.reduce.java.opts</name>
        <value>-Xmx512M</value>
    </property>
    <property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx512M</value>
</property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

5.2.5、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.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>namenode:2181,datanode1:2181,datanode2:2181</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>namenode</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>datanode1</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.id</name>
        <value>rm1</value>
    </property>
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.zk-state-store.address</name>
        <value>namenode:2181,datanode1:2181,datanode1:2181</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>namenode:2181,datanode1:2181,datanode2:2181</value>
    </property>
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>cluster1</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
        <value>5000</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address.rm1</name>
        <value>namenode:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm1</name>
        <value>namenode:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>namenode:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
        <value>namenode:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address.rm1</name>
        <value>namenode:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.admin.address.rm1</name>
        <value>namenode:23142</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address.rm2</name>
        <value>datanode1:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm2</name>
        <value>datanode1:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>datanode1:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
        <value>datanode1:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address.rm2</name>
        <value>datanode1:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.admin.address.rm2</name>
        <value>datanode1:23142</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>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/opt/module/hadoop-2.7.7/data/nm</value>
    </property>
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>/opt/module/hadoop-2.7.7/log/yarn</value>
    </property>
    <property>
        <name>mapreduce.shuffle.port</name>
        <value>23080</value>
    </property>
    <property>
        <name>yarn.client.failover-proxy-provider</name>
        <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.zk-base-path</name>
        <value>/yarn-leader-election</value>
    </property>
    <property>
        <name>yarn.nodemanager.vcores-pcores-ratio</name>
        <value>1</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>4.2</value>
    </property>
     <property>
        <name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
        <value>true</value>
    </property> 
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146

5.2.6、slaves

将作为datanode的节点的节点名称写入其中

namenode
datanode1
datanode2 
  • 1
  • 2
  • 3

上面的配置文件配置好后进行分发到各个节点上。

6、启动hadoop集群

hadoop高可用需要每个节点开启zookeeper

/opt/module/zookeeper-3.4.14/zkServer.sh start
  • 1

在其中一个namenode(假设在namenode节点上)上格式化zookeeper

hdfs zkfc -formatZK

  • 1
  • 2

启动journalnode,需要启动所有节点的journalnode

./sbin/hadoop-daemon.sh start journalnode
  • 1

在其中一个namenode(在namenode节点上)上格式化namenode

hdfs namenode -format
  • 1

另外一个namnode进行同步。

hdfs namenode -bootstrapStandby
  • 1

#如果这一步失败,那就启动namenode机器的namenode,在进行这一步。
以上则配置完成。

./sbin/start-all.shn
  • 1

开启所有服务,
(1)假如出现2个standby状态的namenode,那么执行hdfs haadmin -transitionToActive -forcemanual nn强制转换一个namenode。
(2)第2个RM需要./sbin/yarn-daemon.sh start resourcemanager进行开启。
(3)开启历史服务mapred --daemon start historyserver

6、验证hadoop集群

创建wc.input文件并上传到Hadoop上(hadoop fs -put wc.input /)查看http:ip:50070,如下图,hdfs成功。
在这里插入图片描述
输入hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar wordcount /wc.input /wc.output)查看http:ip:8088,如下图,yarn成功。
在这里插入图片描述
各个jps后的截图
namenode
在这里插入图片描述
datanode1
在这里插入图片描述
datanode2
在这里插入图片描述

本文内容为个人理解,如有错误,还请指出。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/873405
推荐阅读
相关标签
  

闽ICP备14008679号