hive和google云存储问题

nbnkbykc  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(447)

请注意:
我安装了一个 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)

55ooxyrt

55ooxyrt1#

正如错误消息所暗示的,您遇到了权限问题。首先,检查您的google云控制台,确保您有云存储iam权限来执行该操作。接下来,确保您对hdfs中的“hdpuser1”用户拥有正确的权限:
以hdfs用户身份登录: su hdfs 您还可以更改权限: hdfs dfs -chown -R <username_of_new_owner> /user 然后执行以下操作:

hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir /tmp
hadoop fs -chmod -R 777 /user/hive
hadoop fs -chmod 777 /tmp

然后再次尝试创建配置单元表。我希望这有帮助。
在这里找到类似的答案。以及github中有关使用hive执行测试的完整指南

waxmsbnn

waxmsbnn2#

我今天刚刚遇到这个错误,并通过添加以下两个属性来解决它:

fs.gs.reported.permissions=777
fs.gs.path.encoding=uri-path

同时转换为core-site.xml和hive-site.xml(通过访问ambari中的hdfs和hive服务的高级配置)。
如果只在core-site.xml中配置它,那么配置单元外部表创建将失败。

相关问题