由于权限错误,HDP沙盒SQOOP失败

时间:2019-03-05 06:22:27

标签: hadoop permissions hdfs sqoop hortonworks-sandbox

下面是错误消息:

  

无法移动源   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

具有写权限

我想念什么?

2 个答案:

答案 0 :(得分:1)

运行Sqoop时,通常**首先从外部数据库加载数据,然后将其作为多部分文件存储在给定位置(--target-dir /goldman/yahoo)中,然后从该位置存储到配置单元表{{ 1}}

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

1)如果您看到文件位置(--hive-table topclient.mpool)上的访问被拒绝,则将文件位置访问权限设置为以hdfs用户身份运行的777-/goldman/yahoo

2)如果在创建表时看到访问被拒绝,请以用户sudo -u hdfs hadoop fs -chmod 777 /goldman/yahoo的身份运行sqoop命令,因为用户hive可以访问配置单元表,即hive

答案 1 :(得分:0)

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

仍然,对于我来说奇怪的是,用户需要具有root用户访问权限才能将某些数据加载到HDP HIVE中。