下面给你一个**在 Debian 系统上配置 Hadoop(单机/伪分布式)**的完整流程示例,适合学习和开发环境。如果你需要 完全分布式集群,我也可以再补充。
sudo apt update
sudo apt upgrade -y
Hadoop 依赖 Java,推荐 OpenJDK。
sudo apt install openjdk-11-jdk -y
验证:
java -version
设置 JAVA_HOME(编辑 /etc/profile 或 ~/.bashrc):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
sudo adduser hadoop
sudo usermod -aG sudo hadoop
su - hadoop
去官网复制最新链接,例如:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
编辑 ~/.bashrc:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
生效:
source ~/.bashrc
nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
添加或修改:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
nano $HADOOP_HOME/etc/hadoop/core-site.xml
内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/data/datanode</value>
</property>
</configuration>
创建目录:
mkdir -p /usr/local/hadoop/data/namenode
mkdir -p /usr/local/hadoop/data/datanode
nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
Hadoop 需要通过 SSH 启动节点。
sudo apt install ssh -y
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
测试:
ssh localhost
(能无密码登录即可)
⚠️ 只执行一次
hdfs namenode -format
start-dfs.sh
start-yarn.sh
检查进程:
jps
应看到:
HDFS:
http://localhost:9870
YARN:
http://localhost:8088
hdfs dfs -mkdir /input
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output
hdfs dfs -cat /output/part-r-00000
确认 hadoop-env.sh 中 JAVA_HOME 设置正确。
检查 9000 / 9870 / 8088 端口。
sudo ufw disable
如果你需要:
告诉我你的使用场景,我可以给你定制方案。