目錄
一、集群規(guī)劃
二、主機(jī)環(huán)境準(zhǔn)備
1、配置主機(jī)名
2、配置HOSTS
3、配置內(nèi)核參數(shù)
?4、配置Limits
?5、關(guān)閉防火墻
6、關(guān)閉SELINUX
7、修改時(shí)區(qū)
?8、修改中文支持
三、安裝JDK
四、創(chuàng)建Hadoop用戶
五、安裝Zookeeper
1、下載安裝
2、配置zoo.cfg
3、配置myid
4、啟動(dòng)/查看/停止服務(wù)
六、安裝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、啟動(dòng)/查看/停止服務(wù)
11、Web UI訪問
一、集群規(guī)劃
? ? ? ? 本次測(cè)試采用3臺(tái)虛擬機(jī),操作系統(tǒng)版本為centos7.6。
????????Hadoop版本為3.3.4,其中Namenode采用HA高可用架構(gòu)
? ? ? ? Zookeeper版本為3.8.0
IP地址 | 主機(jī)名 | 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 |
二、主機(jī)環(huán)境準(zhǔn)備
1、配置主機(jī)名
### 在node1節(jié)點(diǎn)均執(zhí)行操作?###
hostnamectl set-hostname node101.cc.local
### 在node2節(jié)點(diǎn)均執(zhí)行操作?###
hostnamectl set-hostname node102.cc.local
### 在node3節(jié)點(diǎn)均執(zhí)行操作?###
hostnamectl set-hostname node103.cc.local
2、配置HOSTS
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
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、配置內(nèi)核參數(shù)
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
### 提示:這一步非必須,可后續(xù)調(diào)優(yōu)時(shí)進(jìn)行設(shè)置 ###
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
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
### 提示:這一步非必須,可后續(xù)調(diào)優(yōu)時(shí)進(jìn)行設(shè)置 ###
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、關(guān)閉防火墻
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
systemctl stop firewalld.service
systemctl disable firewalld.service
6、關(guān)閉SELINUX
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
sed -i.bak$DATE '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
setenforce 0
7、修改時(shí)區(qū)
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
timedatectl set-timezone "Asia/Shanghai"
?8、修改中文支持
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
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
### 前提:各節(jié)點(diǎn)可以訪問公網(wǎng)或者已配置好YUM源?###
### 注意:建議安裝openjdk-devel包,非devel沒有jps等命令 ###
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
### 安裝openjdk ###
yum install -y java-1.8.0-openjdk-devel.x86_64### 配置環(huán)境變量 ###
### 注意:由于采用腳本配置環(huán)境變量文件,所以對(duì)"$"符號(hào)前需要增加"\"轉(zhuǎn)義符 ###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### 生效最新環(huán)境變量 ###
source /etc/profile
四、創(chuàng)建Hadoop用戶
### 提示:創(chuàng)建hadoop用戶用于運(yùn)行整個(gè)hadoop集群相關(guān)服務(wù)?###
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
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####"### 創(chuàng)建hadoop安裝目錄 ###
mkdir -p /opt/hadoop### 切換登錄到hadoop用戶 ###
su - hadoop### 生成hadoop用戶秘鑰##
mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
ssh-keygen
###分發(fā)秘鑰至所有節(jié)點(diǎn)?###
ssh-copy-id node101
ssh-copy-id node102
ssh-copy-id node103
五、安裝Zookeeper
1、下載安裝
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
echo "####install zk####"
### 進(jìn)入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環(huán)境變量?###
### 注意:由于采用腳本配置環(huán)境變量文件,所以對(duì)"$"符號(hào)前需要增加"\"轉(zhuǎn)義符 ###
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### 生效最新環(huán)境變量 ###
source /etc/profile### 創(chuàng)建zk數(shù)據(jù)目錄 ###
mkdir $ZOOKEEPER_HOME/data
2、配置zoo.cfg
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
cat << EOF > conf/zoo.cfg
# tickTime:Zookeeper 服務(wù)器之間或客戶端與服務(wù)器之間維持心跳的時(shí)間間隔,也就是每個(gè) tickTime 時(shí)間就會(huì)發(fā)送一個(gè)心跳。tickTime以毫秒為單位。session最小有效時(shí)間為tickTime*2
tickTime=2000# Zookeeper保存數(shù)據(jù)的目錄,默認(rèn)情況下,Zookeeper將寫數(shù)據(jù)的日志文件也保存在這個(gè)目錄里。不要使用/tmp目錄
dataDir=/opt/hadoop/apache-zookeeper-3.8.0-bin/data# 端口,默認(rèn)就是2181
clientPort=2181# 集群中的follower服務(wù)器(F)與leader服務(wù)器(L)之間初始連接時(shí)能容忍的最多心跳數(shù)(tickTime的數(shù)量),超過此數(shù)量沒有回復(fù)會(huì)斷開鏈接
initLimit=10# 集群中的follower服務(wù)器與leader服務(wù)器之間請(qǐng)求和應(yīng)答之間能容忍的最多心跳數(shù)(tickTime的數(shù)量)
syncLimit=5# 最大客戶端鏈接數(shù)量,0不限制,默認(rèn)是0
maxClientCnxns=60# zookeeper集群配置項(xiàng),server.1,server.2,server.3是zk集群節(jié)點(diǎn);node1,node2,node3是主機(jī)名稱;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節(jié)點(diǎn)均執(zhí)行操作?###
echo 1 > $ZOOKEEPER_HOME/data/myid
### 在node2節(jié)點(diǎn)均執(zhí)行操作?###
echo 2 > $ZOOKEEPER_HOME/data/myid
### 在node3節(jié)點(diǎn)均執(zhí)行操作?###
echo 3?> $ZOOKEEPER_HOME/data/myid
4、啟動(dòng)/查看/停止服務(wù)
# 啟動(dòng)服務(wù)
zkServer.sh start
# 查看服務(wù)狀態(tài)
zkServer.sh status
# 停止服務(wù)
zkServer.sh status
六、安裝Hadoop
1、下載安裝
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
echo "####install hadoop####"
### 進(jìn)去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### 創(chuàng)建hadoop的臨時(shí)目錄、數(shù)據(jù)目錄和日志目錄?###
cd /opt/hadoop/hadoop-3.3.4 && mkdir tmp data logs### 創(chuàng)建hadoop的數(shù)據(jù)目錄?###
mkdir /opt/hadoop/hadoop-3.3.4/data/namenode journalnode datanode### 修改hadoop安裝目錄權(quán)限給hadoop用戶?###
chown -R hadoop:hadoop /opt/hadoop### 配置hadoop環(huán)境變量 ###
### 注意:由于采用腳本配置環(huán)境變量文件,所以對(duì)"$"符號(hào)前需要增加"\"轉(zhuǎn)義符 ###
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### 生效最新環(huán)境變量 ###
source /etc/profile
2、配置hadoop-env.sh
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
### 配置 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
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
###提示:通過vi手工修改<configuration></configuration>中的內(nèi)容 ###
<configuration>
? <!-- 設(shè)置默認(rèn)使用的文件系統(tǒng) Hadoop支持file、HDFS、GFS等文件系統(tǒng) -->
? <property>
? ? <name>fs.defaultFS</name>
? ? <value>hdfs://ccns</value>
? </property>
??
? <!-- 設(shè)置Hadoop臨時(shí)目錄路徑 -->
? <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>
??
? <!-- 設(shè)置Hadoop本地保存數(shù)據(jù)路徑 -->
? <property>
? ? <name>hadoop.data.dir</name>
? ? <value>/opt/hadoop/data</value>
? </property>
??
? <!-- 設(shè)置HDFS web UI用戶身份 --> ?
? <property>
? ? <name>hadoop.http.staticuser.user</name>
? ? <value>hadoop</value>
? </property>
??
? <!-- 配置該root允許通過代理訪問的主機(jī)節(jié)點(diǎn) -->
? <property>
? ? <name>hadoop.proxyuser.root.hosts</name>
? ? <value>*</value>
? </property>? <!-- 配置該root允許代理的用戶所屬組 -->
? <property>
? ? <name>hadoop.proxyuser.root.groups</name>
? ? <value>*</value>
? </property>? <!-- 配置該root允許代理的用戶 -->
? <property>
? ? <name>hadoop.proxyuser.root.users</name>
? ? <value>*</value>
? ?</property>? <!-- 對(duì)于每個(gè)<root>用戶,hosts必須進(jìn)行配置,而groups和users至少需要配置一個(gè)。-->
? <!-- 文件系統(tǒng)垃圾桶保存時(shí)間 -->
? <property>
? ? <name>fs.trash.interval</name>
? ? <value>1440</value>
? </property>
</configuration>
4、配置hdfs-site.xml
?????????編輯hadoop-3.3.4/etc/hadoop/hdfs-site.xml
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
###提示:通過vi手工修改<configuration></configuration>中的內(nèi)容 ###
<configuration>
? <!--執(zhí)行hdfs的nameservice為ns,注意要和core-site.xml中的名稱保持一致 -->
? <property>
? ? <name>dfs.nameservices</name>
? ? <value>ccns</value>
? </property>
??
? <!-- nameservice包含的namenode,ns集群下有兩個(gè)namenode,分別為nn1, nn2 -->
? <property>
? ? <name>dfs.ha.namenodes.ccns</name>
? ? <value>nn1,nn2</value>
? </property>
??
? <!-- nn1的rpc地址和端口號(hào),rpc用來和datanode通訊,默認(rèn)值:9000-->
? <property>
? ? <name>dfs.namenode.rpc-address.ccns.nn1</name>
? ? <value>node101.cc.local:9000</value>
? </property>? <!-- nn2的rpc地址和端口號(hào),rpc用來和datanode通訊,默認(rèn)值:9000-->
? <property>
? ? <name>dfs.namenode.rpc-address.ccns.nn2</name>
? ? <value>node102.cc.local:9000</value>
? </property>? <!-- nn1的http地址和端口號(hào),web客戶端 -->
? <property>
? ? <name>dfs.namenode.http-address.ccns.nn1</name>
? ? <value>node101.cc.local:9870</value>
? </property>
??
? <!-- nn2的http地址和端口號(hào),web客戶端 -->
? <property>
? ? <name>dfs.namenode.http-address.ccns.nn2</name>
? ? <value>node102.cc.local:9870</value>
? </property>
??
? <!-- 指定namenode的元數(shù)據(jù)在JournalNode上存放的位置,namenode2可以從journalnode集群里的指定位置上獲取信息,達(dá)到熱備效果 -->
? <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>? <!-- 配置失敗自動(dòng)切換實(shí)現(xiàn)方式,客戶端連接可用狀態(tài)的NameNode所用的代理類,默認(rèn)值: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>? <!-- 配置隔離機(jī)制,HDFS的HA功能的防腦裂方法。建議使用sshfence(hadoop:9922),括號(hào)內(nèi)的是用戶名和端口,注意,2臺(tái)NN之間可免密碼登陸.sshfences是防止腦裂的方法,保證NN中僅一個(gè)是Active的,如果2者都是Active的,新的會(huì)把舊的強(qiáng)制Kill -->
? <property>
? ? <name>dfs.ha.fencing.methods</name>
? ? <value>sshfence</value>
? </property>
??
? <!-- 開啟NameNode失敗自動(dòng)切換 -->
? <property>
? ? <name>dfs.ha.automatic-failover.enabled</name>
? ? <value>true</value>
? </property>
??
? <!-- 配置失敗自動(dòng)切換實(shí)現(xiàn)方式 -->
? <property>
? ? <name>dfs.client.failover.proxy.provider.ccns</name>
? ? <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
? </property>
??
? <!-- 指定上述選項(xiàng)ssh通訊使用的密鑰文件在系統(tǒng)中的位置 -->
? <property>
? ? <name>dfs.ha.fencing.ssh.private-key-files</name>
? ? <value>/root/.ssh/id_rsa</value>
? </property>? <!-- 指定JournalNode在本地磁盤存放數(shù)據(jù)的位置。 -->
? <property>
? ? <name>dfs.journalnode.edits.dir</name>
? ? <value>/opt/hadoop/hadoop-3.3.4/data/journalnode</value>
? </property>
??
? <!--配置namenode存放元數(shù)據(jù)的目錄,默認(rèn)放到hadoop.tmp.dir下-->
? <property> ??
? ? <name>dfs.namenode.name.dir</name> ??
? ? <value>file:///opt/hadoop/hadoop-3.3.4/data/namenode</value> ??
? </property> ??? <!--配置datanode存放元數(shù)據(jù)的目錄,默認(rèn)放到hadoop.tmp.dir下-->
? <property> ??
? ? <name>dfs.datanode.data.dir</name> ??
? ? <value>file:///opt/hadoop/hadoop-3.3.4/data/datanode</value> ? ?
? </property>? <!-- 副本數(shù)量配置 -->
? <property>
? ? <name>dfs.replication</name>
? ? <value>3</value>
? </property>
??
? <!--設(shè)置用戶的操作權(quán)限,false表示關(guān)閉權(quán)限驗(yàn)證,任何用戶都可以操作-->? ? ? ? ? ? ? ? ? ? ? ? ?
? <property> ??
? ? <name>dfs.permissions</name> ??
? ? <value>false</value> ??
? </property>
</configuration>
5、配置yarn-site.xml
? ? ? ? 編輯hadoop-3.3.4/etc/hadoop/yarn-site.xml
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
###提示:通過vi手工修改<configuration></configuration>中的內(nèi)容 ###
<configuration>
<!--開啟ResourceManager HA功能-->
? <property>
? ? <name>yarn.resourcemanager.ha.enabled</name>
? ? <value>true</value>
? </property>
??
? <!--標(biāo)志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>
??
? <!-- 設(shè)置YARN集群主角色運(yùn)行節(jié)點(diǎn)rm1-->
? <property>
? ? <name>yarn.resourcemanager.hostname.rm1</name>
? ? <value>node101.cc.local</value>
? </property>
??
? <!-- 設(shè)置YARN集群主角色運(yùn)行節(jié)點(diǎn)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重啟的功能,默認(rèn)為false-->
? <property>
? ? <name>yarn.resourcemanager.recovery.enabled</name>
? ? <value>true</value>
? </property>
??
? ?<!--用于ResouerceManager狀態(tài)存儲(chǔ)的類-->
? <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>
??
? <!-- 是否將對(duì)容器實(shí)施物理內(nèi)存限制 -->
? <property>
? ? <name>yarn.nodemanager.pmem-check-enabled</name>
? ? <value>false</value>
? </property>
??
? <!-- 是否將對(duì)容器實(shí)施虛擬內(nèi)存限制 -->
? <property>
? ? <name>yarn.nodemanager.vmem-check-enabled</name>
? ? <value>false</value>
? </property>
??
? <!-- 開啟日志聚集功能 -->
? <property>
? ? <name>yarn.log-aggregation-enable</name>
? ? <value>true</value>
? </property>
??
? <!-- 設(shè)置日志聚集服務(wù)器地址 -->
? <property>
? ? <name>yarn.log.server.url</name>
? ? <value>http://node101:19888/jobhistory/logs</value>
? </property>
??
? <!-- 設(shè)置日志保留時(shí)間為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
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
###提示:通過vi手工修改<configuration></configuration>中的內(nèi)容 ###
<configuration>
<!-- 設(shè)置MR程序默認(rèn)運(yùn)行模式,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>
? <!-- 歷史服務(wù)器端地址 -->
? <property>
? ? <name>mapreduce.jobhistory.address</name>
? ? <value>node101:10020</value>
? </property>
??
? <!-- 歷史服務(wù)器web端地址 -->
? <property>
? ? <name>mapreduce.jobhistory.webapp.address</name>
? ? <value>node101:19888</value>
? </property>
??
? <!-- map環(huán)境變量 -->
? <property>
? ? <name>mapreduce.map.env</name>
? ? <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
? </property>? <!-- reduce環(huán)境變量 -->
? <property>
? ? <name>mapreduce.reduce.env</name>
? ? <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
? </property>
</configuration>
7、配置works
### 在每個(gè)節(jié)點(diǎn)均執(zhí)行操作?###
### 配置 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
### 選擇任何一個(gè)節(jié)點(diǎn)上執(zhí)行均可,此次選擇在node1節(jié)點(diǎn)上執(zhí)行 ###
### 前提:已正常啟動(dòng)zookeeper ###
### 初始化zk ###
hdfs zkfc -formatZK
9、初始化namenode
### 每個(gè)節(jié)點(diǎn)分別啟動(dòng) journalnode ###
hdfs --daemon start journalnode### 初始化主namenode,此次選擇node1為主namenode ###
hdfs namenode -format### 啟動(dòng)主namenode ###
hdfs --daemon start namenode### 初始化從namenode,此次node2為從namenode?###
hdfs namenode -bootstrapStandby
10、啟動(dòng)/查看/停止服務(wù)
### 一鍵啟動(dòng)全部hadoop服務(wù)
### 一鍵啟動(dòng)選擇任何一個(gè)節(jié)點(diǎn)上執(zhí)行均可,此次選擇在node1節(jié)點(diǎn)上執(zhí)行 ###
start-all.sh
#一鍵啟動(dòng)HDFS
### 一鍵啟動(dòng)選擇任何一個(gè)節(jié)點(diǎn)上執(zhí)行均可,此次選擇在node1節(jié)點(diǎn)上執(zhí)行 ###
start-dfs.sh
#一鍵啟動(dòng)yarn
### 一鍵啟動(dòng)選擇任何一個(gè)節(jié)點(diǎn)上執(zhí)行均可,此次選擇在node1節(jié)點(diǎn)上執(zhí)行 ###
start-yarn.sh
#啟動(dòng)HDFS單個(gè)服務(wù)進(jìn)程
hdfs --daemon start namenode|datanode|journalnode|zkfc
# 啟動(dòng)YARN單個(gè)服務(wù)進(jìn)程
yarn --daemon start resourcemanager|nodemanager
#啟動(dòng)歷史服務(wù)進(jìn)程(這必須單獨(dú)啟動(dòng))
mapred --daemon start historyserver
#查看服務(wù)
jps
### 一鍵停止全部hadoop服務(wù)
### 一鍵停止選擇任何一個(gè)節(jié)點(diǎn)上執(zhí)行均可,此次選擇在node1節(jié)點(diǎn)上執(zhí)行 ###
stop-all.sh
#一鍵停止HDFS
### 一鍵停止選擇任何一個(gè)節(jié)點(diǎn)上執(zhí)行均可,此次選擇在node1節(jié)點(diǎn)上執(zhí)行 ###
stop-dfs.sh
#一鍵停止yarn
### 一鍵停止選擇任何一個(gè)節(jié)點(diǎn)上執(zhí)行均可,此次選擇在node1節(jié)點(diǎn)上執(zhí)行 ###
stop-yarn.sh
#停止HDFS單個(gè)服務(wù)進(jìn)程
hdfs --daemon stop namenode|datanode|journalnode|zkfc
# 停止YARN單個(gè)服務(wù)進(jìn)程
yarn --daemon stop resourcemanager|nodemanager
11、Web UI訪問
HDFS集群Web UI默認(rèn)端口9870,訪問地址為namenode的IP地址
node1:http://192.168.121.101:9870
node2:http://192.168.121.102:9870注意:
1、由于配置了HA高可用模式,所以每個(gè)namenode都可以打開,首頁會(huì)顯示namenoded的狀態(tài)是active或standby,當(dāng)通過Web UI去訪問hdfs目錄時(shí),必須選擇active的namenode;
2、在windows上使用web ui上傳文件時(shí),由于沒法識(shí)別node101.cc.local,node102.cc.local,node103.cc.local,所以上傳文件會(huì)失敗,只需要在windows的hosts文件加上對(duì)應(yīng)的解析就可以正常操作了。
Yarn集群WEB Ui默認(rèn)端口8088,訪問地址為resourcemanager的IP地址
node1:http://192.168.121.101:8088/
node2:http://192.168.121.102:8088/文章來源:http://www.zghlxwxcb.cn/news/detail-608728.html注意:只有一個(gè)resourcemanager是active的,當(dāng)訪問到從resourcemanager時(shí),頁面會(huì)自動(dòng)跳轉(zhuǎn)至active的resourcemanager的Web地址,但由于windows上沒法識(shí)別node101.cc.local,node102.cc.local,node103.cc.local,所以會(huì)造成頁面無法打開,只需要在windows的hosts文件加上對(duì)應(yīng)的解析就可以正常操作,或者直接打開active的resourcemanager的Web地址即可文章來源地址http://www.zghlxwxcb.cn/news/detail-608728.html
到了這里,關(guān)于Centos7 + Hadoop 3.3.4 HA高可用集群部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!