欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

Hive连接HDFS端口错误解决方法

在我电脑里面:

Hadoop1.2.1中fs.default.name=hdfs://localhost:9000
Hadoop2.2.0中fs.default.name=hdfs://localhost:8020

所以Hive在Hadoop1.2.1中存放数据的绝对路径为:

hdfs://localhost:9000/home/wyp/cloud/hive/warehouse/cite

其中、home/wyp/cloud/hive/warehouse/是配置文件设置的,如下:

<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/home/wyp/cloud/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>

cite是表的名称。
  如果在Hadoop1.2.1平台导入的数据,而在Hadoop2.2.0平台上面查询数据(注意,需要在Hadoop2.2.0平台上同样的位置上存在数据,这样才能查询到结构)将会出现下面的错误:

hive> select * from cite;
OK
Failed with exception java.io.IOException:java.net.ConnectException: 
Call From wyp/192.168.142.138 to localhost:9000 failed on connection 
exception: java.net.ConnectException: Connection refused; 
For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
Time taken: 4.519 seconds

  从查询的结果看出,返回的是OK,但是显示数据出现了java.net.ConnectException异常,这就是上面所说的问题,因为你数据的路径为
hdfs://localhost:9000/home/wyp/cloud/hive/warehouse/cite
但是你在Hadoop2.2.0平台上查询,从最上面的配置我们可以看出,Hadoop2.2.0平台的hdfs的连接端口为8020,当然不能连上localhost:9000,我们需要连上8020端口。

  解决方法:(1)、修改Hadoop2.2.0的fs.default.name=hdfs://localhost:9000,然后重起Hadoop服务。
(2)、进入Mysql数据库,找到SDS表格:

Hive 连接HDFS

Hive 连接HDFS


从上面的查询结果我们可以看出,SD_ID为1对应的表格数据存放在hdfs://localhost:9000/home/wyp/cloud/hive/warehouse/cite路径,我需要修改端口号9000为8020。如下:
Hive 连接HDFS

Hive 连接HDFS


然后再查询数据:

hive> select * from cite;
OK
1	21
2	5
6	5
3	6
Time taken: 0.509 seconds, Fetched: 4 row(s)

终于见到熟悉的数据了!推荐使用方法一。

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Hive连接HDFS端口错误解决方法】(https://www.iteblog.com/archives/802.html)
喜欢 (8)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!
(1)个小伙伴在吐槽
  1. <a href="http://www.iteblog.com/archives/1181" title="Spark源码分析:多种部署方式之间的区别与联系(1)" rel="nofollow">http://www.iteblog.com</a>哈哈

    w3970907702014-10-25 14:45 回复