我正在尝试通过一个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 connection exception: java.net.ConnectException: Connection refused
我看到SA上有一些回复与配置我的IP地址和本地主机有关,但我不熟悉答案中的概念。我很感激你能告诉我关于导致这种答案的原因以及解决方法的基本原理。谢谢!
答案 0 :(得分:12)
这是因为配置单元无法与您的namenode
检查您的hadoop
服务是否已正确启动。
运行命令jps
以查看正在运行的所有服务。
答案 1 :(得分:2)
你得到这个错误的原因是Hive需要hadoop作为它的基础。所以,你需要先启动Hadoop。
以下是一些步骤。
Step1:下载hadoop并解压缩
Step2:cd #your_hadoop_path
Step3:./ bin / hadoop namenode -format
Step4:./ sbin / start-all.sh
然后,回到#your_hive_path并再次启动配置单元
答案 2 :(得分:0)
我发现编辑/ 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重新启动集群
答案 3 :(得分:0)
以前是我的user_machine_name 在我将其更改为localhost之后,它进展顺利
我想这是因为hadoop可能想要使用这个/ etc / hostname文件解析你的主机名,但是当hadoop服务在localhost上运行时它将它指向你的user_machine_name
答案 4 :(得分:0)
我能够通过执行以下命令来解决问题:
start-all.sh
这将确保Hive服务已启动。
然后启动Hive是直截了当的。
答案 5 :(得分:0)
我在连接超时方面也遇到了类似的问题:
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")