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  )

### Hadoop 3.4.1 安装教程 #### 创建用户并安装基础软件 为了确保系统的安全性和权限管理,在Master节点上创建专门用于运行Hadoop的服务账户,并安装必要的依赖工具和服务。这包括但不限于SSH服务端以及Java开发环境的部署[^1]。 ```bash sudo adduser hadoop su - hadoop ssh-keygen -t rsa -P &#39;&#39; -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys ``` 对于Java环境而言,建议采用官方推荐版本以获得最佳兼容性支持。可以通过APT或其他包管理系统来简化这一过程: ```bash sudo apt-get update && sudo apt-get install openjdk-8-jdk -y java -version ``` #### 下载与解压Hadoop发行版 前往Apache官方网站获取最新稳定版本的二进制分发文件,并将其放置于指定路径下以便后续操作。这里假设目标位置为`/opt/hadoop-3.4.1`: ```bash wget https://downloads.apache.org/hadoop/common/stable/hadoop-3.4.1.tar.gz -O /tmp/hadoop-latest.tar.gz tar zxvf /tmp/hadoop-latest.tar.gz -C /opt/ ln -s /opt/hadoop-3.4.1 /opt/hadoop ``` #### 编辑配置文件 编辑位于`$HADOOP_HOME/etc/hadoop/`目录下的多个XML格式配置文件,调整参数设置满足实际需求。特别是`core-site.xml`, `hdfs-site.xml`, 和`yarn-site.xml`. 同样重要的是修改`hadoop-env.sh`脚本中的JAVA_HOME变量指向正确的JDK安装路径[^3]: ```xml <!-- core-site.xml --> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> <!-- hdfs-site.xml --> <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> <!-- yarn-site.xml --> <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration> ``` 在`hadoop-env.sh`中加入如下行: ```sh export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` #### 初始化NameNode并启动集群 完成上述准备工作之后就可以初始化Namenode元数据存储空间,并通过start-dfs.sh命令一次性激活整个分布式文件系统组件。同样地,YARN资源调度器也需要被单独启动: ```bash /opt/hadoop/bin/hdfs namenode -format /opt/hadoop/sbin/start-dfs.sh /opt/hadoop/sbin/start-yarn.sh ``` 验证各主要进程是否正常工作可以借助jps工具查看当前活跃线程列表: ```bash jps ``` 如果一切顺利,则应该能看到类似于以下输出的结果集(具体名称可能有所不同取决于所使用的Hadoop版本): - NameNode - DataNode - ResourceManager - NodeManager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值