1.第一個demo
使用hadoop的mapReduce自帶的demo程式統計單詞出現的次數
建立檔案wcinput
Bash
複制代碼
echo 123 aa bb > wcinput
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount wcinput ./wcoutput
檢視結果
cat wcoutput/part-r-00000
2.配置三台伺服器分發腳本
- 分發腳本
#!/bin/bash
#1. 判斷參數個數
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 周遊叢集所有機器
for host in hadoop17 hadoop18 hadoop19
do
echo ===============$host============
#3. 周遊每個參數中的目錄
for file in $@
do
#4.判斷檔案是否存在
if [ -e $file ]
then
#5.擷取檔案的父目錄
pdir=$(cd -P $(dirname $file); pwd)
#6.擷取目前檔案的名稱
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file is not exist!
fi
done
done
存放至usr/local/bin下
- 配置ssh免密登入
#生成rsa密鑰對
ssh-keygen -t rsa
#同步ssh公鑰
ssh-copy-id hadoop17
ssh-copy-id hadoop18
ssh-copy-id hadoop19
需要現在/etc/hosts中配置hadoop17/18/19的ip位址
3.叢集配置
3.1 叢集規劃
hadoop17 | hadoop18 | hadoop19 | |
HDFS | NAMENODE,DATANODE | DATANODE | SECONDNAMENODE,DATANODE |
YARN | NODEMANAGER | RESOURCEMANAGER,NODEMANAGER |
3.2 叢集配置
叢集配置,參照上述規劃配置:
3.2.1 根據叢集規劃,配置HDFS和YARN
配置HDFS的NameNode,DataNode
cd /opt/module/hadoop-3.3.1/etc/hadoop
vim core-site.xml
# 在configuration中增加如下配置
<!-- 配置NameNode的位址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop17:8020</value>
</property>
<!-- 配置hadoop的資料存儲目錄 -->
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.3.1/data</value>
vim hdfs-site.xml
<!-- 配置nn web通路位址 -->
<name>dfs.namenode.http-address</name>
<value>hadoop17:9870</value>
<!-- 配置2nn web通路位址 -->
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop19:9868</value>
vim yarn-site.xml
<!-- 指定MR走shuffle -->
<name>yarn.namemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<!-- 指定ResourceManager位址 -->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop18</value>
vim mapred-site.xml
<!-- 指定MR運作在yarn上 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
上述配置在hadoop17節點進行,然後分發至其他兩台伺服器
xsync hadoop/
3.2.2 配置workers
vim workers
#配置17/18/19
3.2.3 初始化HDFS
隻有第一次啟動時需要初始化
hdfs namenode -format
3.2.4 啟動HDFS叢集
sbin/start-dfs.sh
啟動報錯,ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
使用root使用者,需要配置如下環境變量:
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
# 在系統變量中配置或者在 啟動/停止腳本中配置 sbin/start-dfs.sh sbin/stop-dfs.sh
叢集啟動成功的标志:
- 三台伺服器 jps可以看到啟動的服務
- web通路 http://192.168.164.17:9870/
-
- 記得關閉防火牆或修改防火牆政策
3.2.5 啟動yarn叢集
根據yarn叢集規劃,RM在18節點
cd /opt/module/hadoop-3.3.1/sbin/
start-yarn.sh
驗證yarn叢集啟動成功的兩種方式:
- 三台伺服器 jps可以看到啟動的服務,檢視是否包含RM/NM
- http://192.168.164.18:8088/
-
- 記得關閉18節點防火牆或者修改防火牆政策