Hadoop:java.net.ConnectException:连接被拒绝

Posted

技术标签:

【中文标题】Hadoop:java.net.ConnectException:连接被拒绝【英文标题】:Hadoop: java.net.ConnectException: Connection refused 【发布时间】:2016-06-05 02:42:54 【问题描述】:

您好,我一直在努力学习本教程:http://www.tutorialspoint.com/apache_flume/fetching_twitter_data.htm 很长一段时间以来,我完全被困在第 3 步:在 HDFS 中创建目录。我已经运行了 start-dfs.sh 和 start-yarn.sh 并且两者似乎都正常工作,因为我得到了与教程相同的输出但是当我尝试运行时:

hdfs dfs -mkdir hdfs://localhost:9000/user/Hadoop/twitter_data 

我一直收到同样的错误:

mkdir: Call From trz-VirtualBox/10.0.2.15 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

我不知道为什么,因为我到处搜索并尝试了许多解决方案,但似乎无法取得进展。我将列出所有我认为可能导致此问题的文件,但我可能错了:我的 core.site.xml 是:

<configuration>
<property>  
<name>hadoop.tmp.dir</name>
<value>/Public/hadoop-2.7.1/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>

我的 mapred-site.xml 是:

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9001</value>
</property>
</configuration>

我的 hdfs.site.xml 是:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permission</name>
<value>false</value>
</property>
</configuration>

我在虚拟机上运行 Ubuntu 14.04.4 LTS。我的 ~/.bashrc 看起来像这样:

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop/bin 
export HADOOP_HOME=/usr/local/hadoop/bin
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
#flume
export FLUME_HOME=/usr/local/Flume
export PATH=$PATH:/FLUME_HOME/apache-flume-1.6.0-bin/bin
export CLASSPATH=$CLASSPATH:/FLUME_HOME/apache-flume-1.6.0-bin/lib/*

最后我的 /etc/hosts 文件是这样设置的:

127.0.0.1  localhost
10.0.2.15  trz-VirtualBox
10.0.2.15  hadoopmaster


# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

我目前没有使用添加的 hadoopmaster,这是我尝试通过尝试不使用本地主机来解决此问题的尝试之一(没有工作)。 trz-VirtualBox 最初是 127.0.1.1 但我读到你应该使用你的真实 IP 地址?两者都没有,所以我不确定。我发布了所有这些文件,因为我不知道错误在哪里。我不认为这是一个路径问题(在我进入这一步之前我有很多,并且能够自己解决它们)所以我没有想法。我已经在这工作了几个小时了,所以感谢您的帮助。谢谢你。

【问题讨论】:

第2步的输出是什么,有没有错误日志? 输出第一个命令:trz@trz-VirtualBox:/usr/local/hadoop/sbin$ sudo ./start-dfs.sh 在[localhost] localhost上启动namenodes:启动namenode,登录到/usr /local/hadoop/logs/hadoop-root-namenode-trz-VirtualBox.out localhost:启动datanode,登录到/usr/local/hadoop/logs/hadoop-root-datanode-trz-VirtualBox.out 启动辅助namenodes [0.0 .0.0] 0.0.0.0:启动secondarynamenode,登录到/usr/local/hadoop/logs/hadoop-root-secondarynamenode-trz-VirtualBox.out 输出第二条命令:trz@trz-VirtualBox:/usr/local/hadoop/sbin$ sudo ./start-yarn.sh 启动纱线守护进程启动资源管理器,登录到/usr/local/hadoop/ logs/yarn-root-resourcemanager-trz-VirtualBox.out localhost:启动nodemanager,登录到/usr/local/hadoop/logs/yarn-root-nodemanager-trz-VirtualBox.out 【参考方案1】:

按照本教程找到我的答案:http://codesfusion.blogspot.in/2013/10/setup-hadoop-2x-220-on-ubuntu.html

然后进行这些编辑: https://***.com/a/32041603/3878508

【讨论】:

【参考方案2】:

你必须设置hadoop目录的权限

sudo chown -R user:pass /hadoop_path/hadoop

然后启动集群,运行jps命令查看DataNode和NameNode进程。

【讨论】:

【参考方案3】:

我遇到了类似的错误。检查后我发现我的namenode服务处于停止状态。 sudo status hadoop-hdfs-namenode - 检查名称节点的状态

如果它没有处于启动/运行状态 sudo start hadoop-hdfs-namenode - 启动namenode服务

请记住,名称节点服务在重新启动后需要一段时间才能完全正常运行。它读取内存中的所有 hdfs 编辑。您可以在 /var/log/hadoop-hdfs/ 中使用命令tail -f /var/log/hadoop-hdfs/Latest log file 来查看进度

【讨论】:

以上是关于Hadoop:java.net.ConnectException:连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

hadoop 配置文件放到哪里

hadoop2 环境的搭建(自动HA)

Hadoop高手之路3-Hadoop集群搭建

Hadoop可以用来做啥

hadoop是啥 hadoop介绍

学习笔记Hadoop—— Hadoop集群的安装与部署—— Hadoop配置参数介绍Hadoop集群启动与监控