資料來源,阿裡雲大資料開發學習視訊
分析:
1)準備3台客戶機(關閉防火牆、靜态ip、主機名稱,hosts配置)
2)安裝JDK
3)配置環境變量
4)安裝Hadoop
5)配置環境變量
6)配置叢集
7)單點啟動
8)配置ssh
9)群起并測試叢集
4.3.1虛拟機準備
4.3.2編寫叢集分發腳本xsync
1.scp(securecopy)安全拷貝
(1)scp定義:
scp可以實作伺服器與伺服器之間的資料拷貝。(fromserver1toserver2)
(2)基本文法
scp-r$pdir/[email protected]$host:$pdir/$fname
指令遞歸要拷貝的檔案路徑/名稱目的使用者@主機:目的路徑/名稱
2.rsync主要用于備份和鏡像。具有速度快、避免複制相同内容和支援符号連結的優點。
rsync和scp差別:用rsync做檔案的複制要比scp的速度快,rsync隻對差異檔案做更
新。scp是把所有檔案都複制過去。
(1)基本文法
rsync-rvl$pdir/[email protected]$host:$pdir/$fname
指令選項參數要拷貝的檔案路徑/名稱目的使用者@主機:目的路徑/名稱
(2)需求分析:
(a)rsync指令原始拷貝:
rsync -rvl /opt/module [email protected]:/opt/
(b)期望腳本:
xsync要同步的檔案名稱
(c)說明:在/home/hadoop/bin這個目錄下存放的腳本,hadoop使用者可以在系統
任何地方直接執行。
#!/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`
echopdir=$pdir
#4擷取目前使用者名稱
user=`whoami`
#5循環
for((host=133;host<135;host++));do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname [email protected]$host:$pdir
done
(b)修改腳本xsync具有執行權限
chmod 777 xsync
(c) 調用同步腳本
xsync/home/atguigu/bin
4.3.3叢集配置
1.叢集部署規劃(hdfs初始化在Hadoop132,yarn啟動在Hadoop133)
HADOOP132 | HAdoop133 | HAdoop133 | |
HDFS | DataNode NameNode | DataNode | DataNode SecondaryNameNode |
YARN | NodeManager | ResourceManager NodeManger | NodeManager |
2.配置叢集(在Hadoop的etc/hadoop 裡面)
(1)核心配置檔案
配置core-site.xml
<configuration>
<!--指定HDFS中NameNode的位址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop132:9000</value>
</property>
<!--指定Hadoop運作時産生檔案的存儲目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
(2)HDFS配置檔案
配置hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_241
配置hdfs-site.xml
<configuration>
<!--指定HDFS副本的數量可省略,預設為3-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定Hadoop輔助名稱節點主機配置-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop134:50090</value>
</property>
</configuration>
(3)YARN配置檔案
配置yarn-env.sh
export JAVA_HOME=/opt/jdk1.8.0_241
配置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>hadoop133</value>
</property>
3.在叢集上分發配置好的Hadoop配置檔案
xsync /opt/module/hadoop-2.7.2/
4.3.4叢集單點啟動
(1)如果叢集是第一次啟動,需要格式化NameNode
4.3.4叢集單點啟動
(1)如果叢集是第一次啟動,需要格式化NameNode
(2)在hadoop132上啟動NameNode
hadoop-daemon.sh start namenode
(3)在hadoop132、hadoop133以及hadoop134上分别啟動DataNode
hadoop-daemon.sh start datanode
4.3.5SSH無密登入配置(叢集群起準備)
(1)免密登入原理

(2)生成公鑰和私鑰:
進入.ssh 目錄(在目前使用者) ssh-keygen -t rsa
然後敲(三個回車),就會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
(3)将公鑰拷貝到要免密登入的目标機器上
ssh-copy-id hadoop132
ssh-copy-id hadoop133
ssh-copy-id hadoop134
還需要在hadoop132上采用root賬号,配置一下無密登入到hadoop132、hadoop133、
hadoop134;
還需要在hadoop133上采用hadoop賬号配置一下無密登入到hadoop132、hadoop133、
hadoop134伺服器上。
4.3.6群起叢集
1.配置slaves
vi /opt/module/hadoop-2.7.2/etc/hadoop/slaves
加入以下内容
hadoop132
hadoop133
hadoop134
同步所有節點配置檔案
xsync slaves
2.啟動叢集
(1)如果叢集是第一次啟動,需要格式化NameNode(注意格式化之前,一定要先停止上次啟動的所有namenode和datanode程序,然後再删除data和log資料)
(2)啟動HDFS(hadoop 132) start-dfs.sh
(3)啟動YARN(hadoop133) start-yarn.sh
與設計一樣,打工告成.
本文章隻對關鍵部分進行記錄,具體的參考檔案,原檔案是存放在阿裡雲上面,