【Hadoop】搭建HA之报错锦集


一、写在前面✨

大家好!我是初心,希望我们一路走来能坚守初心!

今天跟大家分享的文章是 Hadoop搭建过程中的报错锦集 ,希望能帮助到大家!本篇文章收录于 初心Hadoop 专栏。

🏠 个人主页:初心%个人主页
🧑 个人简介:大家好,我是初心,和大家共同努力
💕欢迎大家:这里是CSDN,我记录知识的地方,喜欢的话请三连,有问题请私信😘

💕 有些人,一旦错过就不在。』—— 刘若英「后来」

二、Hadoop的active结点无法主备切换🔥

  • 报错内容

java.lang.RuntimeException: Unable to fence NameNode at slave1/192.168.10.107:8020

安装好的Hadoop高可用集群中,其中有一个结点可以从 standby 状态变为 active 状态,但是另外一台不可以。

  • 解决方案

集群中的所有结点都安装 psmisc 插件(执行下面的命令安装)即可。

sudo yum install -y psmisc

三、Hadoop Web端无法上传文件🍉

  • 报错内容

Couldn't upload the file xxx.

  • 解决方案

修改C:\Windows\System32\drivers\etc的 hosts 文件,将虚拟机 ip 和主机名对应起来,添加到 hosts 文件首部。

四、hdfs创建文件夹报错🍭

  • 报错内容

mkdir: test: No such file or directory

在这里插入图片描述
这是我在执行 hdfs 创建文件夹时报错的内容,当时执行的命令是:

hdfs dfs -mkdir /data1/data

显然,我是想创建一个二级目录,但是 /data1 目录不存在,因此无法创建 data 目录,需要加上 -p 参数,递归创建目录。

  • 解决方案

加上 -p 参数,递归创建参数即可。

hdfs dfs -mkdir -p /data1/data

五、IDEA操作Hdfs无法初始化集群🔥

  • 报错内容

Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.

这是我在使用 IDEA 操作 hdfs 进行 mapreduce 编程时报错的,因为是第一次使用,不明所以直接上手了,因此报了这样一个错误!原因是依赖导入不完整。

  • 解决方案

将依赖导入完全到 pom.xml 即可,我使用的是 hadoop-3.1.3 版本,这里提供最基本的 MapReduce 编程依赖(Maven)。

<dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.1.3</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-common</artifactId>
            <version>3.1.3</version>
        </dependency>

六、Java无法连接Hdfs🍭

  • 报错内容

Exception in thread "main" java.net.ConnectException: Call From LAPTOP-EE5QDU8J/192.168.10.1 to master:9000 failed on connection exception: java.net.ConnectException: Connection refused: no further information;

在使用Java连接 hdfs 时,报错无法连接,经过一番检查后,ip 没错,是端口号错误了,我使用的是8020端口,而代码上写的是9000端口,将9000改为8020即可。

  • 解决方案

到 hdfs-site.xml 文件中查看 hdfs 的内部通讯地址,使用该地址即可。

七、找不到Hadoop家目录🔥

  • 报错内容

java.io.FileNotFoundException: java.io.FileNotFoundException: Hadoop home directory F:\APP\BigData\Hadoop\hadoop\hadoop-3.1.0 does not exist

在F:\APP\BigData\Hadoop\hadoop\hadoop-3.1.0目录下无法找到 hadoop ,这个报错的根本原因是没有配置好 HADOOP_HOME ,只需要将 hadoop 环境变量配置好即可。

  • 解决方案

到高级系统设置中配置 Hadoop 的环境变量,并配置操作用户即可。


之后将 HADOOP_HOME 添加到 path 中即可。

%HADOOP_HOME%\bin

八、IDEA对MapReduce的toString调用报错🍭

  • 报错内容

Method threw ‘java.lang.IllegalStateException‘ exception. Cannot evaluate org.apache.hadoop.mapreduc

在执行 MapReduce 程序时,分为 map 函数 和 reduce 函数,在启动方法 run 中有做关于 map 和 reduce 的配置,但是报错了如上内容。

  • 解决方案

关闭 IDEA 中的启用“ tostring() ”对象视图

九、总结🔥

本文主要跟大家分享我在搭建 Hadoop HA 以及 MapReduce 编程时遇到的部分错误。

这就是今天要分享给大家的全部内容了,我们下期再见!😊

🏠 本文由初心原创,首发于CSDN博客, 博客主页:初心%🏠

🏠 我在CSDN等你哦!😍

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
搭建Hadoop的高可用(HA)环境,你需要考虑以下几个步骤: 1. 配置Hadoop集群:确保你已经成功地设置了一个Hadoop集群,并且所有节点都能够正常通信。 2. 配置ZooKeeper:HA模式下,Hadoop使用ZooKeeper来进行主节点的选举和故障切换。你需要安装和配置ZooKeeper集群。 3. 修改Hadoop配置文件:在core-site.xml、hdfs-site.xml和yarn-site.xml等配置文件中,进行如下修改: - 在core-site.xml中,指定ZooKeeper的地址。 - 在hdfs-site.xml中,设置HA相关的属性,如nameservice、namenode、journalnode等。 - 在yarn-site.xml中,设置ResourceManager的高可用属性。 4. 启动JournalNodes:JournalNodes用于存储HDFS的元数据日志,并确保数据的一致性。启动JournalNodes之前,需要在hdfs-site.xml中指定JournalNode的地址。 5. 格式化NameNode:使用`hdfs namenode -format`命令格式化NameNode。这将创建一个新的命名空间并为HA做准备。 6. 启动NameNode和DataNode:启动NameNode时,指定HA相关的配置参数,并确保DataNode也能够正常启动。 7. 启动ResourceManager和NodeManager:启动ResourceManager时,同样要指定HA相关的配置参数,并确保NodeManager也能够正常启动。 8. 进行故障切换测试:通过停止当前的Active节点,触发故障切换,验证HA环境是否正常工作。 以上是搭建Hadoop的高可用环境的基本步骤,具体的配置细节和命令可能会根据你的环境和需求有所不同。请确保在进行任何配置更改之前备份重要数据,并参考官方文档或相关资源获取更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向阳花花花花

感谢大佬支持,本人会继续努力哒

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值