我使用的是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 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
答案 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)
如果是全新安装的话 上述问题可能是名称节点问题的影响
尝试使用命令
格式化namenodehadoop namenode -format
答案 2 :(得分:0)
原因
ds.default.name
= hdfs://localhost:54310
) hive-env.sh
文件bin/hdfs dfsadmin -safemode leave
或bin/hadoop dsfadmin -safemode leave
答案 3 :(得分:0)
1。从安全模式关闭名称节点。请尝试以下命令:
hadoop dfsadmin -safemode leave
2。重新启动Hadoop守护程序:
sudo service hadoop-master stop
sudo service hadoop-master start