一、克隆虛擬機
1.?準備基礎虛擬機
- 確保基礎虛擬機已安裝好操作系統(如 Ubuntu)、Java 和 Hadoop。
- 關閉防火墻并禁用 SELinux(如適用):
bash
sudo ufw disable # Ubuntu sudo systemctl disable firewalld # CentOS
- 生成 SSH 密鑰并配置無密碼登錄:
bash
ssh-keygen -t rsa -P "" cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
2.?克隆虛擬機
- 使用虛擬化軟件(如 VMware 或 VirtualBox)克隆基礎虛擬機。
- 至少克隆 3 臺虛擬機(1 個 NameNode + 2 個 DataNode)。
- 為每個克隆機分配唯一的靜態 IP 地址(如:192.168.1.101~103)。
二、配置集群
1.?修改主機名和 hosts 文件
- 在每臺虛擬機上修改主機名:
bash
sudo hostnamectl set-hostname hadoop-master # 主節點 sudo hostnamectl set-hostname hadoop-slave1 # 從節點1 sudo hostnamectl set-hostname hadoop-slave2 # 從節點2
- 編輯?
/etc/hosts
?文件,添加所有節點的 IP 和主機名映射:plaintext
192.168.1.101 hadoop-master 192.168.1.102 hadoop-slave1 192.168.1.103 hadoop-slave2
2.?配置 SSH 無密碼登錄
- 在主節點(
hadoop-master
)上收集所有節點的公鑰:bash
ssh-copy-id hadoop-master ssh-copy-id hadoop-slave1 ssh-copy-id hadoop-slave2
- 測試連接:
bash
ssh hadoop-slave1 # 應無需密碼登錄
3.?配置 Hadoop
在主節點上修改 Hadoop 配置文件(路徑:$HADOOP_HOME/etc/hadoop
):
core-site.xml
xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop-master:9000</value></property>
</configuration>
hdfs-site.xml
xml
<configuration><property><name>dfs.replication</name><value>2</value> <!-- 副本數,通常等于從節點數量 --></property><property><name>dfs.namenode.name.dir</name><value>file:/opt/hadoop/data/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>file:/opt/hadoop/data/datanode</value></property>
</configuration>
mapred-site.xml
xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
yarn-site.xml
xml
<configuration><property><name>yarn.resourcemanager.hostname</name><value>hadoop-master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
workers
plaintext
hadoop-slave1
hadoop-slave2
三、同步配置并啟動集群
1.?同步配置文件到所有從節點
bash
scp $HADOOP_HOME/etc/hadoop/* hadoop-slave1:$HADOOP_HOME/etc/hadoop/
scp $HADOOP_HOME/etc/hadoop/* hadoop-slave2:$HADOOP_HOME/etc/hadoop/
2.?格式化 NameNode(僅首次啟動時執行)
bash
hdfs namenode -format
3.?啟動集群
bash
start-dfs.sh # 啟動 HDFS
start-yarn.sh # 啟動 YARN
4.?驗證集群狀態
bash
# 在主節點查看進程
jps# 應看到以下進程:
# - NameNode、ResourceManager(主節點)
# - DataNode、NodeManager(從節點)# 訪問 Web UI
http://hadoop-master:9870 # HDFS 管理界面
http://hadoop-master:8088 # YARN 資源管理界面
四、運行 WordCount 測試
bash
# 創建輸入目錄并上傳文件
hdfs dfs -mkdir -p /user/input
hdfs dfs -put $HADOOP_HOME/README.txt /user/input# 執行 WordCount
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /user/input /user/output# 查看結果
hdfs dfs -cat /user/output/part-r-00000