首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Oozie运行Spark2

从Oozie运行Spark2
EN

Stack Overflow用户
提问于 2017-11-16 19:28:47
回答 3查看 2.9K关注 0票数 0

我试图运行一个火花作业(使用火花2-提交)从Oozie,所以这个作业可以运行的时间表。

作业在运行时运行良好,我们从服务帐户下的命令行运行shell脚本(而不是Yarn)。当我们以Oozie工作流的形式运行它时,会发生以下情况:

代码语言:javascript
复制
17/11/16 12:03:55 ERROR spark.SparkContext: Error initializing SparkContext.
org.apache.hadoop.security.AccessControlException: Permission denied: 
user=yarn, access=WRITE, inode="/user":hdfs:supergroup:drwxrwxr-x

Oozie正在以用户Yarn的身份运行该作业。它剥夺了我们在HDFS中更改Yarn权限的任何能力,并且在script中没有对user目录的一个引用。我们已经尝试将ssh放到服务器中--尽管这不起作用--我们必须将ssh从我们的工作节点中转移到主服务器上。

shell脚本:

代码语言:javascript
复制
spark2-submit --name "SparkRunner" --master yarn --deploy-mode client --class org.package-name.Runner  hdfs://manager-node-hdfs/Analytics/Spark_jars/SparkRunner.jar

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-28 15:40:25

我能够通过遵循https://stackoverflow.com/a/32834087/8099994来修复这个问题

在shell脚本的开头,我现在包括以下行:

代码语言:javascript
复制
export HADOOP_USER_NAME=serviceAccount;
票数 0
EN

Stack Overflow用户

发布于 2017-11-16 23:10:04

您需要将"<env-var>HADOOP_USER_NAME=${wf:user()}</env-var>“添加到oozie workflow.xml的shell操作中。因此,oozie使用用户的主目录(已触发oozie worklfow ),而不是使用纱线主目录。

e.g

代码语言:javascript
复制
<action name='shellaction'>
        <shell xmlns="uri:oozie:shell-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <exec>sparksubmitShellScript.sh</exec>
            <argument>${providearg}</argument>
            <env-var>HADOOP_USER_NAME=${wf:user()}</env-var>
            <file>${appPath}/sparksubmitShellScript.sh#sparksubmitShellScript.sh
            </file>
        </shell>
    </action>

根据您的工作流程进行修改,如果需要,您也可以直接提到用户名,而不是使用触发工作流的用户,如下所示

代码语言:javascript
复制
<env-var>HADOOP_USER_NAME=${userName}</env-var>

在userName=usernamevalue中指定job.properties

票数 1
EN

Stack Overflow用户

发布于 2018-09-14 15:05:22

在纱线上发射火花(2.1)..。

spark.yarn.stagingDir 提交应用程序时使用的暂存目录 默认值:文件系统中当前用户的主目录

因此,如果您可以在某个地方创建一个HDFS目录,并授予yarn所需的特权--即所有父目录上的rx和dir本身上的rwx --那么请Spark使用该dir而不是/user/yarn (不存在),那么您就应该没事了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47337637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档