当前位置: 首页 > news >正文

centos配置hadoop环境变量并可启动hadoop集群

想在 CentOS 上安装 Hadoop 3.4.1,我给你写一个完整、可执行的安装配置流程(假设你已经下载了 hadoop-3.4.1.tar.gz 并且系统已经安装了 JDK 11)。


1️⃣ 准备工作

  1. 安装 Java(JDK 11)并设置环境变量:

sudo mkdir -p /opt/jdk
sudo tar -zxvf jdk-11.0.27_linux-x64_bin.tar.gz -C /opt/jdk
echo "export JAVA_HOME=/opt/jdk/jdk-11.0.27" | sudo tee -a /etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" | sudo tee -a /etc/profile
source /etc/profile
java -version   # 验证
  1. 创建 Hadoop 安装目录:

sudo mkdir -p /opt/hadoop
sudo chown -R $(whoami):$(whoami) /opt/hadoop

2️⃣ 解压 Hadoop

cd /opt/hadoop
tar -zxvf /path/to/hadoop-3.4.1.tar.gz
#或者
#cd /opt
#sudo tar -zxvf hadoop-3.4.1.tar.gz -C /opt/hadoopmv hadoop-3.4.1 hadoop

此时 Hadoop 安装目录为 /opt/hadoop/hadoop


3️⃣ 配置环境变量

编辑用户 .bashrc 或全局 /etc/profile

nano ~/.bashrc

添加以下内容:

# Hadoop 环境变量
export HADOOP_HOME=/opt/hadoop/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export JAVA_HOME=/opt/jdk/jdk-11.0.27

sudo /opt/hadoop/hadoop-3.4.1/bin/hdfs namenode -format

netstat -tlnp | grep 9000

生效配置:

source ~/.bashrc

验证:

hadoop version

4️⃣ 配置 Hadoop

进入配置文件目录:

cd $HADOOP_HOME/etc/hadoop

编辑核心配置文件:

4.1 core-site.xml

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

4.2 hdfs-site.xml

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

或者

<configuration><property><name>dfs.data.dir</name><value>/data/hdfs/datanode</value></property><property><name>dfs.replication</name><value>1</value> <!-- 单副本方便测试 --></property>
</configuration>

core-site.xml必须配合hdfs-site.xml的文件配置,

单独的core-site.xml的文件只能启动namenode节点

单独的hdfs-site.xml的文件只能启动datanode节点

如何单独启动namenode节点和datanode节点

命令行:

 hdfs --daemon start datanode
 hdfs --daemon stop datanode
 hdfs --daemon start namenode
 hdfs --daemon stop namenode

如果启动后出现

或者出现hdfs命令找不到就会是hdfs-site.xml出错。

可能是hdfs-site.xml的目录配错了。

修改成

netstat -tlnp | grep 9000

使用 jps 检查进程:

命令行:jps

4.3 mapred-site.xml

复制模板文件:

在文件夹

/opt/hadoop/hadoop-3.4.1/etc/hadoop

这里

cp mapred-site.xml.template mapred-site.xml
nano mapred-site.xml

cp命令是复制粘贴一个命名改变的文件。

不改变原文件。

添加:

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

4.4 yarn-site.xml

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

5️⃣ 创建 HDFS 数据目录

mkdir -p /opt/hadoop/hadoopdata/hdfs/namenode
mkdir -p /opt/hadoop/hadoopdata/hdfs/datanode

确保当前用户可写:

sudo chmod 777 /opt/hadoop/hadoopdata
sudo chown -R $(whoami):$(whoami) /opt/hadoop/hadoopdata

6️⃣ 格式化 Namenode

hdfs namenode -format

输出成功提示表示 HDFS 可以启动。


7️⃣ 启动 Hadoop

  • 启动 HDFS:

start-dfs.sh
  • 启动 YARN:

start-yarn.sh
  • 验证:

jps

应该看到:

NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager

停止

stop-dfs.shstop-yarn.sh

8️⃣ 测试 Hadoop

创建目录并上传文件:

hdfs dfs -mkdir /userhdfs dfs -mkdir /user/$(whoami)/1
hdfs dfs -mkdir /user/$(whoami)
hdfs dfs -put /etc/hosts /user/$(whoami)/
hdfs dfs -put /test/ /user/$(whoami)/
hdfs dfs -ls /user/$(whoami)

hdfs删除文件

hdfs删除文件hdfs dfs -rm /user/$(whoami)/hostshdfs删除空文件夹hdfs dfs -rm /user/$(whoami)/hosts使用递归删除命令可删除有文件的文件夹:hdfs dfs -rm -r /user/$(whoami)/test

✅ 到此,Hadoop 3.4.1 + JDK 11 在 CentOS 上已经配置完成,并且可以正常使用 HDFS 和 YARN。


注意事项

  1. 单独 DataNode 必须能访问 NameNode,否则无法注册。

  2. dfs.data.dir 必须有写权限。

  3. 如果是单节点集群,只启动 DataNode 没用,因为没有 NameNode 管理元数据。

  4. 可用于扩展已有 NameNode 集群,增加存储容量。

