文章目录

  • 在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节点

解决方法一

hadoop rpc优化 hadoop解决方案_Hadoop

  1. 首先查看日志,发现日志中报错如下:
    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
  2. 查看Hadoop的 core-site.xml配置;
<!-- 指定HDFS中NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://linux121:9000</value>
</property>
  1. 里面的IP地址一定要是虚拟机的IP地址 , 若是不知道 , 可以用ifconfig命令进行查看
  2. 最后关闭namenode和datatnode , 重新打开就可以

解决方法二

  1. 查看etc/hosts配置文件,注释掉第一,二行

解决方法三

  1. 重新格式化hdfs系统(慎用)
  2. 打开Hadoop的hdfs-site.xml配置文件,找到这两个属性对应的目录,删除掉,如果没有配置,去找默认目录,一般是temp,删除掉
  3. hadoop rpc优化 hadoop解决方案_解决方法_02


  4. 删除core-site.xml配置文件指定的相关目录,将hadoop.tmp.dir所指定的目录删除,即删除Hadoop的临时文件路径。
  5. hadoop rpc优化 hadoop解决方案_hadoop rpc优化_03


  6. 重新执行命令:hadoop namenode -format
  7. 这种格式化HDFS的方式是需要把原来HDFS中的数据全部清空,然后再格式化并安装一个全新的HDFS。一定要慎用!
hadoop jar xxxx/hadoop-mapreduce-examples-2.9.2.jar xxx 命令报错的解决方法

问题描述及解决方法

  1. 错误提示: java.net.ConnectException: Call From xxxxx to xxxx failed on connection

  2. 第一种可能产生报错的原因是 hadoop 的环境变量报错了,使用which hadoop查看一下,有错误改回来

  3. 第二种可能是使用 hadoop namenode format进行两次格式化,导致VERSION中的版本对不上了,查看下自己的VERSION路径,xxxx/data/tmp/dfs/data/current

  4. 第三种是防火墙没关闭:

    1.查看防火墙状态
    systemctl status firewalld
    2.设置防火墙停用状态
    systemctl stop firewalld
    3.设置防火墙功能失效,开机自动关闭
    systemctl disable firewalld
  5. 查看core-site.xml配置。其中fs.defaultFS配置的值应为主机名或者ip,不能配置为localhost或者127.0.0.1。如主机名为common
  6. hadoop rpc优化 hadoop解决方案_Hadoop_04

  7. 还是不行的话,就检查9000端口情况netstat -tlpn,如果9000端口前的ip地址是127.0.0.1,则表明只能本地访问。然后再去检查 /etc/hosts,注释这两行,并配置ip地址与主机名
  8. hadoop rpc优化 hadoop解决方案_hadoop rpc优化_05

  9. 还是不行的话,那就是主节点的9000端口打开了,但是不允许远程访问,可使用telnet ip port 检验

windows运行Hadoop报错:Did not find winutils.exe、Could not locate Hadoop executable:

错误提示

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)

错误原因

  1. 没有在windows上配置hadoop的环境变量,把本地的hadoop配置一下就可以了
  2. 在window上的hadoop/bin中缺少winutils.exe、hadoop.dll文件,也可以将hadoop.dll文件复制到C盘中的system32目录中,然后重启电脑,再运行就可以了