Hadoop 将数据移动给另一个用户

Hadoop 将数据移动给另一个用户

我的 hdfs 中有几百 GB 的数据用于用户 A(单节点配置)。我想将所有数据传输给用户 B,这将更适合我设置的多节点配置。

我尝试了以下操作但没有成功:

  • hadoop fs -chown -R userB:hadoop PATH,当以 userB 身份登录时,我看不到数据,而以 userA 身份登录则没问题,尽管 userB 被设置为 hdfs 所有者。
  • 尝试start-all.sh以用户 B 的身份访问,需要更改一些访问控制。同样,我什么也没看到。
  • 试图强迫<name>hadoop.tmp.dir</name>用户A
  • 尝试将hadoop-userA目录重命名为hadoop-userB
    列出目录时,我有以下内容
    drwxr-xr-x - userB hadoop 0 2011-05-29 18:17 /user/userA/tmp

看起来数据仍归用户 A 所有。有什么办法可以解决这个问题吗?

添加用户B 在 hadoop 组中(当然)。

答案1

为了使其工作,您需要执行以下操作:

  • 确保用户 B 可以在日志目录中写入
  • 确保 userB 可以在 dfs/ 目录中写入
  • 确保用户 B 具有目录的读取权限hadoop fs -chown userB:hadoop

数据将保留在/ user / userA /,因此您需要使用绝对路径进行查询

hadoop fs -ls /user/userA/<path>

使用相对路径将指向不同的位置

hadoop fs -ls

答案2

尝试设置读取权限:

hadoop fs -chmod -R 644 PATH

答案3

您必须将数据复制到本地磁盘,然后与其他用户一起重新上传。

相关内容