根据你的 jps 输出,你的 Hadoop 组件都在运行:

28126 NameNode
28254 DataNode
28537 SecondaryNameNode
28809 ResourceManager
28915 NodeManager

对应的 Web UI 地址如下:


1️⃣ NameNode Web UI

  • 查看 HDFS 状态(文件系统容量、目录、DataNode 状态等)

  • 默认端口:9870(Hadoop 3.x)

http://localhost:9870/
  • 功能:

    • 查看 HDFS 总容量和已用容量

    • 查看 DataNode 列表和状态

    • 浏览 HDFS 目录结构


2️⃣ ResourceManager Web UI

  • 查看 YARN 集群状态和运行中的 MapReduce 任务

  • 默认端口:8088

http://localhost:8088/
  • 功能:

    • 集群节点状态(NodeManager 列表)

    • 正在运行的应用程序(MapReduce 作业)

    • 作业历史记录


3️⃣ DataNode / NodeManager Web UI(可选)

  • DataNode 默认端口:9864

http://localhost:9864/
  • NodeManager 默认端口:8042

http://localhost:8042/
  • 功能:

    • 查看单个节点的资源使用情况

    • 查看运行的容器和日志


总结

  • HDFS 文件系统http://localhost:9870/

  • YARN 集群 / MapReduce 作业http://localhost:8088/

  • 单节点状态(可选):

    • DataNode:http://localhost:9864/

    • NodeManager:http://localhost:8042/

你可以先打开 http://localhost:9870/ 查看 HDFS,再打开 http://localhost:8088/ 查看 MapReduce 作业状态。


文章转载自:

http://LpRGfpy3.ngmjn.cn
http://kNDUmn4H.ngmjn.cn
http://i8uqz0eX.ngmjn.cn
http://6GVWhMKi.ngmjn.cn
http://orVO8kFt.ngmjn.cn
http://jWfOReYW.ngmjn.cn
http://sP5QFl6V.ngmjn.cn
http://98gB1SNK.ngmjn.cn
http://pnnlZ3O8.ngmjn.cn
http://feqi27SZ.ngmjn.cn
http://aRMuLFBF.ngmjn.cn
http://CZQLsndr.ngmjn.cn
http://elPkUMzZ.ngmjn.cn
http://cLDv3e3w.ngmjn.cn
http://uUMeTrb0.ngmjn.cn
http://3FLtEBXA.ngmjn.cn
http://bNjCYzKv.ngmjn.cn
http://JpEaLZgt.ngmjn.cn
http://7opmjSUD.ngmjn.cn
http://fIpGwd3C.ngmjn.cn
http://JbEGGVE1.ngmjn.cn
http://71Vw666d.ngmjn.cn
http://k2rZQIyK.ngmjn.cn
http://8bOL7DLN.ngmjn.cn
http://A3Kh7cWz.ngmjn.cn
http://A4uw3yng.ngmjn.cn
http://LjuF7EDg.ngmjn.cn
http://Gscek0SM.ngmjn.cn
http://aB5lbZq6.ngmjn.cn
http://bmiE2PGV.ngmjn.cn
http://www.dtcms.com/a/387257.html

相关文章:

  • 告别“扁平化”UI:我用Substance Painter+glTF,构建空间感交互界面工作流
  • 【2026计算机毕业设计】基于Django的选课系统的设计与实现
  • 大文件传输软件选型指南:如何选择高效安全的企业级解决方案
  • 元宇宙与教育产业:沉浸式交互重构教育全流程生态
  • linux时间同步
  • Linux嵌入式自学笔记(基于野火EBF6ULL):3.连网、Linux文件目录
  • 【高并发内存池——项目】thread cache 讲解
  • InnoDB ACID实现:数据库可靠性的核心秘密
  • python ui框架
  • 【Linux手册】解决多线程共享资源访问冲突:互斥锁与条件变量的使用及底层机制
  • 基于微信小程序跑腿小程序设计与实现
  • 微信小程序-6-页面布局和事件绑定以及页面跳转
  • InnoDB多版本控制:揭秘MVCC核心机制
  • SpringMVC 系列博客(二):核心功能深入 —— 请求映射、返回值与参数绑定
  • HTTPS报文在SSL/TLS证书安全隧道传输的原理
  • 线性回归与 Softmax 回归技术报告
  • 不同团队如何选GIS软件?ArcGIS Pro、GISBox与SuperMap优劣势及适用方案
  • 静态标签云
  • AI解决企业内训之痛-智能企业内训平台解决方案
  • 容器化部署番外篇之docker网络通信06
  • Windows安装ES8.10流程及安装过程中出现的问题
  • 【工具代码】使用Python截取(切割)视频片段,截取视频中的音频,截取音频片段
  • Linux --- 权限
  • netty集成protobuf
  • ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
  • io_uring最简单的实例io_uring-test.c分析
  • 15.Linux时间管理
  • Linux 系统中的 Crond 服务:定时任务管理全指南
  • JDBC学习笔记
  • LoRA翻译