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

Hadoop最新版本hadoop-3.4.1搭建伪分布式集群以及相关报错解决

一:概述

        Hadoop 是一个开源的分布式计算框架,广泛应用于大数据处理。伪分布式集群是 Hadoop 的一种部署模式,它可以在单台机器上模拟集群环境,适合初学者进行学习和实验。本文将详细介绍如何在单台机器上搭建 Hadoop 3.4.1 的伪分布式集群。

二:具体说明

        2.1 环境准备

需要安装好虚拟机CentOS8,并且已经配置了SSH远程连接,以便于更好的操作。

我演示的是在CentOS8中配置伪分布式集群搭建。

        首先,我们需要在虚拟机中配置java环境,详细过程如下所示:
 

  首先将jdk的安装包,通过文件传输工具传输到/usr/local/soft/jdk中,让后将其解压的jdk8目录中

接下来在/etc/profile中配置环境变量

vim /etc/profile

在文件中添加如下的内容

JAVA_HOME路径为jdk的解压根目录。

配置完成之后,保存。

为了能够使这个配置生效,需要使用以下的命令来重新加载这个配置文件。

source /etc/profile

接着查看是否配置成功,这里和Win中查看方法相同

java -version

如果出现以下图片的内容,则证明配置成功。

如果没有,说明配置文件中配置的路径有误或者未执行重新加载配置文件的命令。

 2.2 搭建Hadoop伪分布式集群

        将hadoop的安装包上传到虚拟机的/opt目录中

   配置免密登录

        修改主机名

vim /etc/hostname
# 或者使用以下的命令
hostnamectl set-hostname master

将默认的主机名改为master,保存并退出

接下来修改hosts文件

vim /etc/hosts

 接着重启虚拟机,并生成公钥和私钥对。

cd .ssh
ssh-keygen -t rsa

        接着使用下面命令进行免密登录配置

ssh-copy-id master

        利用以下的命令检查免密登录是否成功。

ssh master

        如果出现上图中的内容,则说明配置免密登录成功了。

配置HDFS

        将上传到/usr/local/soft/hadoop/hadoop3.4.1中的压缩包解压到/usr/local/soft/hadoop/hadoop3.4.1/中

通过以下的命令配置hadoop-env.sh文件

cd /usr/local/soft/hadoop/hadoop3.4.1/hadoop3.4.1/etc/hadoop
cd /etc/hadoop

         接着去编辑这个hadoop目录中的hadoop-env.sh文件,在里面添加JDK的家目录

        通过以下的步骤去进行。

如果你不知道这个已经配置好的jdk家目录中,可以使用以下的命令打印出这个路径

echo $JAVA_HOME
vim hadoop-env.sh

        

 然后保存并且退出。

        接下来配置core-site.xml
vim core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://master:8020</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/soft/hadoop/hadoop3.4.1/hadoop3.4.1/data</value></property>
</configuration>

        再接下来配置hdfs-site.xml

vim hdfs-site.xml
<configuration><property><name>dfs.replication</name><value>1</value></property>
</configuration
        接下来,格式化HDFS

hdfs namenode -format

        2.3 HDFS的启动和停止

        启动之前,需要做一些准备

   进入到sbin目录中,修改四个文件

对于start-dfs.sh和stop-dfs.sh文件,尾部添加如下的参数
cd /usr/local/soft/hadoop/hadoop3.4.1/hadoop3.4.1/sbin
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
[root@master sbin]# vim start-dfs.sh
[root@master sbin]# vim stop-dfs.sh
[root@master sbin]# vim start-yarn.sh
[root@master sbin]# vim stop-yarn.sh
     
对于start-yarn.sh和stop-yarn.sh文件,尾部添加下列参数:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
/usr/local/soft/hadoop/hadoop3.4.1/hadoop3.4.1
# 启动命令
sbin/start-dfs.sh
# 关闭命令
sbin/stop-dfs.sh

        

        在 Hadoop 的配置文件中定义运行服务的用户。编辑   

$HADOOP_HOME/etc/hadoop/hadoop-env.sh   文件,添加以下内容:bashexport HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"


        注意:虽然这里使用了   root   用户,但在实际生产环境中,建议使用非   root   用户来运行 Hadoop 服务,以增强安全性

    

        我们发现,现在执行,刚才那个错误已经没有了,但是又出现了一个错误。这个要去将/etc/hosts中以下内容注释掉

vim /etc/hosts

        接着杀死,已经启动的进程,然后重新启动,看是否还有这个错误/警告。

        重现启动,发现已经没有了警告。

        

        

        2.4 YARN的相关配置 
        (1)配置yarn-site.xml

vim yarn-site.xml
<configuration><property><name>yarn.resourcemanager.hostsname</name><value>master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>


        (2)配置mapred-site.xml

        把mapred-site.xml.template修改成mapred-site.xml,如果不是则不需要修改

# cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
</configuration>

        启动和停止YARN

启动命令:

start-dfs.sh

 暂停命令:

stop-dfs.sh

同理dfs的启动,若不能成功启动,则需退回/opt/hadoop目录下使用sbin/start-yarn.sh或sbin/stop-yarn.sh

        

        在 Hadoop 的配置文件中定义运行服务的用户。编辑   $HADOOP_HOME/etc/hadoop/hadoop-env.sh   文件,添加以下内容:export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"

        

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

        接下来,就可以顺利启动成功了!!

        

                2.5 web页面访问管理

首先需要关闭防火墙,我们这里直接关闭,一般开发中,只是开放指定端口

[root@master hadoop3.4.1]# systemctl stop firewalld
[root@master hadoop3.4.1]# systemctl disable firewalld 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

        接下来去访问HDFS和YARN的Web界面

http://master:9870/
http://master:8088/

        

          dfs.namenode.http-address  :NameNode 的 HTTP 服务端口(默认为   50070  ,Hadoop 3.x 中为   9870  )。•   dfs.datanode.http.address  :DataNode 的 HTTP 服务端口(默认为   50075  ,Hadoop 3.x 中为   9864  )


http://www.mrgr.cn/news/92549.html

相关文章:

  • 2004-2024年光刻机系统及性能研究领域国内外发展历史、差距、研究难点热点、进展突破及下一个十年研究热点方向2025.2.27
  • 分布式Session
  • 【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
  • Mobaxterm服务器常用命令(持续更新)
  • UE5 Gameplay框架及继承关系详解
  • Windows下不建议使用C/C++运行库的本地化功能
  • 计算机工具基础(五)——Vim
  • KubeKey一键安装部署k8s集群和KubeSphere详细教程
  • Android移动应用开发实践-1-下载安装和简单使用Android Studio 3.5.2版本(频频出错)
  • 数据开发面试:DQL,DDL,DTL
  • 初会学习记录
  • 【射频仿真学习笔记】Cadence的Layout EXL与ADS dynamic link联动后仿
  • Harmony开发笔记(未完成)
  • 【JAVA-数据结构】Map和Set
  • 30 分钟从零开始入门 CSS
  • DeepSeek R1 + 飞书机器人实现AI智能助手
  • spring结合mybatis多租户实现单库分表
  • C语言机试编程题
  • <tauri><rust><GUI><PLC>基于tauri,编写一个串口485调试助手
  • thinkphp下的Job队列处理