知识目录
- 一、写在前面✨
- 二、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.
- 解决方案
修改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等你哦!😍