温馨提示×

怎么在Debian跑Hadoop

小樊
34
2026-08-28 20:22:18
栏目: 智能运维

在 Debian 上跑 Hadoop,一般走 “单机 / 伪分布式” 这条路最简单,也最常用。下面给你一个从零到能跑 WordCount 的完整流程(基于 Debian 11/12,Hadoop 3.x)。


一、准备环境

1️⃣ 系统更新

sudo apt update
sudo apt upgrade -y

2️⃣ 安装 JDK(Hadoop 3.x 推荐 Java 8 或 11)

sudo apt install openjdk-11-jdk -y

验证:

java -version

二、创建 Hadoop 专用用户(推荐)

sudo adduser hadoop
sudo usermod -aG sudo hadoop
su - hadoop

之后的操作都在 hadoop 用户下完成


三、配置 SSH(伪分布式必须)

Hadoop 需要无密码 SSH 登录自己。

sudo apt install ssh -y

生成密钥:

ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

测试:

ssh localhost

四、下载并安装 Hadoop

1️⃣ 下载 Hadoop

去官方镜像:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

(版本可自行替换)

2️⃣ 解压

tar -xzvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 ~/hadoop

五、配置环境变量

编辑 ~/.bashrc

nano ~/.bashrc

加入:

export HADOOP_HOME=~/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

生效:

source ~/.bashrc

测试:

hadoop version

六、Hadoop 核心配置(伪分布式)

进入配置目录:

cd $HADOOP_HOME/etc/hadoop

1️⃣ hadoop-env.sh

nano hadoop-env.sh

添加或修改:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

2️⃣ core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

3️⃣ hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

4️⃣ mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

5️⃣ yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

七、格式化 HDFS(只做一次)

hdfs namenode -format

八、启动 Hadoop

启动 HDFS

start-dfs.sh

启动 YARN

start-yarn.sh

验证进程:

jps

应看到:

NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager

九、跑一个 WordCount 示例

1️⃣ 创建 HDFS 目录

hdfs dfs -mkdir /input

2️⃣ 上传文件

echo "hello hadoop hello debian" > test.txt
hdfs dfs -put test.txt /input

3️⃣ 运行示例

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output

4️⃣ 查看结果

hdfs dfs -cat /output/part-r-00000

十、停止 Hadoop

stop-yarn.sh
stop-dfs.sh

常见问题

❌ JAVA_HOME 找不到

确认:

echo $JAVA_HOME

并在 hadoop-env.sh 中显式设置。

❌ SSH 连不上

systemctl status ssh

进阶方向(如果你需要)

  • 完全分布式(多台 Debian)
  • HA(高可用)
  • Debian + Docker 跑 Hadoop
  • Hadoop + Hive / Spark

如果你告诉我:

  • Debian 版本
  • 只想本地测试还是生产
  • 是否用 Docker

我可以给你更精简或更生产级的方案。

0