Azkaban配置Plugin实现Spark作业提交(非Shell)

第一步,我们要打开azkaban的官网,配置一些文件和参数,如图所示

az配置Spark提交

sparkcommon.propertiescommonprivate.properties拷贝到服务器中对应的目录,最终的文件展示如下

[hadoop@hadoop jobtypes]$ tree
.
├── commonprivate.properties
├── common.properties
└── spark
├── plugin.properties
└── private.properties
  1. 配置commonprivate.properties中hadoop.home和spark.home指定的家目录

  2. 配置common.properties中hadoop.home和spark.home指定的家目录

  3. 修改private.properties文件中的参数(临时方案,可行)

    jobtype.classpath=${hadoop.classpath}:${spark.home}/conf:${spark.home}/lib/*
    ===>
    jobtype.classpath=hadoop.classpath:${spark.home}/conf:${spark.home}/lib/*

    这么做的原因是我们以上的文件中没有配置hadoop.classpath,官方也没有说明hadoop.classpath应该配置什么参数,目前修改掉引用不影响程序的使用。

第二步,在conf/azkaban.properties文件下增加一个配置,主机名:端口号(随意修改)

azkaban.webserver.url=https://hadoop:8666

第三步,提交作业,所配的参数需要参考官网

测试案例:

config:
user.to.proxy: hadoop
nodes:
- name: sparkwc
type: spark
config:
class: com.data.spark.wc.SparkWC
master: yarn
deploy-mode: client
executor-memory: 512M
driver-memory: 512M
conf.spark.testing.memory: 471859200
execution-jar: tunan-spark-utils-1.0.jar
jars: tunan-spark-core-1.0.jar
params: hdfs://hadoop:9000/input/wc.txt hdfs://hadoop:9000/out

注意配置文件中的 jar 没有写路径,这么提交需要把 jar 包和配置文件一起打成zip包,提交到AZ的Web界面

第四步,查看结果

20200413更新: 数据下标越界问题:hadoop下的/share/hadoop/common/lib/paranamer-2.3.jar过时,使用–jars传spark下的/jars/paranamer-2.8.jar

20200423更新: 所有参数都可以使用conf传递,

execution_jar  对应的是appjar
jars 对应的是 依赖jar
params: ${execution_jar} 参数1 参数2
Author: Tunan
Link: http://yerias.github.io/2020/04/10/azkaban/2/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.