溫馨提示×

Hadoop在Linux上的安裝步驟

小樊
43
2025-10-06 01:55:03
欄目: 智能運維

Hadoop在Linux上的安裝步驟(以Ubuntu 22.04為例)

1. 環境準備

  • 操作系統:推薦使用Ubuntu 22.04 LTS(64位)或其他穩定Linux發行版(如CentOS 7)。
  • 硬件要求:至少4GB內存、20GB可用磁盤空間(生產環境需更高配置)。
  • 軟件依賴:需安裝Java(JDK 8或11)、SSH服務(用于節點間通信)。

2. 安裝Java環境

Hadoop基于Java開發,需先安裝JDK并配置環境變量:

  • 安裝OpenJDK 11(推薦):
    sudo apt update
    sudo apt install openjdk-11-jdk -y
    
  • 驗證Java安裝
    java -version
    
    輸出應包含Java版本信息(如openjdk version "11.0.xx")。

3. 配置SSH免密登錄(單機/集群必需)

Hadoop通過SSH進行節點間通信,需配置本地免密登錄:

  • 生成SSH密鑰對
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    
  • 添加公鑰到授權文件
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys  # 設置文件權限
    
  • 測試免密登錄
    ssh localhost
    
    若無需輸入密碼即可登錄,則配置成功。

4. 下載并解壓Hadoop

  • 下載Hadoop(以3.3.5為例,可從Apache官網或鏡像站獲?。?pre class="hljs">wget https://downloads.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
  • 解壓到指定目錄(如/usr/local):
    sudo tar -zxvf hadoop-3.3.5.tar.gz -C /usr/local
    sudo mv /usr/local/hadoop-3.3.5 /usr/local/hadoop  # 重命名便于管理
    
  • 修改目錄權限(避免權限問題):
    sudo chown -R $USER:$USER /usr/local/hadoop
    

5. 配置Hadoop環境變量

編輯~/.bashrc文件,添加Hadoop相關環境變量:

nano ~/.bashrc

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

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native

使配置生效:

source ~/.bashrc
  • 驗證Hadoop安裝
    hadoop version
    
    輸出應顯示Hadoop版本及編譯信息。

6. 配置Hadoop核心文件

Hadoop的配置文件位于$HADOOP_HOME/etc/hadoop目錄下,需修改以下核心文件:

6.1 hadoop-env.sh

設置Java路徑(若JAVA_HOME已在環境變量中定義,可跳過):

nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

找到# export JAVA_HOME=行,取消注釋并修改為:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 根據實際Java路徑調整
6.2 core-site.xml

配置HDFS的默認文件系統URI(指向NameNode):

nano $HADOOP_HOME/etc/hadoop/core-site.xml

替換為以下內容:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>
6.3 hdfs-site.xml

配置HDFS數據存儲路徑及副本數(單機模式副本數為1):

nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

替換為以下內容:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>  <!-- 單機模式設為1 -->
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/tmp/dfs/name</value>  <!-- NameNode數據目錄 -->
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/tmp/dfs/data</value>  <!-- DataNode數據目錄 -->
  </property>
</configuration>
6.4 mapred-site.xml

配置MapReduce框架為YARN(需先創建該文件,若不存在則復制模板):

cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

替換為以下內容:

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>
6.5 yarn-site.xml

配置YARN資源管理器:

nano $HADOOP_HOME/etc/hadoop/yarn-site.xml

替換為以下內容:

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

7. 格式化HDFS NameNode

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

hdfs namenode -format

8. 啟動Hadoop服務

  • 啟動HDFS
    start-dfs.sh
    
  • 啟動YARN
    start-yarn.sh
    
  • 查看進程狀態
    jps
    
    正常輸出應包含以下進程:
    • NameNode(HDFS主節點)
    • DataNode(HDFS數據節點)
    • ResourceManager(YARN資源管理器)
    • NodeManager(YARN節點管理器)

9. 驗證Hadoop功能

  • 查看HDFS根目錄
    hdfs dfs -ls /
    
  • 上傳本地文件到HDFS(如localfile.txt):
    hdfs dfs -put localfile.txt /user/$USER/
    
  • 下載HDFS文件到本地
    hdfs dfs -get /user/$USER/localfile.txt .
    
  • 運行MapReduce示例(如WordCount):
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar wordcount /user/$USER/input /user/$USER/output
    

10. 可選:配置防火墻(若啟用)

若系統啟用了防火墻,需允許Hadoop相關端口通信:

sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp  # HDFS NameNode
sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp  # HDFS Web UI
sudo firewall-cmd --permanent --zone=public --add-port=8088/tcp  # YARN Web UI
sudo firewall-cmd --reload

通過以上步驟,即可在Linux系統上完成Hadoop的單機部署。如需擴展為集群,需在多臺機器上重復上述步驟,并配置slaves文件(指定DataNode節點)及集群間的SSH免密登錄。

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