溫馨提示×

如何在Debian上配置Hadoop集群

小樊
46
2025-09-26 02:27:03
欄目: 智能運維

一、環境準備

  1. 節點規劃:搭建Hadoop集群需至少3個節點(1個NameNode主節點、1個NameNode備用節點、1個及以上DataNode;若啟用YARN高可用,還需1個ResourceManager主節點、1個備用節點)。確保所有節點處于同一局域網,能互相通信。
  2. 系統更新與基礎軟件安裝:在所有節點執行sudo apt update && sudo apt upgrade -y更新系統;安裝OpenJDK 8(或更高版本,推薦Temurin):sudo apt install -y openjdk-8-jdk(或使用Temurin源安裝);安裝SSH服務:sudo apt install -y openssh-server,用于節點間無密碼登錄。

二、安裝Hadoop

  1. 下載與解壓:從Apache官網下載穩定版Hadoop(如3.3.x),解壓至/usr/local目錄:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz && sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/。
  2. 配置環境變量:編輯~/.bashrc(或/etc/profile),添加以下內容:
    export HADOOP_HOME=/usr/local/hadoop-3.3.6
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64  # 或Temurin路徑
    
    執行source ~/.bashrc使配置生效;驗證安裝:hadoop version,應顯示Hadoop版本信息。

三、配置SSH免密登錄

  1. 生成密鑰對:在主節點(如NameNode)執行ssh-keygen -t rsa -b 4096,按提示回車(默認保存路徑~/.ssh/id_rsa,無需設置密碼)。
  2. 分發公鑰:將公鑰復制到所有節點(包括自身):ssh-copy-id hadoop@namenode、ssh-copy-id hadoop@datanode1hadoop為集群統一用戶名,需提前在各節點創建)。
  3. 測試免密登錄:執行ssh hadoop@namenode、ssh hadoop@datanode1,無需輸入密碼即可登錄,驗證配置成功。

四、配置Hadoop核心文件 所有節點需配置core-site.xml、mapred-site.xml;NameNode節點需配置hdfs-site.xml;若啟用YARN,需配置yarn-site.xml。

  1. core-site.xml:設置HDFS默認通信地址和臨時目錄:
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://namenode:9000</value>  <!-- 主節點主機名 -->
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/hadoop/tmp</value>  <!-- 臨時目錄,需提前創建 -->
        </property>
    </configuration>
    
  2. hdfs-site.xml(NameNode節點):配置HDFS副本數、NameNode數據目錄、DataNode數據目錄及高可用(可選):
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>3</value>  <!-- 數據副本數,根據節點數量調整 -->
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop/hdfs/namenode</value>  <!-- NameNode元數據目錄 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop/hdfs/datanode</value>  <!-- DataNode數據目錄 -->
        </property>
        <!-- 高可用配置(可選) -->
        <property>
            <name>dfs.ha.namenodes.mycluster</name>
            <value>nn1,nn2</value>  <!-- NameNode ID列表 -->
        </property>
        <property>
            <name>dfs.namenode.rpc-address.mycluster.nn1</name>
            <value>namenode1:8020</value>
        </property>
        <property>
            <name>dfs.namenode.rpc-address.mycluster.nn2</name>
            <value>namenode2:8020</value>
        </property>
        <property>
            <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://journalnode1:8485;journalnode2:8485;journalnode3:8485/mycluster</value>  <!-- JournalNode共享目錄 -->
        </property>
        <property>
            <name>dfs.ha.automatic-failover.enabled</name>
            <value>true</value>  <!-- 啟用自動故障轉移 -->
        </property>
    </configuration>
    
  3. mapred-site.xml:配置MapReduce運行框架為YARN:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  4. yarn-site.xml(ResourceManager節點):配置YARN資源管理器地址及Shuffle服務:
    <configuration>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>resourcemanager</value>  <!-- ResourceManager主機名 -->
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <!-- 高可用配置(可選) -->
        <property>
            <name>yarn.resourcemanager.ha.enabled</name>
            <value>true</value>
        </property>
        <property>
            <name>yarn.resourcemanager.cluster-id</name>
            <value>yarn-cluster</value>
        </property>
        <property>
            <name>yarn.resourcemanager.ha.rm-ids</name>
            <value>rm1,rm2</value>
        </property>
        <property>
            <name>yarn.resourcemanager.zk-address</name>
            <value>namenode1:2181,namenode2:2181,namenode3:2181</value>
        </property>
    </configuration>
    

五、配置主機名解析 編輯所有節點的/etc/hosts文件,添加集群節點的IP地址與主機名映射(替換為實際IP):

127.0.0.1   localhost
192.168.1.100 namenode
192.168.1.101 datanode1
192.168.1.102 datanode2
192.168.1.103 resourcemanager

保存后執行ping namenode測試解析是否正確。

六、初始化HDFS(僅NameNode節點) 在NameNode節點執行hdfs namenode -format,格式化HDFS元數據目錄(此操作會清除原有數據,僅首次啟動需執行)。

七、啟動Hadoop集群

  1. 啟動HDFS:在NameNode節點執行start-dfs.sh,啟動NameNode和DataNode服務;執行jps查看進程,應顯示NameNode、DataNode。
  2. 啟動YARN:在ResourceManager節點執行start-yarn.sh,啟動ResourceManager和NodeManager服務;執行yarn node -list查看NodeManager列表,驗證YARN啟動成功。
  3. (可選)啟動高可用組件:若配置了HDFS或YARN高可用,需啟動JournalNode(hadoop-daemons.sh start journalnode)和ZooKeeper集群(zkServer.sh start),并驗證ZooKeeper狀態(zkServer.sh status)。

八、驗證集群狀態

  1. HDFS驗證:執行hdfs dfs -ls /,若返回“Permission denied”,可執行hdfs dfs -mkdir -p /user/hadoop創建用戶目錄,再執行hdfs dfs -ls /查看根目錄。
  2. YARN驗證:執行yarn node -list,應顯示所有NodeManager節點信息;提交測試任務:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 100,驗證YARN任務調度功能。
  3. Web UI驗證:訪問NameNode Web界面(http://namenode:9000)、ResourceManager Web界面(http://resourcemanager:8088),查看集群狀態。

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