由于权限错误,HDP Sandbox SQOOP失败

问题描述 投票:1回答:2

以下是错误消息:

无法将源hdfs://sandbox-hdp.hortonworks.com:8020 / user / maria_dev / DimDepartmentGroup / part-m-00000移动到目标hdfs://sandbox-hdp.hortonworks.com:8020 / warehouse / tablespace / managed / hive / dbodimemployee / delta_0000001_0000001_0000:权限被拒绝:user = hive,access = WRITE,inode =“/ user / maria_dev / DimDepartmentGroup”:maria_dev:hdfs:drwxr-xr-x

我完全糊涂了。错误消息本身显示Maria_dev对文件夹inode="/user/maria_dev/DimDepartmentGroup":maria_dev:hdfs:drwxr-xr-x具有写入权限

我错过了什么?

hadoop permissions hdfs sqoop hortonworks-sandbox
2个回答
1
投票

当您运行Sqoop时,**通常**首先从外部数据库加载数据,然后将其作为多部分文件存储在给定位置(--target-dir /goldman/yahoo)然后从该位置存储到hive表(--hive-table topclient.mpool)

现在您可以在2级拒绝访问。

1)如果您在文件位置/goldman/yahoo看到访问被拒绝,则将filelocation访问权限设置为777运行为hdfs用户 - sudo -u hdfs hadoop fs -chmod 777 /goldman/yahoo

2)如果您在创建表时看到拒绝访问,请以用户hive运行sqoop命令,因为用户hive可以访问配置单元表,即 sudo -u hive sqoop import --connect 'jdbc:sqlserver://test.goldman-invest.data:1433;databaseName=Investment_Banking' --username user_***_cqe --password ****** --table cases --target-dir /goldman/yahoo --hive-import --create-hive-table --hive-table topclient.mpool


0
投票

最后,我得到了它的工作。我以root身份登录并使用su - hive切换到hive用户。然后我就能成功运行SQOOP命令。以前我以maria_dev身份登录,无法使用su命令。我没有用户配置单元的密码,因为配置单元不是HDP沙箱中的常规用户。

尽管如此,我很奇怪用户需要具有root权限才能将一些数据加载到HDP HIVE中。

© www.soinside.com 2019 - 2024. All rights reserved.