hadoop单机伪分布环境配置

环境配置

这个板块实现的伪分布

  • ubuntu 24.04
  • hadoop-3.3.0
  • hbase-2.4.18
  • jdk 1.8.0_461
  • zookeeper-3.7.2

安装 JDK

解压

在已经下载好 jdk-8u461-linux-x64.tar.gz的目录下打开终端。

把jdk的文件解压到 /usr/local/java目录下

bash 复制代码
sudo mkdir -p /usr/local/java
sudo tar -zxvf jdk-8u461-linux-x64.tar.gz -C /usr/local/java

配置环境变量

~/.bashrc配置文件中修改java的配置:

bash 复制代码
export JAVA_HOME=/usr/local/java/jdk1.8.0_461
export PATH=$JAVA_HOME/bin:$PATH

刷新环境:

bash 复制代码
source ~/.bashrc
java -version
# 预期输出 java version "1.8.0_461"

配置SSH

安装并启动SSH服务

在终端执行:

bash 复制代码
sudo apt update
sudo apt install openssh-server -y

安装完成后,启动并设置开机自启:

bash 复制代码
sudo systemctl enable ssh
sudo systemctl start ssh

检查状态:

bash 复制代码
systemctl status ssh

如果看到 active (running) 就说明 SSH 已经正常运行。

配置免密登录(Hadoop 启动脚本需要)

Hadoop 在启动时需要通过 SSH 登录 本机的 localhost,所以要配置免密。

执行:

bash 复制代码
ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

然后给这个key起名

测试是否能无密码登录:

bash 复制代码
ssh localhost

能直接进去而不需要输入密码,就说明免密登录配置好了,输入 exit 退出。


安装 Haddoop 3.3.0

下载&解压

在已经下载好 hadoop-3.3.0.tar.gz的目录下运行:

bash 复制代码
tar -zxvf hadoop-3.3.0.tar.gz
sudo mv hadoop-3.3.0 /usr/local/hadoop

配置环境变量

~/.bashrc 添加:

bash 复制代码
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

刷新:

bash 复制代码
source ~/.bashrc
hadoop version
# 可以看到Hadoop 3.3.0就说明成功了

修改配置文件

$HADOOP_HOME/etc/hadoop 下修改对应的文件:

(按照前面的流程做的是在 /usr/local/hadoop/etc/hadoop下)

hadoop-env.sh

直接添加一行即可

bash 复制代码
export JAVA_HOME=/usr/local/java/jdk1.8.0_461
core-site.xml

修改原来的 <configuration></configuration>

因为现在是在本地模拟分布,所以使用localhost为ip地址。

作用:配置Hadoop核心参数

关键配置:

fs.defaultFS:定义默认文件系统为HDFS,地址是hdfs://localhost:9000

hadoop.tmp.dir:指定Hadoop运行时的临时目录

xml 复制代码
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>
hdfs-site.xml

修改原来的 <configuration></configuration>

作用:配置HDFS(Hadoop分布式文件系统)相关参数

关键配置:

dfs.replication:设置数据副本数为1(单机伪分布式)

dfs.namenode.name.dir:NameNode元数据存储位置

dfs.datanode.data.dir:DataNode数据存储位置

xml 复制代码
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///usr/local/hadoop/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///usr/local/hadoop/hdfs/datanode</value>
    </property>
</configuration>
mapred-site.xml

修改原来的 <configuration></configuration>

xml 复制代码
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
yarn-site.xml

修改原来的 <configuration></configuration>

