目录

一、集群规划

二、主机环境准备

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地址主机名ZKHDFSYARN
192.168.121.101node101.cc.localserver.1

NameNode

DataNode

JournalNode

ResourceManager

NodeManager

JobHistory

192.168.121.102node102.cc.localserver.2

NameNode

DataNode

JournalNode

ResourceManager

NodeManager

192.168.121.103node103.cc.localserver.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

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

更多推荐