FAILED:元数据错误:MetaException(消息:异常:java.net.ConnectException调用localhost / 127.0.0.1:54310失败

时间:2013-01-20 13:57:43

标签: hadoop hive

我使用的是Ubuntu 12.04,hadoop-0.23.5,hive-0.9.0。 我将metastore_db分别指定到hive-site.xml中的其他位置$HIVE_HOME/my_db/metastore_db

Hadoop运行良好,jps提供ResourceManager,NameNode,DataNode,NodeManager,SecondaryNameNode

Hive完美开始,metastore_db& derby.log也创建了,所有hive命令都成功运行,我可以创建数据库,表等。但是几天之后,当我运行show databasesshow tables时,会出现以下错误

FAILED: Error in metadata: MetaException(message:Got exception:  java.net.ConnectException Call to localhost/127.0.0.1:54310 failed on connection exception: java.net.ConnectException: Connection refused) FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

4 个答案:

答案 0 :(得分:3)

我也有这个问题,接受的答案对我没有帮助,所以我会在这里为其他人添加我的解决方案:

我的问题是我有一台带有hive的伪分布式设置的机器。它使用localhost作为主机名正常工作。然而,当我们决定将多台机器添加到集群时,我们还决定给机器命名为“machine01,machine 02等”。

我也更改了所有hadoop conf/*-site.xml文件和hive-site.xml文件,但仍然有错误。经过详尽的研究后,我意识到在Metastore中,db hive不是从* -site文件中获取URI,而是从mysql中的Metastore表中获取URI。保存所有hive表元数据的是两个表SDS和DBS。在分别更改表DBS和SDS中的DB_LOCATION_URI列和LOCATION以指向最新的namenode URI后,我又回到了公司。

希望这有助于其他人。

答案 1 :(得分:1)

如果是全新安装的话 上述问题可能是名称节点问题的影响

尝试使用命令

格式化namenode
hadoop namenode -format

答案 2 :(得分:0)

原因

  1. 如果您更改了Hadoop / Hive版本,则可能在hive-0.9.0 / conf /中指定了之前的hadoop版本(core-site.xml中有ds.default.name = hdfs://localhost:54310) hive-env.sh 文件
  2. $ HADOOP_HOME可能指向其他位置
  3. 指定版本的Hadoop无效
  4. 您的namenode可能处于安全模式,运行bin/hdfs dfsadmin -safemode leavebin/hadoop dsfadmin -safemode leave

答案 3 :(得分:0)

1。从安全模式关闭名称节点。请尝试以下命令:

hadoop dfsadmin -safemode leave

2。重新启动Hadoop守护程序:

sudo service hadoop-master stop

sudo service hadoop-master start