2016-10-11 8 views
0

Ich sehe ein Problem mit der Ausführung des Hive CLI. Wenn ich ausführen, um die CLI auf einem Randknoten ich die folgenden Fehler in Bezug auf HDFS Berechtigungen erhalten:Welche Berechtigungen sind erforderlich, um Hive Cli auszuführen

c784gnj:~ # sudo hive 
/usr/lib/hive/conf/hive-env.sh: line 5: /usr/lib/hive/lib/hive-hbase-handler-1.1.0-cdh5.5.2.jar,/usr/lib/hbase/hbase-common.jar,/usr/lib/hbase/lib/htrace-core4-4.0.1-incubating.jar,/usr/lib/hbase/lib/htrace-core-3.2.0-incubating.jar,/usr/lib/hbase/lib/htrace-core.jar,/usr/lib/hbase/hbase-hadoop2-compat.jar,/usr/lib/hbase/hbase-client.jar,/usr/lib/hbase/hbase-server.jar,/usr/lib/hbase/hbase-hadoop-compat.jar,/usr/lib/hbase/hbase-protocol.jar: No such file or directory 
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release 
16/10/11 10:35:49 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist 

Logging initialized using configuration in jar:file:/usr/lib/hive/lib/hive-common-1.1.0-cdh5.5.2.jar!/hive-log4j.properties 
Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.security.AccessControlException: Permission denied: user=app1_K, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x 
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:257) 
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:238) 
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:216) 

Was in HDFS im/Benutzerverzeichnis zu schreiben versucht, ist hive? siehe

kann ich schon, dass/user/hive erstellt:

drwxrwxr-t - hive   hive    0 2015-03-16 22:17 /user/hive 

Wie man sehen kann ich hinter kerberos Auth auf Hadoop bin.

Vielen Dank im Voraus!

Antwort

0

Log sagt, dass Sie die Berechtigung für HDFS /user Verzeichnis Benutzer app1_K

Befehl

hadoop fs -setfacl -m -R user:app1_K:rwx /user

Führen Sie diesen Befehl als privilegierter Benutzer von Hadoop bin

festlegen müssen Wenn Sie erhalten ähnlicher Berechtigungsfehler in einem anderen hdfs-Verzeichnis, dann müssen Sie die Berechtigung für dieses Verzeichnis erteilen.

Weitere Informationen finden Sie unter dem folgenden Link.

https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html#ACLs_Access_Control_Lists

0

Statt insgesamt HDFS Zugriffsrechte zu deaktivieren, wie @Kumar vorgeschlagen, könnten Sie einfach erstellen HDFS Hauptdir für jeden neuen Benutzer auf dem System, so dass Hive/Funken/Schwein/Sqoop Jobs haben eine gültige Position temporäre Dateien ...

auf einem Kerberized Cluster zu erstellen:

kinit [email protected] 
hdfs dfs -mkdir /user/app1_k 
hdfs dfs -chown app1_k:app1_k /user/app1_k 

Ansonsten:

export HADOOP_USER_NAME=hdfs 
hdfs dfs -mkdir /user/app1_k 
hdfs dfs -chown app1_k:app1_k /user/app1_k 
+0

Der Benutzer hat bereits ein Home-Verzeichnis, da ich hbase/func hadoop fs mit diesem Benutzer verwenden kann. – eboni

Verwandte Themen