下面给你一个在 Linux 上配置 Hadoop(单机 / 伪分布式)的完整实操流程,适合入门和实验环境。如果你需要 完全分布式(多节点),可以在此基础上继续扩展。
Hadoop 依赖 Java
java -version
# CentOS
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# Ubuntu
apt update
apt install -y openjdk-8-jdk
vim /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
useradd hadoop
passwd hadoop
切换用户:
su - hadoop
cd /opt
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
mv hadoop-3.3.6 hadoop
vim /etc/profile
添加:
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
生效:
source /etc/profile
验证:
hadoop version
ssh-keygen -t rsa
一路回车
ssh-copy-id localhost
测试:
ssh localhost
进入配置目录:
cd $HADOOP_HOME/etc/hadoop
vim hadoop-env.sh
设置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
</configuration>
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
</configuration>
hdfs namenode -format
✅ 出现 successfully formatted 表示成功
start-dfs.sh
start-yarn.sh
或:
start-all.sh
jps
应看到:
NameNode
DataNode
ResourceManager
NodeManager
SecondaryNameNode
Web UI:
hdfs dfs -mkdir /test
hdfs dfs -put /opt/hadoop/README.txt /test
hdfs dfs -ls /test
| 问题 | 解决方案 |
|---|---|
| JAVA_HOME 未设置 | hadoop-env.sh 中配置 |
| ssh 失败 | 配置免密登录 |
| 端口被占用 | 检查 9000、9870 |
| 权限不足 | 使用 hadoop 用户 |
如果你需要: ✅ 多节点集群配置 ✅ Hadoop HA(高可用) ✅ 生产环境参数优化 ✅ Hive / Spark 集成
告诉我你的 Linux 版本 + Hadoop 版本 + 使用场景,我可以给你定制配置。