Hadoop java.net.ConnectException:运行配置单元时出现连接被拒绝错误

Hadoop java.net.ConnectException:运行配置单元时出现连接被拒绝错误,hadoop,hive,Hadoop,Hive,我正在尝试完成一个蜂巢教程,其中我输入了以下内容: load data local inpath '/usr/local/Cellar/hive/0.11.0/libexec/examples/files/kv1.txt' overwrite into table pokes; Thits会导致以下错误: FAILED: RuntimeException java.net.ConnectException: Call to localhost/127.0.0.1:9000 failed on

我正在尝试完成一个蜂巢教程,其中我输入了以下内容:

load data local inpath '/usr/local/Cellar/hive/0.11.0/libexec/examples/files/kv1.txt' overwrite into table pokes;
Thits会导致以下错误:

FAILED: RuntimeException java.net.ConnectException: Call to localhost/127.0.0.1:9000 failed on connection exception: java.net.ConnectException: Connection refused

我看到有一些关于SA的回复与配置我的ip地址和本地主机有关,但我不熟悉答案中的概念。如果你能告诉我是什么导致了这种回答,以及如何解决它,我将不胜感激。谢谢

这是因为hive无法联系您的
namenode

检查您的
hadoop
服务是否已正确启动


运行命令
jps
查看所有服务都在运行。

出现此错误的原因是Hive需要hadoop作为其基础。因此,您需要首先启动Hadoop

以下是一些步骤

步骤1:下载hadoop并解压缩它

第二步:cd#你的hadoop#路径

步骤3:./bin/hadoop namenode-格式

步骤4:./sbin/start-all.sh


然后,返回到#您的_hive_路径并再次启动hive

我找到的编辑/etc/hosts文件的简单方法。默认情况下,它看起来像

127.0.0.1    localhost
127.0.1.1    user_user_name

只需编辑并设置127.0.1.1到127.0.0.1即可,重新启动shell并通过start-all.sh重新启动集群。设置配置单元时,请回答相同的问题。 通过更改my/etc/hostname解决

以前它是我的用户名 在我把它改成localhost之后,一切都很顺利


我猜这是因为hadoop可能希望使用此/etc/hostname文件解析您的主机名,但当hadoop服务在localhost上运行时,它将其定向到您的用户\u machine\u name上

我可以通过执行以下命令来解决此问题:

start-all.sh
这将确保配置单元服务已启动


然后直接启动蜂箱

我在连接超时时遇到了类似的问题:

WARN DFSClient: Failed to connect to /10.165.0.27:50010 for block, add to deadNodes and continue. java.net.ConnectException: Connection timed out: no further information
DFSClient正在通过内部IP解析节点。以下是解决此问题的方法:

.config("spark.hadoop.dfs.client.use.datanode.hostname", "true")

谢谢你的回复。从$jps中我得到了:“26349 jps”。这意味着您的hadoop服务都没有运行。您配置了hadoop吗?谢谢。我想我已经弄明白了——当启动hive时,必须首先运行start-all.sh脚本,对吗?一旦我这样做了,我得到了jps服务的完整名册,而ConnectException就消失了。我把start-all.sh误读为在初始设置期间只需执行一次的操作。你是对的:)start-all将启动所有hadoop服务。我建议您分别启动namenode和datanode,并运行start-mapred.sh。通过这种方式,您可以很容易地看到这些节点中发生了什么。这将有助于您进行调试。安装hadoop不仅仅需要4个步骤