快速搭建Hadoop集羣
1.環境準備
主機 | 從機 | 從機 | |
---|---|---|---|
主機名 | hadoop201 | hadoop202 | hadoop203 |
hostname | hadoop201 | hadoop202 | hadoop203 |
IP地址 | 192.168.153.201 | 192.168.153.202 | 192.168.153.203 |
用戶名 | zhangyong | zhangyong | zhangyong |
內存大小 | /boot 200M /swap 2048M / 剩餘空間 |
/boot 200M /swap 2048M / 剩餘空間 |
/boot 200M /swap 2048M / 剩餘空間 |
防火牆 | service iptables stop chkconfig iptables off(開機關閉) |
service iptables stop chkconfig iptables off |
service iptables stop chkconfig iptables off |
網路配置 | ONBOOT=yes BOOTPROTO=static IPADDR=192.168.153.201 GATEWAY=192.168.153.2 NETMASK=255.255.255.0 DNS1=114.114.114.114 DNS2=8.8.8.8 |
ONBOOT=yes BOOTPROTO=static IPADDR=192.168.153.202 GATEWAY=192.168.153.2 NETMASK=255.255.255.0 DNS1=114.114.114.114 DNS2=8.8.8.8 |
ONBOOT=yes BOOTPROTO=static IPADDR=192.168.153.202 GATEWAY=192.168.153.2 NETMASK=255.255.255.0 DNS1=114.114.114.114 DNS2=8.8.8.8 |
2.配置基本信息
- 配置/etc/hosts
vim /etc/hosts
192.168.153.201 hadoop201
192.168.153.202 hadoop202
192.168.153.203 hadoop203
- 配置這個用戶爲sudoers
vim /etc/sudoers
在root ALL=(ALL) ALL
添加zhangyong ALL=(ALL) NOPASSWD:ALL
保存時wq!強制保存
- 在/opt目錄下創建兩個文件夾module和software,並把所有權賦給zhangyong
mkdir /opt/module /opt/software
chown zhangyong:zhangyong /opt/module /opt/software
- 文件分發腳本xsync
#!/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 -av $pdir/$fname $user@hadoop$host:$pdir
done
- 更改權限和拷貝
chmod +x xsync 更改執行權限
sudo cp xsync /bin 拷貝xsync到根目錄的bin下
sudo xsync /bin/xsync 把腳本分發到其他機子上
- 如果沒有rsync環境執行下面兩句
yum -y install rsync
yum install openssh-clients -y
- 配置免密登陸
1. 生成密鑰對
ssh-keygen -t rsa 三次回車
2. 發送公鑰到本機
ssh-copy-id hadoop201 輸入一次密碼
3. 分別ssh登陸一下所有虛擬機
ssh hadoop202
exit
ssh hadoop203
exit
4. 把/home/zhangyong/.ssh 文件夾發送到集羣所有服務器
xsync /home/zhangyong/.ssh
-
在一臺機器上安裝Java和Hadoop,並配置環境變量,並分發到集羣其他機器
-
拷貝文件到/opt/software,兩個tar包,並且解壓到/opt/module
tar -zxf hadoop-2.7.2.tar.gz -C /opt/module tar -zxf jdk-8u144-linux-x64.tar.gz -C /opt/module
-
sudo vim /etc/profile 在文件末尾添加
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 #HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
-
-
更新配置文件,查看JDK和hadoop是否安裝成功
source /etc/profile java -version hadoop version
-
分發軟件和配置文件到hadoop202、203並在其他兩個機子上更新配置文件
sudo xsync /etc/profile sudo xsync /opt/module 在其他機器分別執行 source /etc/profile
3. 配置Hadoop文件
-
所有配置文件都在$HADOOP_HOME/etc/hadoop
- 配置hadoop-env.sh,yarn-env.sh,mapred-env.sh文件,配置Java_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
- 配置Core-site.xml
<!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop201: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>hadoop203: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>hadoop202</value> </property> <!-- 日誌聚集功能使能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日誌保留時間設置7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
- 配置mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 歷史服務器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop203:10020</value> </property> <!-- 歷史服務器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop203:19888</value> </property>
- 配置Slaves
hadoop201 hadoop202 hadoop203
- 分發配置文件
xsync /opt/module/hadoop-2.7.2/etc
- 格式化Namenode 在hadoop201(只能格式化一次,如需格式化第二次,刪除data和logs包)
hdfs namenode -format
- 在hadoop201上啓動hdfs
start-dfs.sh
- 在Hadoop202上啓動yarn
start-yarn.sh
- 在Hadoop203啓動歷史服務器
mr-jobhistory-daemon.sh start historyserver
- 測試集羣是否搭建成功
mkdir input 在hadoop的安裝目錄創建文件夾 vim input/input 在input/inout填寫一下內容 abc hadoop fs -put input / 上傳到HDFS上 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output
- 至此環境搭建完成,關閉服務
stop-dfs.sh 在hadoop201執行 stop-yarn.sh 在hadoop202執行 mr-jobhistory-daemon.sh start historyserver 在hadoop203執行