首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Hadoop 2.7.1 叢集搭建全紀錄:從單機配置到三節點分散式驗證

     編輯:Java 綜合教學

Hadoop 2.7.1 叢集搭建全紀錄:從單機配置到三節點分散式驗證

記錄一次在 VirtualBox 中搭建 Hadoop 2.7.1 三節點叢集(1 Master + 2 Slave)的完整流程,採用「先配好一台 → 複製虛擬機 → 調整網路/主機名/SSH」的高效策略,避開常見坑點(JDK 位數、原生庫、權限、防火牆)。

一、核心原則與避坑清單

  • JDK 必須 64 位:32 位 JDK 導致 Hadoop 原生庫 libhadoop.so 無法載入,編譯極其耗時。
  • 單機配妥再複製:安裝 JDK、Hadoop、配置環境變數、core-site.xml/hdfs-site.xml/yarn-site.xml/mapred-site.xml、masters/slaves,再克隆。
  • 檔案擁有者一致:sudo chown -R hadoop:hadoop /opt/hadoop(依實際用戶調整)。
  • 關閉防火牆/SELinux:service iptables stop、setenforce 0。

二、準備檔案與基礎環境

  • JDK 1.7/1.8 64 位 .tar.gz
  • Hadoop 2.7.1 .tar.gz
  • CentOS 6.5/7.x 64 位 ISO
  • VirtualBox + 虛擬機網路模式設為 Host-Only 或 NAT + Port Forwarding,確保節點互通。

三、單機配置關鍵步驟

  1. 解壓 JDK、Hadoop 至 /opt,建立軟連結 /opt/jdk、/opt/hadoop。
  2. ~/.bashrc 設定環境變數:
export JAVA_HOME=/opt/jdk
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 核心配置檔($HADOOP_HOME/etc/hadoop/):
# core-site.xml

    fs.defaultFShdfs://master:9000
    hadoop.tmp.dir/opt/hadoop/tmp


# hdfs-site.xml

    dfs.replication2
    dfs.namenode.name.dir/opt/hadoop/dfs/name
    dfs.datanode.data.dir/opt/hadoop/dfs/data


# yarn-site.xml

    yarn.resourcemanager.hostnamemaster
    yarn.nodemanager.aux-servicesmapreduce_shuffle


# mapred-site.xml (cp mapred-site.xml.template)

    mapreduce.framework.nameyarn


# masters
master

# slaves
slave1
slave2

四、虛擬機複製與網路調整

  1. VirtualBox → 右鍵虛擬機 → Clone → 選 Full Clone + Reinitialize MAC addresses → 建立 slave1、slave2。
  2. 修改各節點 /etc/hostname:master、slave1、slave2。
  3. 修改三台 /etc/hosts:
192.168.56.101 master
192.168.56.102 slave1
192.168.56.103 slave2
  1. 重啟網路服務或重開機生效。

五、SSH 免密碼互信(Master → 所有節點含自身)

# 在 master 上執行
ssh-keygen -t rsa -P ''  # 一路 Enter
ssh-copy-id hadoop@master
ssh-copy-id hadoop@slave1
ssh-copy-id hadoop@slave2

# 驗證
ssh slave1  # 應直接登入無需密碼

SSH 免密配置過程

六、格式化 NameNode 與啟動叢集

# 僅首次執行
hdfs namenode -format

# 啟動所有服務(HDFS + YARN)
start-all.sh
# 或分開啟動(推薦)
start-dfs.sh
start-yarn.sh

七、驗證叢集狀態

1. jps 檢查進程

# master
5858 ResourceManager
5706 SecondaryNameNode
5514 NameNode
6108 Jps

# slave1
3786 Jps
3646 NodeManager
3535 DataNode

# slave2
3796 Jps
3621 NodeManager
3510 DataNode

2. Web UI 訪問

  • NameNode: https://master:50070(查看 DataNode 狀態、區塊分布)
  • ResourceManager: https://master:8088(查看 NodeManager、應用提交)

NameNode Web UI DataNode 列表 ResourceManager UI

八、常見問題速查

現象可能原因解決
DataNode 啟動即停hostname/hosts 不匹配、防火牆、SSH 不通檢查 hosts、關閉防火牆、驗證 SSH
NameNode 格式化失敗目錄權限、磁碟空間、tmp 目錄殘留刪除 tmp/dfs 目錄重試、確認權限
原生庫警告32 位 JDK換裝 64 位 JDK
Web UI 打不開端口未開放、綁定 0.0.0.0配置 dfs.namenode.http-address、防火牆

九、總結

「單機配妥 → 複製 → 改網路/主機名/SSH」是搭建 Hadoop 叢集最高效的路徑。關鍵在於 JDK 64 位、hosts 互解、SSH 免密、目錄權限 四大基石。驗證以 jps 進程齊全 + Web UI 可訪問為準。後續可擴展至 HA、Federation、Kerberos 安全模式等進階架構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved