2

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

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

Hive完美启动,metastore_db & derby.log也创建好了,所有hive命令运行成功,可以创建数据库,表等。但是几天后,当我运行时show databases,或者show 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

4 回答 4

3

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

我的问题是我有一台装有配置单元的伪分布式设置的机器。使用 localhost 作为主机名可以正常工作。然而,当我们决定向集群中添加多台机器时,我们还决定为这些机器提供正确的名称“machine01、machine 02 等”。

我也更改了所有 hadoopconf/*-site.xml文件和hive-site.xml文件,但仍然有错误。经过详尽的研究,我意识到在 metastore db hive 中不是从 *-site 文件中获取 URI,而是从 mysql 中的 metastore 表中获取 URI。保存所有配置单元表元数据的地方是两张表 SDS 和 DBS。在分别更改表 DBS 和 SDS 中的 DB_LOCATION_URI 列和 LOCATION 以指向最新的名称节点 URI 后,我又重新开始工作了。

希望这对其他人有帮助。

于 2013-04-22T11:35:31.940 回答
0

原因

  1. 如果您更改了 Hadoop/Hive 版本,您可能会在 hive-0.9.0/conf/hive-env.sh 文件中指定以前的 hadoop 版本(在 core-site.xml 中有ds.default.name= )hdfs://localhost:54310
  2. $HADOOP_HOME 可能指向其他位置
  3. 指定版本的 Hadoop 不工作
  4. 您的名称节点可能处于安全模式,运行bin/hdfs dfsadmin -safemode leavebin/hadoop dsfadmin -safemode leave
于 2013-01-20T13:57:43.177 回答
0

在全新安装
的情况下,上述问题可能是名称节点问题的影响

尝试使用命令格式化名称节点

hadoop namenode -format
于 2013-11-30T10:59:05.377 回答
0

1.从安全模式关闭你的namenode。试试下面的命令:

hadoop dfsadmin -safemode leave

2.重启你的Hadoop守护进程:

sudo service hadoop-master stop

sudo service hadoop-master start
于 2018-06-25T15:26:41.627 回答