Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection

这篇具有很好参考价值的文章主要介绍了Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

在做 HDFS编程实践操作 的时候,遇到一个报错信息。

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

在IDEA中执行hadoop相关的的程序时,出现以下的报错信息,随即开始排错之旅,一波三折。

Exception in thread "main" java.net.ConnectException: Call From hadoop01/192.168.30.134 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:930)
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:845)
    at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1571)
    at org.apache.hadoop.ipc.Client.call(Client.java:1513)
    at org.apache.hadoop.ipc.Client.call(Client.java:1410)
    at org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:258)
    at org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:139)
    at com.sun.proxy.$Proxy12.getListing(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getListing(ClientNamenodeProtocolTranslatorPB.java:689)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:433)
    at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:166)
    at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:158)
    at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:96)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:362)
    at com.sun.proxy.$Proxy13.getListing(Unknown Source)
    at org.apache.hadoop.hdfs.DFSClient.listPaths(DFSClient.java:1702)
    at org.apache.hadoop.hdfs.DFSClient.listPaths(DFSClient.java:1686)
    at org.apache.hadoop.hdfs.DistributedFileSystem.listStatusInternal(DistributedFileSystem.java:1113)
    at org.apache.hadoop.hdfs.DistributedFileSystem.access$600(DistributedFileSystem.java:149)
    at org.apache.hadoop.hdfs.DistributedFileSystem$24.doCall(DistributedFileSystem.java:1188)
    at org.apache.hadoop.hdfs.DistributedFileSystem$24.doCall(DistributedFileSystem.java:1185)
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
    at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:1195)
    at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:2078)
    at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:2122)
    at MergeFile.doMerge(MergeFile.java:39)
    at MergeFile.main(MergeFile.java:65)
Caused by: java.net.ConnectException: Connection refused
    at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:777)
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:205)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:600)
    at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:652)
    at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:773)
    at org.apache.hadoop.ipc.Client$Connection.access$3800(Client.java:347)
    at org.apache.hadoop.ipc.Client.getConnection(Client.java:1632)
    at org.apache.hadoop.ipc.Client.call(Client.java:1457)

namenode格式化正常,集群启动一切正常的情况下,在使用IDEA执行HDFS时间却出现上面的错误。

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

集群启动的方法可以参考 Hadoop(02) Hadoop-3.3.6 集群的配置教程 中第五小节中的集群启动部分。

最后可以使用jps查看服务是否都启动成功了。

解决思路

方法一

hadoop jar /usr/local/hadoop-3.3.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 5 10

说明:命令运行了一个名为"pi"的示例作业,用于计算Pi的近似值。作业参数为5和10,表示将使用5个Mapper和每个Mapper处理10个样本。

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

如果这一步有问题,可以参考资料: hadoop运行程序时报错java.net.ConnectException: java.net.ConnectException: 拒绝连接;_hadoop connectexception: call from n01/192.168.3.1-CSDN博客

 来解决。

方法二

执行代码:

hadoop fs -ls hdfs://localhost:9000

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

发现和IDEA控制台中同样地报错信息。

查看9000端口的监听地址:

netstat -anp | grep 9000

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

 发现端口监听IP为192.168.30.134,是服务器(虚拟主机hadoop01)的IP,再查看下core-site.xml

cd /usr/local/hadoop-3.3.6/etc/hadoop/
cat core-site.xml

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

配置文件里面HDFS主机IP是hadoop01而不是127.0.0.1(localhost),所以当我们访问127.0.0.1:9000的时候会被拒绝,因为我们在做映射文件的时候hadoop01 对应的是192.168.30.134,而 localhost 对应的是 127.0.0.1,所以当我们访问localhost:9000时,会被拒绝。

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

解决方法

将代码中的 localhost 改为 hadoop01 

Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection,Hadoop,hadoop,大数据,分布式

或者 将配置文件core-site.xml 中的fs.defaultFS参数改成hdfs://127.0.0.1:9000,重启hdfs即可。

注:修改成127.0.0.1以后,只允许本机访问,如果需要全网访问,需要改成hdfs://0.0.0.0:9000

参考资料 

hadoop运行程序时报错java.net.ConnectException: java.net.ConnectException: 拒绝连接;_hadoop connectexception: call from n01/192.168.3.1-CSDN博客

HDFS9000端口拒绝连接 - 简书 (jianshu.com)文章来源地址https://www.toymoban.com/news/detail-758124.html

到了这里,关于Hadoop(4-2) Exception inthread “main“ java.net.ConnectException.....net.ConnectException: Connection的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包