- 使用的是三臺雲服務器,兩臺騰訊雲,一臺華爲雲,使用的系統爲centos6.8
- 遇到的坑有點多,所以記錄下來,防止自己忘記,也給大家一個參考
前期準備
hadoop和jdk的tar解壓
jdk和hadoop的環境變量配置
vim /etc/profile
##JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
#export JAVA_HOME=/opt/module/jdk-11
#export PATH=$PATH:$JAVA_HOME/bin
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
- 特別注意的:在/etc/hosts設置本地解析時,本機雲服務器設置爲內網ip,其他爲公網ip
爲了同時更新方便,可使用集羣的腳本文件執行 - 創建一個xsync的shell文件
#!/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=103; host<105; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
集羣配置
添加jdk環境的文件
hadoop-env.sh
yarn-env.sh
mapred-env.sh
core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定Hadoop運行時產生文件的存儲目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop輔助名稱節點主機配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
yarn-site.xml
<!-- Reducer獲取數據的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
mapred-site.xml
<!-- 指定MR運行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
格式化namenode
hadoop namenode -format
SSH無密登陸配置
- 生產公鑰和私鑰
ssh-keygen -t rsa
- 將公鑰拷貝到需要免密的服務器
ssh-copy-id [服務器ip]
記得設置slaves文件,同步配置
集羣啓動
hdfs啓動 / 關閉
start-dfs.sh / stop-dfs.sh
yarn啓動 / 關閉
start-yarn.sh / stop-yarn.sh