# Hadoop怎么實現集群搭建
## 一、Hadoop集群概述
Hadoop作為Apache基金會開源的分布式計算框架,其核心設計思想是通過集群方式實現海量數據的存儲(HDFS)和計算(MapReduce/YARN)。一個典型的Hadoop集群由以下角色組成:
- **NameNode**:HDFS的主節點,管理文件系統元數據
- **DataNode**:HDFS的從節點,存儲實際數據塊
- **ResourceManager**:YARN的主節點,負責資源調度
- **NodeManager**:YARN的從節點,執行具體計算任務
- **SecondaryNameNode**:NameNode的輔助節點(非熱備)
## 二、環境準備
### 1. 硬件要求
- 至少3臺服務器(物理機或虛擬機)
- 每臺建議配置:
- CPU:4核以上
- 內存:8GB以上
- 磁盤:50GB以上(建議SSD)
- 網絡:千兆網卡
### 2. 軟件要求
- 操作系統:Linux(推薦CentOS 7+或Ubuntu 18.04+)
- Java:JDK 8(必須與Hadoop版本兼容)
- SSH:節點間免密登錄
- Hadoop版本:3.x(本文以3.3.4為例)
## 三、詳細搭建步驟
### 1. 系統基礎配置
```bash
# 所有節點執行
sudo hostnamectl set-hostname hadoop01 # 分別設置為hadoop01,hadoop02,hadoop03
echo "192.168.1.101 hadoop01" | sudo tee -a /etc/hosts
echo "192.168.1.102 hadoop02" | sudo tee -a /etc/hosts
echo "192.168.1.103 hadoop03" | sudo tee -a /etc/hosts
# 關閉防火墻
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 在所有節點生成密鑰
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
# 將公鑰同步到所有節點(包括自己)
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
# 下載并解壓JDK
tar -zxvf jdk-8u341-linux-x64.tar.gz -C /opt/
# 配置環境變量(寫入/etc/profile)
export JAVA_HOME=/opt/jdk1.8.0_341
export PATH=$PATH:$JAVA_HOME/bin
tar -zxvf hadoop-3.3.4.tar.gz -C /opt/
mv /opt/hadoop-3.3.4 /opt/hadoop
1) hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_341
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
2) core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/data/tmp</value>
</property>
</configuration>
3) hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/datanode</value>
</property>
</configuration>
4) yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
</configuration>
5) workers文件
hadoop01
hadoop02
hadoop03
scp -r /opt/hadoop hadoop02:/opt/
scp -r /opt/hadoop hadoop03:/opt/
scp /etc/profile hadoop02:/etc/
scp /etc/profile hadoop03:/etc/
hdfs namenode -format
# 啟動HDFS
start-dfs.sh
# 啟動YARN
start-yarn.sh
# 檢查進程
jps
# 訪問Web UI
NameNode: http://hadoop01:9870
ResourceManager: http://hadoop01:8088
hadoop.tmp.dir
目錄權限hdfs-site.xml
中的HTTP端口dfs.datanode.data.dir
到足夠空間的分區注意:生產環境建議配置監控系統(如Ambari)和日志聚合功能,并定期進行集群維護。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。