FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.
NestedThrowables:
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
Hive history file=/tmp/dev/hive_job_log_dev_201107062337_381665684.txt
FAILED: Error in semantic analysis: line 1:83 Exception while processing raw_daily_stats_table: Unable to fetch table raw_daily_stats_table
查看hive配置文件/etc/hive/conf/hive-default.xml,找到你的元数据存放位置
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property>
打开hdfs目录发现
/user/hive/warehouse
raw_daily_pagecounts_table dir 2011-03-28 15:39 rwxr-xr-x dev supergroup raw_daily_stats_table dir 2011-07-06 23:03 rwxr-xr-x root supergroup
raw_daily_stats_table 目录的权限成root了,但是我是以dev身份执行的,
执行:
hadoop fs -chown -R dev:dev /user/hive/warehouse/raw_daily_stats_table
结果发现还是报,神啊
FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.
NestedThrowables:
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
打开配置文件/etc/hive/conf/hive-site.xml发现如下节点
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value> <description>JDBC connect string for a JDBC metastore</description> </property>
然后定位到相应目录
[dev@platformB metastore]$ ls -al total 16 drwxrwxrwt 4 root root 4096 Mar 28 15:25 . drwxr-xr-x 3 root root 4096 Mar 28 15:22 .. drwxrwxr-x 5 dev dev 4096 Jul 6 23:51 metastore_db drwxrwxrwt 3 root root 4096 Mar 28 15:22 scripts [dev@platformB metastore]$ cd metastore_db/ [dev@platformB metastore_db]$ ls dbex.lck db.lck log seg0 service.properties tmp [dev@platformB metastore_db]$ ls -al total 32 drwxrwxr-x 5 dev dev 4096 Jul 6 23:51 . drwxrwxrwt 4 root root 4096 Mar 28 15:25 .. -rw-rw-r-- 1 dev dev 4 Jul 6 23:03 dbex.lck -rw-r--r-- 1 root root 38 Jul 6 23:03 db.lck drwxrwxr-x 2 dev dev 4096 Jul 6 15:22 log drwxrwxr-x 2 dev dev 4096 Apr 6 13:04 seg0 -rw-rw-r-- 1 dev dev 860 Mar 28 15:25 service.properties drwxrwxr-x 2 dev dev 4096 Jul 6 23:51 tmp [dev@platformB metastore_db]$
db.lck 干掉, dbex.lck干掉
再跑hadoop相关脚本,ok~
本文来自: Hive derby lock及目录权限错误


