溫馨提示×

Ubuntu上Hadoop集群怎么搭建

小樊
51
2025-10-06 07:34:00
欄目: 智能運維

Ubuntu上搭建Hadoop集群詳細步驟

1. 環境準備

  • 節點規劃:至少準備2臺Ubuntu機器(1臺Master節點、1臺及以上Slave節點),建議使用Ubuntu 22.04及以上穩定版本。
  • 網絡配置:所有節點需在同一局域網內,能通過ping命令互相訪問(如ping master-node-ip)。
  • 硬件要求:每臺機器至少2核CPU、4GB內存、50GB可用磁盤空間(生產環境需更高配置)。

2. 安裝Java環境

Hadoop依賴Java運行環境,推薦使用OpenJDK 8或11(兼容性更好):

# 更新軟件包索引
sudo apt update
# 安裝OpenJDK 11(Ubuntu 22.04默認倉庫版本)
sudo apt install -y openjdk-11-jdk
# 驗證安裝(輸出版本信息即為成功)
java -version

注意:后續配置Hadoop時需確認JAVA_HOME路徑(如/usr/lib/jvm/java-11-openjdk-amd64)。

3. 配置SSH無密碼登錄

Hadoop集群節點間需通過SSH通信,配置無密碼登錄可避免重復輸入密碼:

# 1. 在Master節點生成SSH密鑰對(默認保存在~/.ssh目錄)
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
# 2. 將公鑰復制到所有Slave節點(替換user為用戶名,slave-ip為Slave節點IP)
ssh-copy-id user@slave-ip
# 3. 測試無密碼登錄(從Master到Slave)
ssh user@slave-ip
# 輸入`exit`退出Slave節點

提示:若需Master節點自身也能無密碼登錄,可將公鑰復制到自身(ssh-copy-id user@master-ip)。

4. 下載并解壓Hadoop

從Apache官網下載穩定版本的Hadoop(如3.3.6),解壓到指定目錄:

# 創建Hadoop安裝目錄
sudo mkdir -p /usr/local/hadoop
# 下載Hadoop(以3.3.6為例,可通過清華鏡像加速)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
# 解壓到安裝目錄
sudo tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local/hadoop --strip-components=1
# 修改目錄所有者(替換hadoop為你的用戶名)
sudo chown -R hadoop:hadoop /usr/local/hadoop

驗證:進入Hadoop目錄,查看版本信息:

cd /usr/local/hadoop
./bin/hadoop version

5. 配置Hadoop環境變量

編輯~/.bashrc文件,添加Hadoop和Java的環境變量:

nano ~/.bashrc

在文件末尾添加以下內容(根據實際路徑調整):

# Java環境變量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
# Hadoop環境變量
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使配置生效:

source ~/.bashrc

驗證:終端輸入hadoop version,顯示版本信息即為成功。

6. 配置Hadoop核心文件

進入Hadoop配置目錄($HADOOP_HOME/etc/hadoop),修改以下關鍵文件:

(1) core-site.xml

配置HDFS的默認文件系統和臨時目錄:

<configuration>
    <!-- 指定HDFS的NameNode地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master-node-ip:9000</value>
    </property>
    <!-- Hadoop臨時目錄(需提前創建) -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>

(2) hdfs-site.xml

配置HDFS的副本數和數據存儲目錄:

<configuration>
    <!-- 數據副本數(集群節點數≥3時設為3,否則設為1) -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- NameNode數據存儲路徑(需提前創建) -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value>
    </property>
    <!-- DataNode數據存儲路徑(需提前創建) -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value>
    </property>
</configuration>

(3) yarn-site.xml

配置YARN資源管理器:

<configuration>
    <!-- 指定ResourceManager所在節點 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master-node-ip</value>
    </property>
    <!-- 啟用MapReduce Shuffle服務 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

(4) mapred-site.xml

若目錄下無該文件,需復制模板生成并配置:

cp mapred-site.xml.template mapred-site.xml
nano mapred-site.xml

添加以下內容:

<configuration>
    <!-- 指定MapReduce運行框架為YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

注意:所有路徑(如/usr/local/hadoop/data/namenode)需提前創建,并賦予Hadoop用戶權限:

mkdir -p /usr/local/hadoop/data/{namenode,datanode}
chown -R hadoop:hadoop /usr/local/hadoop/data

7. 格式化HDFS

首次啟動Hadoop前,需格式化NameNode(僅第一次啟動時執行,會清除原有數據):

# 切換到Hadoop用戶
su - hadoop
# 格式化NameNode
hdfs namenode -format

格式化完成后,會生成/usr/local/hadoop/data/namenode/current目錄。

8. 啟動Hadoop集群

啟動HDFS和YARN服務:

# 啟動HDFS(NameNode和DataNode)
start-dfs.sh
# 啟動YARN(ResourceManager和NodeManager)
start-yarn.sh

驗證進程:使用jps命令查看Master和Slave節點的進程:

  • Master節點應顯示:NameNode、ResourceManager、SecondaryNameNode(可選)。
  • Slave節點應顯示:DataNode、NodeManager。

9. 驗證集群狀態

(1) 訪問Web界面

  • HDFS Web界面:http://master-node-ip:9870(查看HDFS狀態、存儲信息)。
  • YARN Web界面:http://master-node-ip:8088(查看集群資源、任務調度)。

(2) 使用HDFS命令測試

# 創建HDFS目錄
hdfs dfs -mkdir -p /user/hadoop/input
# 上傳本地文件到HDFS
hdfs dfs -put ~/test.txt /user/hadoop/input
# 查看HDFS文件列表
hdfs dfs -ls /user/hadoop/input

若上述命令執行成功,說明集群搭建完成。

常見問題解決

  • 權限問題:若啟動時報錯“Permission denied”,需用chmodchown調整目錄權限。
  • 端口沖突:若HDFS或YARN端口被占用,可在配置文件中修改端口號(如fs.defaultFS的9000改為其他端口)。
  • 節點無法通信:檢查防火墻是否關閉(sudo ufw disable),或SSH配置是否正確。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女