目录

一、集群规划

二、主机环境准备

1、配置主机名

2、配置HOSTS

3、配置内核参数

 4、配置Limits

 5、关闭防火墙

6、关闭SELINUX

7、修改时区

 8、修改中文支持

三、安装JDK

四、创建Hadoop用户

五、安装Zookeeper

1、下载安装

2、配置zoo.cfg

3、配置myid

4、启动/查看/停止服务

六、安装Hadoop

1、下载安装

2、配置hadoop-env.sh

3、配置core-site.xml

4、配置hdfs-site.xml

5、配置yarn-site.xml

6、配置mapred-site.xml

7、配置works

8、初始化ZKFC

9、初始化namenode

10、启动/查看/停止服务

11、Web UI访问


一、集群规划

        本次测试采用3台虚拟机,操作系统版本为centos7.6。

        Hadoop版本为3.3.4,其中Namenode采用HA高可用架构

        Zookeeper版本为3.8.0

IP地址 主机名 ZK HDFS YARN
192.168.121.101 node101.cc.local server.1

NameNode

DataNode

JournalNode

ResourceManager

NodeManager

JobHistory

192.168.121.102 node102.cc.local server.2

NameNode

DataNode

JournalNode

ResourceManager

NodeManager

192.168.121.103 node103.cc.local server.3

DataNode

JournalNode

NodeManager

二、主机环境准备

1、配置主机名

### 在node1节点均执行操作 ###

hostnamectl set-hostname node101.cc.local

### 在node2节点均执行操作 ###

hostnamectl set-hostname node102.cc.local

### 在node3节点均执行操作 ###

hostnamectl set-hostname node103.cc.local

2、配置HOSTS

### 在每个节点均执行操作 ###

cat << EOF > /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.121.101 node101.cc.local node101
192.168.121.102 node102.cc.local node102
192.168.121.103 node103.cc.local node103
EOF

3、配置内核参数

### 在每个节点均执行操作 ###

### 提示:这一步非必须,可后续调优时进行设置 ###
cat << EOF > /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_tw_buckets = 262144
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_sack = 0
net.ipv4.tcp_window_scaling = 0
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
vm.swappiness = 0
net.ipv4.ip_local_port_range = 9500 61000
net.ipv4.neigh.default.gc_thresh1=1024
net.ipv4.neigh.default.gc_thresh2=2048
net.ipv4.neigh.default.gc_thresh3=4096
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF
sysctl -p

 4、配置Limits

### 在每个节点均执行操作 ###

### 提示:这一步非必须,可后续调优时进行设置 ###

echo "####Limits Parameter Configuration####"
cat << EOF > /etc/security/limits.conf
* soft   nofile 655350
* hard   nofile 655350
* soft   nproc  655350
* hard   nproc  655350
EOF
sed -i.bak$DATE '/^*/{s/[0-9]*$/655350/g}' /etc/security/limits.d/20-nproc.conf
sed -i.bak$DATE '/DefaultLimitNOFILE/c DefaultLimitNOFILE=655350' /etc/systemd/system.conf
sed -i.bak$DATE '/DefaultLimitNOFILE/c DefaultLimitNOFILE=655350' /etc/systemd/user.conf
systemctl daemon-reexec
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo "####Limits Parameter Configuration Done####"
echo -e  "\n"

 5、关闭防火墙

### 在每个节点均执行操作 ###
systemctl stop firewalld.service
systemctl disable firewalld.service

6、关闭SELINUX

### 在每个节点均执行操作 ###
sed -i.bak$DATE '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
setenforce 0

7、修改时区

### 在每个节点均执行操作 ###

timedatectl set-timezone "Asia/Shanghai"

 8、修改中文支持

### 在每个节点均执行操作 ###
cat << EOF > /etc/locale.conf
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_CN.gb18030:en_US.UTF-8:en_US:en"
EOF

三、安装JDK

### 前提:各节点可以访问公网或者已配置好YUM源 ###
### 注意:建议安装openjdk-devel包,非devel没有jps等命令 ###
### 在每个节点均执行操作 ###
### 安装openjdk ###
yum install -y java-1.8.0-openjdk-devel.x86_64

### 配置环境变量 ###
### 注意:由于采用脚本配置环境变量文件,所以对"$"符号前需要增加"\"转义符 ###

cat << EOF > /etc/profile.d/openjdk1_8_0.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export CLASSPATH=\$CLASSPATH:\$JAVA_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

### 生效最新环境变量 ###
source /etc/profile

四、创建Hadoop用户

### 提示:创建hadoop用户用于运行整个hadoop集群相关服务 ###

### 在每个节点均执行操作 ###

echo "####create hadoop user####"
groupadd -g 1024 hadoop
useradd -g hadoop -u 1024 -d /home/hadoop hadoop
echo hadoop:hadppwd | chpasswd
echo "####create hadoop user Done####"

### 创建hadoop安装目录 ###
mkdir -p /opt/hadoop

### 切换登录到hadoop用户 ###
su - hadoop

### 生成hadoop用户秘钥##
mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
ssh-keygen

###分发秘钥至所有节点 ###
ssh-copy-id node101
ssh-copy-id node102
ssh-copy-id node103

五、安装Zookeeper

1、下载安装

### 在每个节点均执行操作 ###

echo "####install zk####"

### 进入hadoop安装目录 ###
cd /opt/hadoop

### 下载zk安装包到安装目录 ###
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz --no-check-certificate

### 解压zk安装包 ###
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz

### 配置zk环境变量 ###

### 注意:由于采用脚本配置环境变量文件,所以对"$"符号前需要增加"\"转义符 ###
cat << EOF > /etc/profile.d/zk3_8_0.sh
export ZOOKEEPER_HOME=/opt/hadoop/apache-zookeeper-3.8.0-bin/
export PATH=\$PATH:\$ZOOKEEPER_HOME/bin
EOF

### 生效最新环境变量 ###
source /etc/profile

### 创建zk数据目录 ###
mkdir $ZOOKEEPER_HOME/data

2、配置zoo.cfg

### 在每个节点均执行操作 ###

cat << EOF > conf/zoo.cfg
# tickTime:Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。session最小有效时间为tickTime*2
tickTime=2000

# Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。不要使用/tmp目录
dataDir=/opt/hadoop/apache-zookeeper-3.8.0-bin/data

# 端口,默认就是2181
clientPort=2181

# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量),超过此数量没有回复会断开链接
initLimit=10

# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
syncLimit=5

# 最大客户端链接数量,0不限制,默认是0
maxClientCnxns=60

# zookeeper集群配置项,server.1,server.2,server.3是zk集群节点;node1,node2,node3是主机名称;2888是主从通信端口;3888用来选举leader
server.1=node101.cc.local:2888:3888
server.2=node102.cc.local:2888:3888
server.3=node103.cc.local:2888:3888
EOF

3、配置myid

### 在node1节点均执行操作 ###

echo 1 > $ZOOKEEPER_HOME/data/myid

### 在node2节点均执行操作 ###

echo 2 > $ZOOKEEPER_HOME/data/myid

### 在node3节点均执行操作 ###

echo 3 > $ZOOKEEPER_HOME/data/myid

4、启动/查看/停止服务

# 启动服务
zkServer.sh start


# 查看服务状态
zkServer.sh status


# 停止服务
zkServer.sh stop

5、设置开机自动启动

 新建开机启动文件/lib/systemd/system/zookeeper.service

[Unit]
Description=ZooKeeper Service
After=network.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
Environment=ZOOKEEPER_HOME=/opt/hadoop/apache-zookeeper-3.8.0-bin
ExecStart=/opt/hadoop/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start
ExecReload=/opt/hadoop/apache-zookeeper-3.8.0-binbin/zkServer.sh restart
ExecStop=/opt/hadoop/apache-zookeeper-3.8.0-bin/bin/zkServer.sh stop
Restart=always
User=hadoop
Group=hadoop
UMask=0007

[Install]
WantedBy=default.target

#设置开机自动启动
systemctl enable zookeeper

#启动服务

systemctl start zookeeper

#查看服务

systemctl status zookeeper

#停止服务

systemctl stop zookeeper

六、安装Hadoop

1、下载安装

### 在每个节点均执行操作 ###

echo "####install hadoop####"

### 进去hadoop安装目录 ###
cd /opt/hadoop

### 下载hadoop安装包 ###
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz --no-check-certificate

### 解压hadoop安装包 ###
tar -zxvf hadoop-3.3.4.tar.gz