xml 复制代码
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
  </property>
  <property>
		<name>yarn.application.classpath</name>
		<value>
		  $HADOOP_HOME/etc/hadoop,
		  $HADOOP_HOME/share/hadoop/common/*,
		  $HADOOP_HOME/share/hadoop/common/lib/*,
		  $HADOOP_HOME/share/hadoop/hdfs/*,
		  $HADOOP_HOME/share/hadoop/hdfs/lib/*,
		  $HADOOP_HOME/share/hadoop/mapreduce/*,
		  $HADOOP_HOME/share/hadoop/mapreduce/lib/*,
		  $HADOOP_HOME/share/hadoop/yarn/*,
		  $HADOOP_HOME/share/hadoop/yarn/lib/*
		</value>
	</property>
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<property>
		<name>yarn.nodemanager.remote-app-log-dir</name>
		<value>/tmp/logs</value>  <!-- 或 HDFS 上的 path: hdfs://localhost:9000/tmp/logs -->
	</property>
</configuration>

启动 Hadoop

bash 复制代码
hdfs namenode -format  # 这句是用于初始化NameNode的,在第一次启动前进行格式化。
start-dfs.sh
start-yarn.sh

检查当前启动的:

bash 复制代码
jps
# 应该看到 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager

可以通过下面的命令来停止之前的进程

bash 复制代码
stop-dfs.sh
stop-yarn.sh

Web UI:


安装 ZooKeeper 3.7.1

HBase 依赖 ZooKeeper。

下载 & 解压

下载 apache-zookeeper-3.7.2-bin.tar.gz压缩包,在文件所在目录运行:

bash 复制代码
tar -zxvf apache-zookeeper-3.7.2-bin.tar.gz
sudo mv apache-zookeeper-3.7.2-bin /usr/local/zookeeper

配置

复制默认配置:

bash 复制代码
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

编辑 zoo.cfg

可以直接全部替换,或者找到对应项来替换:

ini 复制代码
tickTime=2000
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
initLimit=10
syncLimit=5

创建目录:

bash 复制代码
sudo mkdir -p /usr/local/zookeeper/data
sudo mkdir -p /usr/local/zookeeper/logs

启动 ZooKeeper

添加环境变量,编辑 ~/.bashrc

bash 复制代码
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

刷新

bash 复制代码
source ~/.bashrc
bash 复制代码
zkServer.sh start   # 运行
zkServer.sh status  # 查看状态
zkServer.sh stop   # 运行

如果看到 Mode: standalone,说明启动成功。

再用 jps,应该看到 QuorumPeerMain 进程。

安装 HBase

下载 & 解压

解压 hbase-2.4.18-bin.tar.gz并移动

bash 复制代码
tar -zxvf hbase-2.4.18-bin.tar.gz
sudo mv hbase-2.4.18 /usr/local/hbase

配置环境变量

~/.bashrc 添加:

bash 复制代码
export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$PATH

刷新:

bash 复制代码
source ~/.bashrc

修改配置文件

$HBASE_HOME/conf 下:

(/usr/local/hbase/conf)

hbase-env.sh

添加语句

bash 复制代码
export JAVA_HOME=/usr/local/java/jdk1.8.0_461
export HBASE_MANAGES_ZK=false   # 因为我们自己启动了独立的 ZooKeeper
hbase-site.xml
xml 复制代码
<configuration>
    <!-- 使用 HDFS 存储 HBase 数据 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:9000/hbase</value>
    </property>

    <!-- 表示这是一个分布式集群(即便是伪分布式) -->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <!-- ZooKeeper 配置 -->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
</configuration>

启动 HBase

bash 复制代码
start-hbase.sh

验证:

bash 复制代码
jps
# 多了 HMaster、HRegionServer

Web UI:


启动顺序总结

  1. 启动 Hadoop(HDFS + YARN)
bash 复制代码
start-dfs.sh
start-yarn.sh
  1. 启动 ZooKeeper
bash 复制代码
zkServer.sh start
  1. 启动 HBase
bash 复制代码
start-hbase.sh


相关推荐
newsxun1 分钟前
光智融合,空间新生|Jupiter SR 亮相光博会CIOE 2026
大数据·人工智能
大树8814 分钟前
液冷系统的真正瓶颈,藏在那层不到1毫米的材料里
大数据·运维·服务器·人工智能·ai
Vicky_time26 分钟前
2026美国海外仓TOP5技术评测:FBA中转海外仓系统对接与操作方案
大数据·系统架构
北京晶数信息科技1 小时前
加油机数据采集设备加油机数据采集器加油机智能采集器液位仪数据采集设备原厂成品油流通数智化综合监管平台技术原理与落地应用解决方案
大数据·人工智能·物联网·需求分析
凌风的跨境分享1 小时前
Temu店群运维提效:定时策略自动化任务全场景实操指南
大数据·运维·前端·人工智能·架构·自动化
Elastic 中国社区官方博客1 小时前
Elasticsearch 向量数据库:几分钟内完成部署,以经济高效的方式扩展至数千亿规模
大数据·运维·数据库·elasticsearch·搜索引擎·ai·全文检索
A hao1 小时前
LED视频处理器中帧率与刷新率的区别
大数据·图像处理·人工智能·音视频
AgentMaster1 小时前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法
数融智域1 小时前
2026年获客智能体排行榜top前五
大数据·人工智能
Zen20032 小时前
建文AI·新能源项目管理软件解决方案:从立项→设计→采购→施工→并网,一条线管到底,专为光伏、风电、储能、充电桩工程打造;让新能源项目,交付快一步
大数据·工程项目管理软件·新能源项目管理·光伏项目管理·风电项目管理·充电桩项目管理·储能项目管理软件