Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 由于权限错误,HDP沙盒SQOOP失败_Hadoop_Permissions_Hdfs_Sqoop_Hortonworks Sandbox - Fatal编程技术网

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

Hadoop 由于权限错误,HDP沙盒SQOOP失败,hadoop,permissions,hdfs,sqoop,hortonworks-sandbox,Hadoop,Permissions,Hdfs,Sqoop,Hortonworks Sandbox,以下是错误消息: 无法移动源 hdfs://sandbox-hdp.hortonworks.com:8020/user/maria_dev/DimDepartmentGroup/part-百万 目的地 hdfs://sandbox-hdp.hortonworks.com:8020/warehouse/tablespace/managed/hive/dbodimemployee/delta_0000001_0000001_0000: 权限被拒绝:用户=配置单元,访问=写入, inode=“/use

以下是错误消息:

无法移动源 hdfs://sandbox-hdp.hortonworks.com:8020/user/maria_dev/DimDepartmentGroup/part-百万 目的地 hdfs://sandbox-hdp.hortonworks.com:8020/warehouse/tablespace/managed/hive/dbodimemployee/delta_0000001_0000001_0000: 权限被拒绝:用户=配置单元,访问=写入, inode=“/user/maria\u dev/DimDepartmentGroup”:maria\u dev:hdfs:drwxr-xr-x

我完全糊涂了。错误消息本身显示Maria_-dev对文件夹
inode=“/user/Maria_-dev/DimDepartmentGroup”:Maria_-dev:hdfs:drwxr-xr-x


我错过了什么?

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


不过,我还是很奇怪,用户需要具有root访问权限才能将一些数据加载到HDP配置单元中

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

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

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

2) 如果在创建表时看到访问被拒绝,请以用户
hive
的身份运行sqoop命令,因为用户
hive
可以访问hive表,即

sudo-u配置单元sqoop导入--connect'jdbc:sqlserver://test.goldman-invest.data:1433;databaseName=Investment_Banking'--用户名用户*****cqe--密码********--表案例--目标目录/goldman/yahoo--配置单元导入--创建配置单元表--配置单元表topclient.mpool

我仔细看了一下。因此被拒绝的用户实际上是hdfs,这是运行mapreduce作业的帐户。但是,我将hdfs path/user/maria_dev/的安全性设置为777,因此任何人都可以编写它。root用户创建的子文件夹/user/maria_dev/DimDepartmentGroup怎么可能没有对所有人的写入权限?这是
hive
user而不是
hdfs
@tk421,谢谢。你是对的。被拒绝的用户是配置单元。现在我甚至不确定我是否为这个命令使用了正确的用户帐户。我甚至尝试使用“root”帐户,但得到了相同的消息,只是“maria_dev”被“root”取代。