我发现运行配置单元cli有问题。在边缘节点上运行cli时,我收到有关hdfs权限的以下错误:
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)
配置单元试图在hdfs的/user目录中写入什么?
我已经看到/user/hive已创建:
drwxrwxr-t - hive hive 0 2015-03-16 22:17 /user/hive
如您所见,我支持hadoop上的kerberos auth。
提前谢谢!
2条答案
按热度按时间2fjabf4q1#
与@kumar建议的完全禁用hdfs访问权限不同,您可以简单地为系统上的每个新用户创建一个hdfs home dir,以便hive/spark/pig/sqoop作业有一个有效的位置来创建临时文件。。。
在kerberized集群上:
否则:
yrdbyhpb2#
日志说你需要设置hdfs的权限
/user
目录到用户app1_K
命令hadoop fs -setfacl -m -R user:app1_K:rwx /user
以hadoop bin的特权用户身份执行此命令如果在任何其他hdfs目录上出现类似的权限错误,则必须授予该目录上的权限。
有关更多信息,请参阅下面的链接。
https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/hdfspermissionsguide.html#acls_access_control_lists