Hadoop叢集搭建之完全分散式搭建
阿新 • • 發佈:2022-03-01
1. Hadoop叢集搭建的三種模式
- 本地執行模式
無需執行任何守護進行,所有程式都在單個JVM上執行 - 偽分散式執行模式
Hadoop對應的Java程序都執行在一個物理機器上 - 完全分散式執行模式
Hadoop對應的Java程序都執行在多臺物理機器上
2. 具體步驟及解釋
1. 準備安裝環境
# 將hadoop-3.1.2.tar.gz從官網上下載,上傳到/opt目錄,解壓,刪除
tar -zxvf hadoop-3.1.2.tar.gz
rm -rf hadoop-3.1.2.tar.gz
2. 修改叢集環境
cd /opt/hadoop3.1.2/etc/hadoop
- 配置檔案之
hadoop-env.sh
作用:配置環境變數
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE=root
export HDFS_SECONDARYNAMENODE_USER=root
- 配置檔案之
coer-site.xml
作用如下:
寫到configuration標籤中 <property> <name>fs.defaultFS</name> # 如果hdfs-site.xml中不配置namenode和datanode存放檔案的位置,預設就放在這個路徑中 <value>hdfs://node001:9000</value> </property> <property> <name>hadoop.tmp.dir</name> # hadoop檔案系統依賴的基礎配置,很多路徑都依賴他 <value>/var/bdp/hadoop/full</value> </property>
- 配置檔案之
hdfs-site.xml
作用如下:
<property> <name>dfs.namenode.secondary.http-address</name> # 配置SNN的web地址 <value>node002:50090</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> # 配置SNN的web地址 <value>node002:50091</value> </property> <property> <name>dfs.replication</name> # 配置副本的數量,一般最小值為3,否則會影響到資料的可靠性 <value>2</value> </property>
- 配置檔案之
workers
node001
node002
node003
- 拷貝分發軟體
cd /opt/
scp -r hadoop-3.1.2 node002:/opt/
scp -r hadoop-3.1.2 node003:/opt/
- 修改環境變數
vim /etc/profile
export HADOOP_HOME=/opt/hadoop-3.1.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
scp /etc/profile node002:/etc/
scp /etc/profile node003:/etc/
ssh root@node002 "source /etc/profile"
ssh root@node003 "source /etc/profile"
3. 關於SSH免密碼登入
私鑰:金鑰留在本機
公鑰:金鑰留在本機
node001:
生成金鑰:
ssh-keygen -t rsa(金鑰存放位置:/root/.ssh , id_rsa私鑰, id_rsa.pub公鑰)
傳送私鑰(本機):
ssh-copy-id localhost(需要輸入node001結點的密碼)
傳送公鑰(其他計算機node002):
ssh-copy-id node002(需要輸入node001結點的密碼)
傳送公鑰(其他計算機node003):
ssh-copy-id node003(需要輸入node003結點的密碼)
測試免金鑰登入;
ssh localhost
ssh node002
ssh node003
4. 格式化NameNode
hdfs namenode -format
start-dfs.sh
5. 測試叢集
在瀏覽器中輸入192.168.200.1 32:9870或192.168.200.135:50091
6. 關閉叢集
stop-dfs.sh
本文來自部落格園,作者:jsqup,轉載請註明原文連結:https://www.cnblogs.com/jsqup/p/15952611.html