【Hadoop】 | 搭建HA之报错锦集

【Hadoop】 | 搭建HA之报错锦集_第1张图片

知识目录

  • 一、写在前面✨
  • 二、Hadoop的active结点无法主备切换
  • 三、Hadoop Web端无法上传文件
  • 四、hdfs创建文件夹报错
  • 五、IDEA操作Hdfs无法初始化集群
  • 六、Java无法连接Hdfs
  • 七、找不到Hadoop家目录
  • 八、IDEA对MapReduce的toString调用报错
  • 九、总结

一、写在前面✨

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

今天跟大家分享的文章是 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.

【Hadoop】 | 搭建HA之报错锦集_第2张图片

  • 解决方案

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

【Hadoop】 | 搭建HA之报错锦集_第3张图片

四、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.hadoopgroupId>
            <artifactId>hadoop-commonartifactId>
            <version>3.1.3version>
        dependency>
        <dependency>
            <groupId>org.apache.hadoopgroupId>
            <artifactId>hadoop-hdfsartifactId>
            <version>3.1.3version>
        dependency>
        <dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>1.2.17version>
        dependency>
        <dependency>
            <groupId>org.apache.hadoopgroupId>
            <artifactId>hadoop-clientartifactId>
            <version>3.1.3version>
        dependency>
        
        <dependency>
            <groupId>org.apache.hadoopgroupId>
            <artifactId>hadoop-mapreduce-client-coreartifactId>
            <version>3.1.3version>
        dependency>
        <dependency>
            <groupId>org.apache.hadoopgroupId>
            <artifactId>hadoop-mapreduce-client-commonartifactId>
            <version>3.1.3version>
        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】 | 搭建HA之报错锦集_第4张图片

七、找不到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】 | 搭建HA之报错锦集_第5张图片
之后将 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 的配置,但是报错了如上内容。

【Hadoop】 | 搭建HA之报错锦集_第6张图片

  • 解决方案

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

【Hadoop】 | 搭建HA之报错锦集_第7张图片

九、总结

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

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

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

我在CSDN等你哦!

你可能感兴趣的:(#,Hadoop,hadoop,hdfs,大数据)