# Hadoop偽分布式系統如何搭建
## 一、前言
在大數據技術生態中,Hadoop作為核心框架,其偽分布式模式是學習和開發的重要環境。本文將詳細介紹在Linux系統(以Ubuntu為例)上搭建Hadoop 3.x偽分布式系統的完整流程,包含環境準備、配置修改及驗證步驟。
---
## 二、環境準備
### 1. 硬件要求
- 至少4GB內存
- 20GB可用磁盤空間
- 支持虛擬化的CPU
### 2. 軟件要求
| 組件 | 推薦版本 |
|----------------|-----------|
| 操作系統 | Ubuntu 20.04 LTS |
| Java | JDK 8/11 |
| Hadoop | 3.3.6 |
| SSH | OpenSSH |
### 3. 前置步驟
```bash
# 更新系統
sudo apt update && sudo apt upgrade -y
# 安裝必要工具
sudo apt install -y ssh pdsh vim net-tools
sudo adduser hadoopuser
sudo usermod -aG sudo hadoopuser
su - hadoopuser
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 測試連接
ssh localhost
sudo apt install -y openjdk-11-jdk
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bashrc
source ~/.bashrc
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 ~/hadoop
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/hadoop/etc/hadoop/hadoop-env.sh
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoopuser/tmp</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopuser/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopuser/hdfs/datanode</value>
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME</value>
</property>
</configuration>
echo 'export HADOOP_HOME=/home/hadoopuser/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc
hdfs namenode -format
start-dfs.sh
start-yarn.sh
# 檢查Java進程
jps
# 預期輸出應包含:
# NameNode
# DataNode
# ResourceManager
# NodeManager
# SecondaryNameNode
# Web UI訪問:
# NameNode - http://localhost:9870
# YARN - http://localhost:8088
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 2 4
錯誤現象:Connection refused
解決方法:
sudo systemctl enable ssh
sudo systemctl start ssh
錯誤現象:Address already in use
解決方法:
netstat -tulnp | grep <端口號>
kill -9 <進程ID>
錯誤現象:Permission denied
解決方法:
sudo chown -R hadoopuser:hadoopuser /home/hadoopuser
內存配置調整:
yarn-site.xml
中的yarn.nodemanager.resource.memory-mb
mapred-site.xml
中的mapreduce.map.memory.mb
日志管理:
# 修改日志級別
vim $HADOOP_HOME/etc/hadoop/log4j.properties
定期維護:
# 清理臨時文件
hdfs dfs -expunge
偽分布式模式完整模擬了Hadoop集群環境,適合開發測試場景。通過本文的詳細步驟,您已成功搭建了一個可運行的Hadoop環境。建議后續: 1. 嘗試運行完整WordCount示例 2. 學習HDFS文件操作命令 3. 探索YARN資源調度機制
注意:生產環境請使用完全分布式集群,并配置高可用方案。
附錄: - Hadoop官方文檔 - Github問題追蹤 “`
這篇技術文檔包含: 1. 分步驟的詳細操作指南 2. 關鍵配置文件的完整示例 3. 常見問題解決方案 4. 驗證方法和優化建議 5. 標準的Markdown格式(代碼塊、表格、列表等)
可根據實際環境調整版本號和路徑參數,建議配合截圖或日志示例使用效果更佳。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。