Debian系統與Hadoop的集成主要圍繞環境準備、Hadoop安裝、配置文件調整、服務啟動及驗證展開,以下是詳細步驟:
集成前需確保Debian系統為最新版本,并安裝必要的依賴軟件:
sudo apt update && sudo apt upgrade -ysudo apt install openjdk-11-jdk -y # 或openjdk-8-jdk(兼容舊版本Hadoop)
java -version # 驗證安裝(需顯示Java版本信息)
sudo apt install openssh-server -y
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 生成密鑰
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公鑰到授權文件
chmod 600 ~/.ssh/authorized_keys # 設置權限
sudo adduser hadoop # 創建用戶
sudo usermod -aG sudo hadoop # 加入sudo組
從Apache官網下載穩定版本的Hadoop(如3.3.6),解壓至指定目錄:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/ # 解壓至/usr/local
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop # 重命名為hadoop(簡化命令)
編輯用戶或全局環境變量文件(如~/.bashrc或/etc/profile),添加Hadoop相關路徑:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:source ~/.bashrc(或source /etc/profile)。
Hadoop的主要配置文件位于$HADOOP_HOME/etc/hadoop/目錄下,需調整以下文件:
配置HDFS的默認文件系統地址(NameNode的URI)和臨時目錄:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- NameNode的主機名或IP -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> <!-- 臨時文件存儲路徑 -->
</property>
</configuration>
配置HDFS的副本數(生產環境建議3)、NameNode和DataNode的數據目錄:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 數據副本數(單節點可設為1) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hdfs/namenode</value> <!-- NameNode元數據存儲路徑 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hdfs/datanode</value> <!-- DataNode數據存儲路徑 -->
</property>
</configuration>
配置MapReduce框架為YARN(Hadoop的資源管理系統):
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置YARN的Shuffle服務(MapReduce作業的必要組件):
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
/etc/netplan/*.yaml(Debian 10及以上),配置固定IP、子網掩碼、網關和DNS。/etc/hosts,避免DNS解析延遲:127.0.0.1 localhost
192.168.1.100 namenode # NameNode節點
192.168.1.101 datanode1 # DataNode節點1
192.168.1.102 datanode2 # DataNode節點2
僅在首次啟動Hadoop集群時執行,用于初始化NameNode的元數據存儲:
hdfs namenode -format # 執行格式化(會清除原有數據)
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
jps命令查看Hadoop相關進程(NameNode、DataNode、ResourceManager、NodeManager等)是否存在。hdfs dfs -ls / # 列出HDFS根目錄內容
http://namenode:9000(需替換為實際IP)http://namenode:8088sudo ufw disable)或開放相關端口(如9000、50070、8088)。