微信优化

weixinyouhua

Hadoop安装与配置难吗?Hadoop安装配置常见问题

2026-09-26 07:55:36

Hadoop安装与配置的核心结论:先装JDK并配好SSH免密,再解压Hadoop安装包,改四个XML和workers文件,格式化NameNode后启动HDFS与YARN,就能跑通伪分布式或完全分布式集群。
这套流程看起来命令不少,其实每一步都有明确目的,下面按实操顺序拆开讲,顺带把单机、伪分布式、完全分布式的区别和云服务器成本说清楚。

Hadoop安装与配置详细步骤:从零搭好一台伪分布式节点

准备Linux环境与JDK

拿一台CentOS 7/8或Ubuntu 20.04/22.04机器,2核4G是底线,4核8G更稳,生产环境别用root跑Hadoop,先建普通用户。

sudo useradd -m hadoop
sudo passwd hadoop
sudo usermod -aG sudo hadoop
su - hadoop

装JDK,据Apache Hadoop官方文档,Hadoop 3.x支持Java 8和Java 11,多数发行版仍以Java 8为主,Ubuntu下:

sudo apt update
sudo apt install openjdk-8-jdk -y
java -version

CentOS下可用sudo yum install java-1.8.0-openjdk-devel -y,接着配JAVA_HOME:

sudo vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

配置SSH免密登录

伪分布式和完全分布式都绕不开SSH免密,否则start-dfs.sh会反复要密码。

su - hadoop
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh localhost

能直接登录就说明免密生效。

下载与解压Hadoop

从Apache官网下载Hadoop 3.3.x或3.4.x,不要用来路不明的压缩包。

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt
sudo mv /opt/hadoop-3.3.6 /opt/hadoop
sudo chown -R hadoop:hadoop /opt/hadoop

配环境变量:

export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

修改核心配置文件

进入$HADOOP_HOME/etc/hadoop,重点改这几个文件。

core-site.xml

Hadoop安装与配置难吗?Hadoop安装配置常见问题

:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/data/tmp</value>
  </property>
</configuration>

hdfs-site.xml:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/hadoop/data/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/hadoop/data/datanode</value>
  </property>
</configuration>

mapred-site.xml:

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

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>

workers文件写localhost。hadoop-env.sh里显式指定export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64。

格式化与启动

只格式化一次NameNode,反复格式化会丢集群ID。

hdfs namenode -format
start-dfs.sh
start-yarn.sh
jps

正常应看到NameNode、DataNode、ResourceManager、NodeManager、SecondaryNameNode,Web UI访问http://localhost:9870和http://localhost:8088。

Hadoop单机与伪分布式区别:选错模式会白折腾

三种运行模式对比

模式 进程 文件系统 适用场景 配置复杂度
单机 无HDFS/YARN 本地文件系统

Hadoop安装与配置难吗?Hadoop安装配置常见问题

调试MapReduce逻辑

低
伪分布式 单机多进程 HDFS/YARN 学习、功能验证 中
完全分布式 多节点多进程 HDFS/YARN 生产、大数据量 高

单机模式不需要改XML,直接hadoop jar跑本地任务,伪分布式模拟集群,但所有角色挤在一台机器,完全分布式才是真正多台机器协作,行业共识认为,学习阶段用伪分布式足够,生产必须上完全分布式。

什么时候用伪分布式,什么时候上完全分布式

  • 学习、写作业、验证代码:伪分布式。
  • 数据量上TB、要求容错、多用户并发:完全分布式。
  • 完全分布式至少3台节点,NameNode和ResourceManager分开更稳。
  • 预算有限可先伪分布式,再逐步加节点。

在云服务器上安装Hadoop要花多少钱?成本与地域选择

北京、上海等地域的云服务器怎么选

云服务器价格随地域、配置、计费方式波动,入门学习选2核4G、40G系统盘,按量付费或包月,通常每月几十到几百元,完全分布式建议3台4核8G或8核16G,SSD盘,内网互通。

地域上,北京、上海、广州、杭州等节点延迟低,北方用户可选华北2(北京),华东用户选华东1(杭州)或华东2(上海),价格不是唯一指标,内网带宽和磁盘IO更影响Hadoop表现。

云上安装Hadoop的额外注意点

  • 安全组只放行内网端口,9870、8088、9000、8032别直接暴露公网。
  • /etc/hosts绑定内网IP和主机名。
  • 用chronyd或ntpd做时间同步。
  • 数据盘挂载到/data,NameNode和DataNode目录分开。
  • 快照和备份策略提前做,NameNode元数据丢了很麻烦。

完全分布式集群配置与启动:多台机器怎么串起来

集群规划

主机名 IP 角色
node1 168.1.101 NameNode、ResourceManager
node2 168.1.102 DataNode、NodeManager、SecondaryNameNode
node3 168.1.103 DataNode、NodeManager

所有节点创建相同用户和路径,安装相同JDK和Hadoop版本。

Hadoop安装与配置难吗?Hadoop安装配置常见问题

分发安装与同步配置

在node1配好Hadoop后,用scp或rsync分发:

scp -r /opt/hadoop hadoop@node2:/opt/
scp -r /opt/hadoop hadoop@node3:/opt/

node1到所有节点做SSH免密。workers文件写node2、node3。core-site.xml中fs.defaultFS改为hdfs://node1:9000。yarn-site.xml中yarn.resourcemanager.hostname改为node1。

格式化与启动顺序

只在node1格式化:

hdfs namenode -format
start-dfs.sh
start-yarn.sh
jps

在node2、node3用jps确认DataNode和NodeManager,用hdfs dfsadmin -report查看DataNode是否全部注册。

Hadoop安装与配置常见问题解答

Hadoop启动后jps缺少DataNode怎么办?

先看日志:$HADOOP_HOME/logs/hadoop-hadoop-datanode-.log,常见原因有三个:dfs.datanode.data.dir权限不对;目录里残留旧clusterID;/etc/hosts主机名解析失败,删掉data和name目录后重新格式化,再启动,业内专家指出,生产环境不要随意格式化NameNode,先确认元数据备份。

Hadoop安装与配置需要多少内存?单机与集群配置怎么选?

伪分布式最低2核4G,建议4核8G,NameNode堆内存默认1G,可在hadoop-env.sh里调HDFS_NAMENODE_OPTS,完全分布式每节点8G起步,内存不足会导致NodeManager被YARN杀掉,单机调试2核2G也能跑,但别指望性能。

Hadoop安装与配置后如何验证HDFS和YARN正常?

跑几条命令就知道:

hdfs dfs -mkdir /test
echo hello > a.txt
hdfs dfs -put a.txt /test
hdfs dfs -cat /test/a.txt
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar pi 2 4

pi任务能出结果,说明HDFS和YARN基本正常,再打开9870和8088看Web UI状态,最后一个事实:Hadoop 3.x的默认端口已经改为9870和8088,旧教程里的50070和8080不再适用。

Hadoop安装与配置并不神秘,核心就是JDK、SSH、XML、格式化、启动这几步。 选对单机、伪分布式或完全分布式,按官方文档和实际硬件调整,就能少踩坑。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待