| 項目 | 規格 |
| OS | Fedora 19 (32-bit) |
| 使用者 | hadoop (非 root) |
| Hadoop | 1.2.1 |
| Java | Oracle JDK 1.6.0_45 (替換 OpenJDK) |
| SSH | 本地免密登入 (localhost) |
步驟一:配置 SSH 免密登入
# 1. 確認工具
which ssh ssh-keygen sshd
# 2. 生成金鑰對 (一路 Enter)
ssh-keygen -t rsa
# 3. 修改 sshd 設定啟用公開金鑰認證
su -
vim /etc/ssh/sshd_config
# 確保以下三行存在且未註解:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 4. 重啟 sshd
systemctl restart sshd
# 5. 回 hadoop 用戶,授權金鑰
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
# 6. 測試免密登入
ssh localhost
# 首次需輸入 yes 確認 known_hosts
步驟二:安裝 Oracle JDK (替換 OpenJDK)
# 1. 下載 jdk-6u45-linux-i586.bin 至 ~/ 並賦權
chmod +x jdk-6u45-linux-i586.bin
./jdk-6u45-linux-i586.bin
rm jdk-6u45-linux-i586.bin
# 2. 設定環境變數 (~/.bashrc 或 /etc/profile)
export JAVA_HOME=/home/hadoop/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin
# 3. 驗證
java -version
# 應顯示 Java(TM) SE Runtime Environment 1.6.0_45
步驟三:安裝 Hadoop
# 1. 下載 hadoop-1.2.1.tar.gz 至 ~/ 並解壓
tar -xzf hadoop-1.2.1.tar.gz
rm hadoop-1.2.1.tar.gz
# 2. 設定 hadoop-env.sh
cd hadoop-1.2.1/conf
vim hadoop-env.sh
# 修改:
export JAVA_HOME=/home/hadoop/jdk1.6.0_45
步驟四:核心配置檔修改
1. core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
2. mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
3. hdfs-site.xml (偽分散 replication=1)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4. masters / slaves
echo "localhost" > masters
echo "localhost" > slaves
步驟五:格式化 HDFS 與啟動
# 1. 格式化 NameNode (僅首次)
cd ~/hadoop-1.2.1
bin/hadoop namenode -format
# 2. 啟動所有服務
bin/start-all.sh
# 或分別啟動
bin/start-dfs.sh
bin/start-mapred.sh
步驟六:驗證與常用操作
# 1. 檢查進程
jps
# 應見到:NameNode, DataNode, SecondaryNameNode, JobTracker, TaskTracker
# 2. Web UI
# NameNode: https://localhost:50070
# JobTracker: https://localhost:50030
# 3. 執行範例 (Pi 估算)
bin/hadoop jar hadoop-examples-*.jar pi 10 100
# 4. HDFS 基本操作
bin/hadoop fs -mkdir /user/hadoop/input
bin/hadoop fs -put conf/*.xml /user/hadoop/input
bin/hadoop fs -ls /user/hadoop/input
常見問題排查
- SSH 免密失敗:檢查
~/.ssh 權限 (700)、authorized_keys (644)、sshd_config 公開金鑰認證開啟
- Java 版本不符:Hadoop 1.x 需 JDK 6/7,JDK 8+ 可能相容性問題
- NameNode 格式化失敗:確認
core-site.xml fs.default.name 指向正確、目錄權限
- DataNode 無法啟動:檢查
hdfs-site.xml dfs.data.dir、磁碟空間、防火牆
- 32/64 位不匹配:Fedora 19 i386 需 32-bit JDK/Hadoop native libs
升級建議
Hadoop 1.x 已停止維護 (EOL)。生產環境強烈建議遷移至 Hadoop 3.x (YARN 架構) 或使用發佈版 (CDH, HDP, Apache Bigtop)。偽分散模式僅適合開發測試。