HDFS完全分散式搭建
阿新 • • 發佈:2021-11-04
1. 啟動zookeeper
沒有問題
2. 上傳hadoop安裝包
解壓,如圖。
3. 節點功能分配
NameNode1 | NameNode2 | DataNode | Zookeeper | ZKFC | JournalNode | |
---|---|---|---|---|---|---|
Node1 | 是 | 是 | 是 | 是 | 是 | |
Node2 | 是 | 是 | 是 | 是 | 是 | |
Node3 | 是 | 是 | 是 |
4. 準備安裝環境
```shell [root@BaseNode opt]# ls apache-tomcat-18080 hadoop-3.1.2 zook apache-tomcat-8080 nginx zook [root@BaseNode opt]# cd hadoop-3.1.2/etc/hadoop/ [root@BaseNode hadoop]#
5. 修改叢集環境
[root@BaseNode hadoop]# vim hadoop-env.sh
由於通過SSH遠端啟動程序的時候預設不會載入/etc/profile設定,JAVA_HOME變數就載入不到,需要手動指定。在最後一行追加:
export JAVA_HOME=/usr/java/jdk1.8.0_131
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export export HDFS_SECONDARYNAMENODE_USER=root
6. 修改配置檔案
vim /opt/hadoop-3.1.2/etc/hadoop/core-site.xml
追加到configuration標籤中間
<configuration> <!-- 指定訪問HDFS的時候路徑的預設字首 / hdfs://node1:9000/ --> <property> <name>fs.defaultFS</name> <value>hdfs://zkbase:9000</value> </property> <!-- 指定hadoop的臨時目錄位置,它會給namenode、secondarynamenode以及datanode的儲存目錄指定字首 --> <property> <name>hadoop.tmp.dir</name> <value>/var/bdp/hadoop/full</value> </property> </configuration>
[root@BaseNode hadoop]# vim hdfs-site.xml
<configuration>
<!--宣告日誌node-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>zknode1:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>zknode1:50091</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>zknode1:50093</value>
</property>
<!--宣告副本數量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
[root@BaseNode hadoop]# vim workers
BaseNode
zknode1
zknode2
zkNode3
~
7. SCP Hadoop到其他三臺主機
8. 修改四臺主機的/etc/profile檔案
export HADOOP_HOME=/opt//hadoop-3.1.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin/$PATH
source /etc/profile
9. 格式化namenode
在basenode上面,hdfs namenode -format
10. 啟動下,start-dfs.sh,然後訪問jps
啊偶,失敗了
許可權不足的原因,來,我們著手解決。
設定免密
ssh-copy-id -i ~/.ssh/id_rsa.pub <ip>
啟動成功
大功告成!