時雨のNOIP2021退役記
一、 準備工作
伺服器
伺服器 |
IP |
說明 |
hadoop01 |
192.168.110.121 |
節點1 |
hadoop02 |
192.168.110.122 |
節點2 |
hadoop03 |
192.168.110.123 |
節點3 |
軟體版本
項 |
說明 |
Linux Server |
CentOS 7 |
hadoop-2.7.3 |
2.7.3 |
zookeeper |
3.5.9 |
JDK |
1.8-202 |
Linux操作使用者:tom
二、 免密登入
l 通用操作(3臺伺服器均要操作)
#生成公鑰(連續4次回車)
ssh-keygen -t rsa
#配置本機免密ssh登入
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#手動ssh登入本機一次,第一次需要輸入密碼,以後就不用了
ssh hadoop01
l 配置hadoop01節點ssh免密碼登入其餘節點
#在hadoop01節點執行如下命令
ssh-copy-id hadoop02
ssh-copy-id hadoop03
#在hadoop01節點分別ssh登入其他節點一次,第一次需要輸入密碼,以後就不用了
ssh hadoop02
ssh hadoop03
三、 Hadoop叢集搭建
l 依賴環境
JDK1.8、zookeeper3.5.9,見本人另外隨筆
l 安裝步驟
#建立目錄
mkdir -p /home/tom/app/hadoop/data
mkdir -p /home/tom/app/hadoop/logs
#解壓到app目錄
tar -zxvf hadoop-2.6.0-cdh5.16.2.tar.gz -C /home/tom/app/hadoop
#設定系統環境變數
vim ~/.bash_profile
#新增如下環境變數
export HADOOP_HOME=/home/tom/app/hadoop/hadoop-2.6.0-cdh5.16.2
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH
# 重新整理檔案
source ~/.bash_profile
#校驗命令
hadoop version
yarn version
l 修改配置檔案
配置檔案路徑:$HADOOP_HOME/etc/hadoop
主要的修改的配置檔案包括:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves、hadoop-env.sh等
- hadoop-env.sh
# 修改如下
export JAVA_HOME= /home/tom/app/jdk1.8.0_202
# 日誌路徑,方便在叢集啟動失敗時檢視日誌,查詢原因
export HADOOP_LOG_DIR=/home/tom/app/hadoop/logs
- core-site.xml
#修改如下
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/tom/app/hadoop/data/tmp</value>
</property>
</configuration>
- hdfs-site.xml
# 修改如下
<property>
<name>dfs.name.dir</name>
<value>/home/tom/app/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/tom/app/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.tmp.dir</name>
<value>/home/tom/app/hadoop/data/dfstmp</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
#去掉許可權驗證,防止其他地方呼叫hdfs的時候出現使用者許可權問題,該屬性可根據實際情況選擇是否增加
<property>
<name>dfs. permissions</name>
<value>false</value>
</property>
- mapred-site.xml
#修改資源排程
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- yarn-site.xml
# 設定 yarn 上支援執行的服務和環境變數白名單
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
</configuration>
- slaves
vi slaves
#配置子節點,增加如下
hadoop01
hadoop02
hadoop03
# hadoop01在這裡既是主節點,又是從節點
l 另外兩臺伺服器上搭建Hadoop環境
用scp命令直接將改好的檔案拷貝過去
scp -r hadoop/ @hadoop02:/home/tom/app/
scp -r hadoop/ @hadoop03:/home/tom/app/
scp -r ~/.bash_profile @kakfa02:~/
scp -r ~/.bash_profile @kakfa03:~/
另外兩臺伺服器重新整理環境變數
source ~/.bash_profile
四、 啟動Hdfs叢集
l 前置條件
先啟動zookeeper
l 格式化namenode
#hadoop01上執行格式化命令
hdfs namenode -format
# 注意有如下資訊則格式化成功
has been successfully formatted.
l 啟動叢集
#hadoop01上執行格式化命令
start-dfs.sh
#通過jps命令檢視
可以看見hadoop01主節點上開啟了一個namenode和datanode,
另外兩個節點的datanode都也啟起了,
這時,我們也可以在windows機器上通過瀏覽器來檢視叢集的情況:
在瀏覽器中輸入hadoop01:50070即可:(注意修改win電腦的hosts檔案,新增主機名與ip地址的對應關係,可以直接使用ip+埠的形式)
注意50070埠如對外開放,請加入防火牆開放策略
#開放埠(只需在hadoop01)
firewall-cmd --add-port=50070/tcp --permanent
#重新載入防火牆配置
firewall-cmd --reload
#檢視開發埠:
firewall-cmd --list-ports
l 啟動Yarn叢集
#在hadoop叢集中,yarn扮演的是一個叢集資源的管理與排程這麼一個角色
#hadoop01上執行如下命令
start-yarn.sh
#通過jps命令檢視
可以看見,主節點多了兩個程序出來,resourcemanager 和nodemanager,其餘從節點多了nodemanger,,這個就是管理各個節點的資源的程序,都出現了,就說明啟動成功,yarn也提供了web端,埠是8088,在瀏覽器輸入hadoop01:8088即可
#執行一個簡單的作業,測試一下
# 可以在命令面板或者瀏覽器輸入hadoop01:8088檢視結果(注意防火牆開放埠,參照上一步)