我在3个集群上安装了Hadoop和Hive。我能够从运行HIVE的群集节点登录到hive。
root @ NODE_3 hive] #hive使用配置初始化日志记录 罐子:文件:/usr/lib/hive/lib/hive-common-0.10.0-cdh4.2.0.jar /hive-log4j.properties 蜂巢历史 file = / tmp / root / hive_job_log_root_201304020248_306369127.txt hive>节目 桌子;确定所需时间:1.459秒蜂巢>
但是当我尝试在我的群集节点上运行一些配置单元测试时,我得到以下错误。
这里尝试以user = ashsshar {my username}
初始化数据库3/04/02 02:32:44 INFO mapred.JobClient:清理临时区域 hdfs://scaj-ns/user/ashsshar/.staging/job_201304020010_0080 13/04/02 02:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:ashsshar(auth:SIMPLE) 原因:java.io.IOException:javax.jdo.JDOFatalDataStoreException: 无法创建数据库'/ var / lib / hive / metastore / metastore_db',请参阅 细节的下一个例外。 NestedThrowables: java.sql.SQLException:无法创建数据库 '/ var / lib / hive / metastore / metastore_db',请参阅下一个例外 细节。 java.io.IOException:javax.jdo.JDOFatalDataStoreException: 无法创建数据库'/ var / lib / hive / metastore / metastore_db',请参阅 细节的下一个例外。 NestedThrowables: java.sql.SQLException:无法创建数据库 '/ var / lib / hive / metastore / metastore_db',请参阅下一个例外 的信息。
我尝试了两件事。
1。授予cd / var / lib / hive / metastore / metastore_db
的权限但我仍然得到同样的错误
答案 0 :(得分:1)
创建Metastore似乎是一个问题。我通过创建一个目录并将值设置为该目录来解决这个问题,如下所示:
步骤1:在家中创建一个目录:hive-metastore-dir
步骤2:超级用户编辑hive-site.xml(在:/ usr / lib / hive / conf中),如下所示:
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>
到
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/home/hive-metastore-dir/metastore/metastore_db;create=true</value>
步骤3:以 sudo hive 启动CLI并执行查询。
答案 1 :(得分:0)
您可以从用户具有写访问权限的目录登录hive客户端。默认情况下,当打开shell时,hive将尝试在本地和HDFS中创建临时目录。
答案 2 :(得分:0)
如果您使用的是CDH,请执行以下步骤 1.复制/usr/lib/hive/conf/hive-site.xml并粘贴到/ usr / lib / spark / conf /
这将解决“metastore_db”错误的问题
谢谢