请注意:
我安装了一个 hadoop 2.6.5
在gcp中使用vm示例的版本集群。使用gcp连接器,由hdfs指向使用gs铲斗。在中添加了以下2个条目 coresite.xml
:
google.cloud.auth.service.account.json.keyfile=<Path-to-the-JSON-file>
fs.gs.working.dir=/
当使用hadoopgs-ls/工作正常时,但是当我创建配置单元表时
CREATE EXTERNAL TABLE test1256(name string,id int) LOCATION 'gs://bucket/';
我得到以下错误:
错误:处理语句时出错:失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1。元异常(message:java.security.accesscontrolexception:权限被拒绝:user=hdpuser1,path=“gs://bucket/”:hive:hive:drwx------)(状态=08s01,代码=1)
2条答案
按热度按时间55ooxyrt1#
正如错误消息所暗示的,您遇到了权限问题。首先,检查您的google云控制台,确保您有云存储iam权限来执行该操作。接下来,确保您对hdfs中的“hdpuser1”用户拥有正确的权限:
以hdfs用户身份登录:
su hdfs
您还可以更改权限:hdfs dfs -chown -R <username_of_new_owner> /user
然后执行以下操作:然后再次尝试创建配置单元表。我希望这有帮助。
在这里找到类似的答案。以及github中有关使用hive执行测试的完整指南
waxmsbnn2#
我今天刚刚遇到这个错误,并通过添加以下两个属性来解决它:
同时转换为core-site.xml和hive-site.xml(通过访问ambari中的hdfs和hive服务的高级配置)。
如果只在core-site.xml中配置它,那么配置单元外部表创建将失败。