### 创建hadoop的临时目录、数据目录和日志目录 ###
cd /opt/hadoop/hadoop-3.3.4 && mkdir tmp data logs

### 创建hadoop的数据目录 ###
mkdir /opt/hadoop/hadoop-3.3.4/data/namenode journalnode datanode

### 修改hadoop安装目录权限给hadoop用户 ###
chown -R hadoop:hadoop /opt/hadoop

### 配置hadoop环境变量 ###

### 注意:由于采用脚本配置环境变量文件,所以对"$"符号前需要增加"\"转义符 ###
cat << EOF > /etc/profile.d/hadoop3_3_4.sh
export HADOOP_HOME=/opt/hadoop/hadoop-3.3.4
export HADOOP_LOG_DIR=\$HADOOP_HOME/logs
export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin
EOF

### 生效最新环境变量 ###
source /etc/profile

2、配置hadoop-env.sh

### 在每个节点均执行操作 ###

### 配置 hadoop-3.3.4/etc/hadoop/hadoop-env.sh ###

cat << EOF >> /opt/hadoop/hadoop-3.3.4/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_PID_DIR=/opt/hadoop/hadoop-3.3.4/tmp/
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop
export YARN_RESOURCEMANAGER_USER=hadoop
export YARN_NODEMANAGER_USER=hadoop
EOF

3、配置core-site.xml

        编辑hadoop-3.3.4/etc/hadoop/core-site.xml

### 在每个节点均执行操作 ###

###提示:通过vi手工修改<configuration></configuration>中的内容 ###

<configuration>
  <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS等文件系统 -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://ccns</value>
  </property>
  
  <!-- 设置Hadoop临时目录路径 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>
  
  <!-- 指定zookeeper地址 -->
  <property>
    <name>ha.zookeeper.quorum</name>
    <value>node101.cc.local:2181,node102.cc.local:2181,node103.cc.local:2181</value>
  </property>
  
  <!-- 设置Hadoop本地保存数据路径 -->
  <property>
    <name>hadoop.data.dir</name>
    <value>/opt/hadoop/data</value>
  </property>
  
  <!-- 设置HDFS web UI用户身份 -->  
  <property>
    <name>hadoop.http.staticuser.user</name>
    <value>hadoop</value>
  </property>
  
  <!-- 配置该hadoop允许通过代理访问的主机节点 -->
  <property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
  </property>

  <!-- 配置该hadoop允许代理的用户所属组 -->
  <property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
  </property>

  <!-- 配置该hadoop允许代理的用户 -->
  <property>
    <name>hadoop.proxyuser.hadoop.users</name>
    <value>*</value>
   </property>

  <!-- 对于每个<hadoop>用户,hosts必须进行配置,而groups和users至少需要配置一个。-->

  <!-- 文件系统垃圾桶保存时间 -->
  <property>
    <name>fs.trash.interval</name>
    <value>1440</value>
  </property>
</configuration>

4、配置hdfs-site.xml

         编辑hadoop-3.3.4/etc/hadoop/hdfs-site.xml

### 在每个节点均执行操作 ###

###提示:通过vi手工修改<configuration></configuration>中的内容 ###

