1. 系統準備
確保Debian系統已更新至最新版本,安裝必要工具包:
sudo apt update && sudo apt upgrade -y
sudo apt install -y net-tools vim ssh
關閉防火墻(若需開啟,需配置Hadoop相關端口放行):
sudo ufw disable
2. 安裝Java環境
Hadoop依賴Java 8及以上版本,推薦使用OpenJDK(Debian默認倉庫提供):
sudo apt install -y openjdk-11-jdk
驗證Java安裝:
java -version
設置JAVA_HOME
環境變量(全局生效):
echo 'JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"' | sudo tee -a /etc/environment
source /etc/environment
3. 下載并解壓Hadoop
從Apache官網下載最新穩定版Hadoop(如3.3.6),解壓至/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/
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop # 重命名為hadoop方便管理
4. 配置Hadoop環境變量
編輯~/.bashrc
(當前用戶)或/etc/profile
(全局),添加Hadoop路徑:
echo 'export HADOOP_HOME=/usr/local/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc # 使配置生效
5. 配置Hadoop核心文件
Hadoop配置文件位于$HADOOP_HOME/etc/hadoop
目錄,需修改以下關鍵文件:
core-site.xml(Hadoop核心設置):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- 單節點用localhost,集群用NameNode主機名 -->
</property>
</configuration>
hdfs-site.xml(HDFS設置):
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 單節點設為1,集群根據節點數調整(如3) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value> <!-- NameNode元數據存儲路徑 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value> <!-- DataNode數據存儲路徑 -->
</property>
</configuration>
mapred-site.xml(MapReduce設置):
若文件不存在,先復制模板:
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
添加以下內容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> <!-- 使用YARN作為資源管理框架 -->
</property>
</configuration>
yarn-site.xml(YARN設置):
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- 啟用MapReduce Shuffle服務 -->
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6. 格式化HDFS
首次啟動前需格式化NameNode(僅第一次執行,會清除原有數據):
hdfs namenode -format
7. 啟動Hadoop服務
啟動HDFS(NameNode和DataNode):
$HADOOP_HOME/sbin/start-dfs.sh
啟動YARN(ResourceManager和NodeManager):
$HADOOP_HOME/sbin/start-yarn.sh
8. 驗證安裝
檢查Hadoop進程是否運行:
jps
正常應看到NameNode
、DataNode
、ResourceManager
、NodeManager
等進程。
查看HDFS文件系統:
hdfs dfs -ls /
訪問Web界面:
http://localhost:9870
(Hadoop 3.x版本)http://localhost:8088
9. 運行Hadoop示例程序(可選)
Hadoop自帶WordCount示例,用于驗證MapReduce功能:
# 創建輸入目錄并上傳測試文件
hdfs dfs -mkdir -p /input
echo "hello world hello hadoop" > file.txt
hdfs dfs -put file.txt /input
# 運行WordCount程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input/file.txt /output
# 查看輸出結果
hdfs dfs -cat /output/part-r-00000
輸出應顯示單詞統計結果(如hello 2
、world 1
、hadoop 1
)。