如何使用OozieClient.doAs

时间:2015-07-08 09:44:03

标签: hadoop oozie

我正在尝试从Web服务启动Oozie工作流程。其中一个操作应该删除并创建一些文件夹。具体来说,我想在启动Java操作之前清空文件夹(实际上它是MapReduce作业的驱动程序)。我知道有一个“准备”部分,在java操作中你可以指定删除的路径,但我需要删除文件夹中的所有文件,但要保留文件夹。这就是为什么我使用fs动作,删除文件夹而不是制作文件夹。

问题是,当我使用oozieClient.run运行它时,我得到一个异常,说明权限存在问题,因为我以root用户身份运行工作流。

我发现我可以使用OozieClient.doAs模仿特定用户,但由于某些原因我无法使用它。我得到内部oozie例外。

有人能告诉我如何以特定用户身份运行工作流程,或者至少向我指出一些好的例子吗?

1 个答案:

答案 0 :(得分:0)

与特定用户一起运行oozie作业的一种方法是使用带有Active Directory的kerberos来保护oozie。这样您就可以对来自活动目录的任何用户进行身份验证,并为经过身份验证的用户运行oozie作业。