<configuration>
  <!--执行hdfs的nameservice为ns,注意要和core-site.xml中的名称保持一致 -->
  <property>
    <name>dfs.nameservices</name>
    <value>ccns</value>
  </property>
  
  <!-- nameservice包含的namenode,ns集群下有两个namenode,分别为nn1, nn2 -->
  <property>
    <name>dfs.ha.namenodes.ccns</name>
    <value>nn1,nn2</value>
  </property>
  
  <!-- nn1的rpc地址和端口号,rpc用来和datanode通讯,默认值:9000-->
  <property>
    <name>dfs.namenode.rpc-address.ccns.nn1</name>
    <value>node101.cc.local:9000</value>
  </property>

  <!-- nn2的rpc地址和端口号,rpc用来和datanode通讯,默认值:9000-->
  <property>
    <name>dfs.namenode.rpc-address.ccns.nn2</name>
    <value>node102.cc.local:9000</value>
  </property>

  <!-- nn1的http地址和端口号,web客户端 -->
  <property>
    <name>dfs.namenode.http-address.ccns.nn1</name>
    <value>node101.cc.local:9870</value>
  </property>
  
  <!-- nn2的http地址和端口号,web客户端 -->
  <property>
    <name>dfs.namenode.http-address.ccns.nn2</name>
    <value>node102.cc.local:9870</value>
  </property>
  
  <!-- 指定namenode的元数据在JournalNode上存放的位置,namenode2可以从journalnode集群里的指定位置上获取信息,达到热备效果 -->
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://node101.cc.local:8485;node102.cc.local:8485;node103.cc.local:8485/ccns</value>
  </property>

  <!-- 配置失败自动切换实现方式,客户端连接可用状态的NameNode所用的代理类,默认值:org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider -->
  <property>
    <name>dfs.client.failover.proxy.provider.ccns</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>

  <!-- 配置隔离机制,HDFS的HA功能的防脑裂方法。建议使用sshfence(hadoop:9922),括号内的是用户名和端口,注意,2台NN之间可免密码登陆.sshfences是防止脑裂的方法,保证NN中仅一个是Active的,如果2者都是Active的,新的会把旧的强制Kill -->
  <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
  </property>
  
  <!-- 开启NameNode失败自动切换 -->
  <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>
  
  <!-- 配置失败自动切换实现方式 -->
  <property>
    <name>dfs.client.failover.proxy.provider.ccns</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
  
  <!-- 指定上述选项ssh通讯使用的密钥文件在系统中的位置 -->
  <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
  </property>

  <!-- 指定JournalNode在本地磁盘存放数据的位置。 -->
  <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/hadoop/hadoop-3.3.4/data/journalnode</value>
  </property>
  
  <!--配置namenode存放元数据的目录,默认放到hadoop.tmp.dir下-->
  <property>   
    <name>dfs.namenode.name.dir</name>   
    <value>file:///opt/hadoop/hadoop-3.3.4/data/namenode</value>   
  </property>   

  <!--配置datanode存放元数据的目录,默认放到hadoop.tmp.dir下-->
  <property>   
    <name>dfs.datanode.data.dir</name>   
    <value>file:///opt/hadoop/hadoop-3.3.4/data/datanode</value>    
  </property>

  <!-- 副本数量配置 -->
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  
  <!--设置用户的操作权限,false表示关闭权限验证,任何用户都可以操作-->                         
  <property>   
    <name>dfs.permissions</name>   
    <value>false</value>   
  </property>
</configuration>

5、配置yarn-site.xml

        编辑hadoop-3.3.4/etc/hadoop/yarn-site.xml

### 在每个节点均执行操作 ###

###提示:通过vi手工修改<configuration></configuration>中的内容 ###

<configuration>
<!--开启ResourceManager HA功能-->
  <property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
  </property>
  
  <!--标志ResourceManager-->
  <property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>ccyarn</value>
  </property>
  
  <!--集群中ResourceManager的ID列表,后面的配置将引用该ID-->
  <property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
  </property>
  
  <!-- 设置YARN集群主角色运行节点rm1-->
  <property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>node101.cc.local</value>
  </property>
  
  <!-- 设置YARN集群主角色运行节点rm2-->
  <property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>node102.cc.local</value>
  </property>
  
  <!--ResourceManager1的Web页面访问地址-->
  <property>
    <name>yarn.resourcemanager.webapp.address.rm1</name>
    <value>node101.cc.local:8088</value>
  </property>

  <!--ResourceManager2的Web页面访问地址-->
  <property>
    <name>yarn.resourcemanager.webapp.address.rm2</name>
    <value>node102.cc.local:8088</value>
  </property>

  <!--ZooKeeper集群列表-->
  <property>
    <name>hadoop.zk.address</name>
    <value>node101.cc.local:2181,node102.cc.local:2181,node103.cc.local:2181</value>
  </property>
  
  <!--启用ResouerceManager重启的功能,默认为false-->
  <property>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>true</value>
  </property>
  
   <!--用于ResouerceManager状态存储的类-->
  <property>
    <name>yarn.resourcemanager.store.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  </property>
  
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  
  <!-- 是否将对容器实施物理内存限制 -->
  <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
  </property>
  
  <!-- 是否将对容器实施虚拟内存限制 -->
  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
  
  <!-- 开启日志聚集功能 -->
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  
  <!-- 设置日志聚集服务器地址 -->
  <property>
    <name>yarn.log.server.url</name>
    <value>http://node101:19888/jobhistory/logs</value>
  </property>
  
  <!-- 设置日志保留时间为7天 -->
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>
</configuration>

