完全分布式平臺搭建
尚硅谷丨大資料Hadoop 3.x(2021全新升級/部署+原始碼+實戰)
1、基礎配置
-
配置ip
如果修改同個局域網下電腦時
首先將虛擬機改為橋聯
其次bootproto改為靜態
最后需要將他們配置到同一網段即IP地址第三項相同最后一項不同
網關號最后一位試試1和2vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
修改主機名稱并添加主機名稱映射


重啟reboot -
卸載虛擬機自帶jdk
-
重新安裝jdk
-
安裝hadoop
-
xshell遠程連接服務器通訊


2、設定檔案分發腳本xsync
-
在/home/mmm/路徑下新建檔案夾bin
-
向其中填入下列代碼
-
變換模式為可執行
-
將/home/mmm/bin填入環境變數確保任何情況下能夠使用
-
如果分發需要root權限檔案需要使用sudo xsync /home/mmm/xsync 檔案路徑
#!/bin/bash #1. 判斷引數個數 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍歷集群所有機器 for host in hadoop104 hadoop105 hadoop106 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 does not exists! fi done donechmod 777 xsync
3、為集群配置免密通訊
-
獲取自身公鑰私鑰
ssh-keygen -t rsa -
將自身公鑰私鑰發送給自身以及其他電腦
ssh-copy-id hadoop104 -
測驗是否配置成功
ssh hadoop105 -
其他電腦同樣進行配置
4、jdk與hadoop環境變數添加與分發
1、進入profile.d
cd /etc/profile.d/
2、新建my_env.sh用于存放環境變數
vim my_env.sh
3、向其中添加路徑
#JAVA_HOME
export JAVA_HOME=/home/mmm/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/home/mmm/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
4、分發至集群xsync my_env.sh
5、分別在每個服務器上重新載入環境變數
source /etc/profile
6、將hadoop與jdk分發至集群
5、集群引數配置
-
配置core-site.xml
進入hadoop安裝路徑/etc/hadoop
編輯core-site.xmlvim core-site.xml在configuration中添加如下設定
注意縮進以及對主機名稱的修改<!-- 指定NameNode 的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop104:8020</value> </property> <!-- 指定hadoop資料的存盤目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/home/mmm/module/hadoop-3.1.3/data</value> </property> <!-- 配置HDFS網頁登錄使用的靜態用戶為mmm --> <property> <name>hadoop.http.staticuser.user</name> <value>mmm</value> </property> -
配置hdfs-site.xml
同樣在configuration中插入如下引數
注意修改主機名稱<!-- nn web端訪問地址--> <property> <name>dfs.namenode.http-address</name> <value>hadoop104:9870</value> </property> <!-- 2nn web 端訪問地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop106:9868</value> </property> -
配置yarn-site.xml
同樣在configuration中插入如下引數
注意修改主機名稱<!-- 指定MR走shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop105</value> </property> <!-- 環境變數的繼承 --> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP RED_HOME</value> </property> <!-- 開啟日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 設定日志聚集服務器地址 --> <property> <name>yarn.log.server.url</name> <value>http://hadoop105:19888/jobhistory/logs</value> </property> <!-- 設定日志保留時間為 7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> -
配置mapred-site.xml
同樣在configuration中插入如下引數
注意修改主機名稱<property> <name>mapreduce.jobhistory.address</name> <value>hadoop104:10020</value> </property> <!-- 歷史服務器 web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop104:19888</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/home/mmm/module/hadoop-3.1.3/etc/hadoop:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/*</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=/home/mmm/module/hadoop-3.1.3/etc/hadoop:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/*</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=/home/mmm/module/hadoop-3.1.3/etc/hadoop:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/common/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/hdfs/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/mapreduce/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/lib/*:/home/mmm/module/hadoop-3.1.3/share/hadoop/yarn/*</value> </property> -
配置workers
同樣進入當前目錄workers
將其中localhost洗掉并添加集群所有主機名稱hadoop104 hadoop105 hadoop106 -
將etc/hadoop檔案夾分發至所有服務器
xsync hadoop安裝路徑/etc/hadoop -
初始化集群
hdfs namenode -format
6、集群啟動、查詢狀態與關閉
-
撰寫啟動腳本
進入home/mmm/bin檔案夾下創建myhadoop.sh腳本添加下列代碼
注意修改主機名稱
變換為可執行模式chmod 777 myhadoop.sh#!/bin/bash if [ $# -lt 1 ] then echo "No Args Input..." exit; fi case $1 in "start") echo " =================== 啟動 hadoop 集群 ===================" echo " --------------- 啟動 hdfs ---------------" ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/sbin/start-dfs.sh" echo " --------------- 啟動 yarn ---------------" ssh hadoop105 "/home/mmm/module/hadoop-3.1.3/sbin/start-yarn.sh" echo " --------------- 啟動 historyserver ---------------" ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/bin/mapred --daemon start historyserver" ;; "stop") echo echo " =================== 關閉 hadoop 集群 ===================" echo " --------------- 關閉 historyserver ---------------" ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver" echo " --------------- 關閉 yarn ---------------" ssh hadoop105 "/home/mmm/module/hadoop-3.1.3/sbin/stop-yarn.sh" echo " --------------- 關閉 hdfs ---------------" ssh hadoop104 "/home/mmm/module/hadoop-3.1.3/sbin/stop-dfs.sh" ;; *) echo "Input Args Error..." ;; esac -
撰寫狀態查詢腳本jpsall
變換為可執行模式chmod 777 jpsall#!/bin/bash for host in hadoop101 hadoop102 hadoop103 do echo =============== $host =============== ssh $host jps done -
啟動集群終端輸入myhadoop.sh start
-
查詢集群狀態終端輸入jpsall
顯示狀態如下

-
關閉集群終端輸入myhadoop.sh stop
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/274532.html
標籤:其他
下一篇:H5新特性
