文章目录
- 在web端查看Hdfs界面只有一个Live Node节点
- 解决方法一
- 解决方法二
- 解决方法三
- hadoop jar xxxx/hadoop-mapreduce-examples-2.9.2.jar xxx 命令报错的解决方法
- 问题描述及解决方法
- windows运行Hadoop报错:Did not find winutils.exe、Could not locate Hadoop executable:
- 错误提示
- 错误原因
在web端查看Hdfs界面只有一个Live Node节点
解决方法一
- 首先查看日志,发现日志中报错如下:
Call From linux122/192.168.88.122 to linux121:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
- 查看Hadoop的
core-site.xml
配置;
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://linux121:9000</value>
</property>
- 里面的IP地址一定要是虚拟机的IP地址 , 若是不知道 , 可以用ifconfig命令进行查看
- 最后关闭namenode和datatnode , 重新打开就可以
解决方法二
- 查看etc/hosts配置文件,注释掉第一,二行
解决方法三
- 重新格式化hdfs系统(慎用)
- 打开Hadoop的hdfs-site.xml配置文件,找到这两个属性对应的目录,删除掉,如果没有配置,去找默认目录,一般是temp,删除掉
- 删除core-site.xml配置文件指定的相关目录,将hadoop.tmp.dir所指定的目录删除,即删除Hadoop的临时文件路径。
- 重新执行命令:hadoop namenode -format
- 这种格式化HDFS的方式是需要把原来HDFS中的数据全部清空,然后再格式化并安装一个全新的HDFS。一定要慎用!
问题描述及解决方法
错误提示: java.net.ConnectException: Call From xxxxx to xxxx failed on connection
第一种可能产生报错的原因是 hadoop 的环境变量报错了,使用which hadoop查看一下,有错误改回来
第二种可能是使用
hadoop namenode format
进行两次格式化,导致VERSION中的版本对不上了,查看下自己的VERSION路径,xxxx/data/tmp/dfs/data/current
第三种是防火墙没关闭:
1.查看防火墙状态 systemctl status firewalld 2.设置防火墙停用状态 systemctl stop firewalld 3.设置防火墙功能失效,开机自动关闭 systemctl disable firewalld
- 查看core-site.xml配置。其中fs.defaultFS配置的值应为主机名或者ip,不能配置为localhost或者127.0.0.1。如主机名为common
- 还是不行的话,就检查9000端口情况
netstat -tlpn
,如果9000端口前的ip地址是127.0.0.1,则表明只能本地访问。然后再去检查/etc/hosts
,注释这两行,并配置ip地址与主机名 还是不行的话,那就是主节点的9000端口打开了,但是不允许远程访问,可使用telnet ip port 检验
错误提示
java.io.FileNotFoundException: Could not locate Hadoop executable: D:\main\hadoop-3.1.3\bin\winutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems
at org.apache.hadoop.util.Shell.getQualifiedBinInner(Shell.java:620)
at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:593)
at org.apache.hadoop.util.Shell.(Shell.java:690)
at org.apache.hadoop.util.StringUtils.(StringUtils.java:78)
错误原因
- 没有在windows上配置hadoop的环境变量,把本地的hadoop配置一下就可以了
- 在window上的hadoop/bin中缺少winutils.exe、hadoop.dll文件,也可以将hadoop.dll文件复制到C盘中的system32目录中,然后重启电脑,再运行就可以了