所以这是一种情况,我有一个没有配置Kerberos安全性和工作站的hadoop集群。 Hadoop集群运行Cloudera CDH3发行版。集群上的数据全部存储在'hdfs'用户下。
工作站是linux或macos工作站,它运行嵌入PIG客户端的复杂软件。 PIG客户端连接到群集以运行分析作业。
这是一个问题。群集和工作站上的用户帐户不同,hadoop群集中的所有数据都存储在“hdfs”主目录用户下,工作站具有完整的用户帐户集。是否可以告诉PIG在不同的用户帐户下执行作业。目前,pig尝试使用当前登录到工作站的用户来执行作业。作业实际运行但无法访问数据,因为脚本使用相对于HDFS用户主目录的路径。
据我所知,当没有为群集配置安全性时,用户名只是通过作业配置.XML传递,但由于某种原因,我无法弄清楚如何强制我需要的用户名到该XML文档中。
答案 0 :(得分:3)
尝试设置“HADOOP_USER_NAME”环境变量 有关详细信息,请参阅similar question。
答案 1 :(得分:1)
您无法通过属性传递用户。安全子系统比较复杂,然后简单地传递用户名。您有四种可能的解决方案:
我认为在你的情况下更好的方法是1.但如果不可能,4更受赞赏。