I am playing with Hadoop and Hive via Cloudera RPMs. The development status is very active, meaning it could be hard to track down the errors or find help with a specific one.
Permission of /tmp in HDFS
FAILED: Unknown exception : org.apache.hadoop.fs.permission.AccessControlException: Permission denied: user=mathie, access=WRITE, inode="tmp":hadoop:supergroup:rwxrwxr-x
Solution: You need to turn on full write permissions for /tmp
sudo -u hadoop hadoop fs -chmod 777 /tmp
.hivehistory
[root@r2 tmp]# sudo -u hadoop hive Hive history file=/tmp/hadoop/hive_job_log_hadoop_200911142019_988931842.txt java.io.FileNotFoundException: /.hivehistory (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.(FileOutputStream.java:179) at java.io.FileOutputStream. (FileOutputStream.java:131) at java.io.FileWriter. (FileWriter.java:73) at jline.History.setHistoryFile(History.java:45) at jline.History. (History.java:37) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:298) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.util.RunJar.main(RunJar.java:155) at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)
It means your $HOME folder is empty and it’s trying to create /.hivehistory on the top level, which of course is not possible. Solution: make sure it’s a real user with a $HOME (“echo $HOME” to check) and not via sudo
/etc/hive/conf/hive-site.xml
hive> show tables; FAILED: Error in metadata: javax.jdo.JDODataStoreException: SQL exception: Add classes to Catalog "", Schema "APP" NestedThrowables: java.sql.SQLNonTransientConnectionException: No current connection. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask Time taken: 3.142 seconds
Even with embedded mode for metastore, if you run into this problem, look like an issue with Cloudera RPM for Hive that uses ${user.name} not being replaced properly.
Solution: change “${user.name}” to an regular folder and Hive works fine.
Leave a Reply