6、配置mapred-site.xml

        编辑hadoop-3.3.4/etc/hadoop/mapred-site.xml

### 在每个节点均执行操作 ###

###提示:通过vi手工修改<configuration></configuration>中的内容 ###

<configuration>
<!-- 设置MR程序默认运行模式,yarn集群模式,local本地模式 -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

  <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>

  <!-- 历史服务器端地址 -->
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>node101.cc.local:10020</value>
  </property>
  
  <!-- 历史服务器web端地址 -->
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>node101.cc.local:19888</value>
  </property>
  
  <!-- map环境变量 -->
  <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>

  <!-- reduce环境变量 -->
  <property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
</configuration>

7、配置works

### 在每个节点均执行操作 ###
### 配置 hadoop-3.3.4/etc/hadoop/workers ###
cat << EOF > /opt/hadoop/hadoop-3.3.4/etc/hadoop/workers
node101.cc.local
node102.cc.local
node103.cc.loca
EOF

8、初始化ZKFC

### 选择任何一个节点上执行均可,此次选择在node1节点上执行 ###
### 前提:已正常启动zookeeper ###
### 初始化zk ###
hdfs zkfc -formatZK

9、初始化namenode

### 每个节点分别启动 journalnode ###
hdfs --daemon start journalnode

### 初始化主namenode,此次选择node1为主namenode ###
hdfs namenode -format

### 启动主namenode ###
hdfs --daemon start namenode

### 初始化从namenode,此次node2为从namenode ###
hdfs namenode -bootstrapStandby

10、启动/查看/停止服务

### 一键启动全部hadoop服务
### 一键启动选择任何一个节点上执行均可,此次选择在node1节点上执行 ###
start-all.sh

#一键启动HDFS
### 一键启动选择任何一个节点上执行均可,此次选择在node1节点上执行 ###
start-dfs.sh

#一键启动yarn
### 一键启动选择任何一个节点上执行均可,此次选择在node1节点上执行 ###
start-yarn.sh

#启动HDFS单个服务进程
hdfs --daemon start namenode|datanode|journalnode|zkfc

# 启动YARN单个服务进程
yarn --daemon start resourcemanager|nodemanager

#启动历史服务进程(这必须单独启动)
mapred --daemon start historyserver

#查看服务
jps

### 一键停止全部hadoop服务
### 一键停止选择任何一个节点上执行均可,此次选择在node1节点上执行 ###
stop-all.sh

#一键停止HDFS
### 一键停止选择任何一个节点上执行均可,此次选择在node1节点上执行 ###
stop-dfs.sh

#一键停止yarn
### 一键停止选择任何一个节点上执行均可,此次选择在node1节点上执行 ###
stop-yarn.sh

#停止HDFS单个服务进程
hdfs --daemon stop namenode|datanode|journalnode|zkfc

# 停止YARN单个服务进程
yarn --daemon stop resourcemanager|nodemanager

11、Web UI访问

HDFS集群Web UI默认端口9870,访问地址为namenode的IP地址
node1:http://192.168.121.101:9870
node2:http://192.168.121.102:9870

注意:
1、由于配置了HA高可用模式,所以每个namenode都可以打开,首页会显示namenoded的状态是active或standby,当通过Web UI去访问hdfs目录时,必须选择active的namenode;
2、在windows上使用web ui上传文件时,由于没法识别node101.cc.local,node102.cc.local,node103.cc.local,所以上传文件会失败,只需要在windows的hosts文件加上对应的解析就可以正常操作了。

Yarn集群WEB Ui默认端口8088,访问地址为resourcemanager的IP地址
node1:http://192.168.121.101:8088/
node2:http://192.168.121.102:8088/

注意:只有一个resourcemanager是active的,当访问到从resourcemanager时,页面会自动跳转至active的resourcemanager的Web地址,但由于windows上没法识别node101.cc.local,node102.cc.local,node103.cc.local,所以会造成页面无法打开,只需要在windows的hosts文件加上对应的解析就可以正常操作,或者直接打开active的resourcemanager的Web地址即可

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