一、azkaban3.16安装部署
启动azkaban-web-server-3.16.0或azkaban-exec-server-3.16.0是如果摆错内容为找不到global.properties、 azkaban-users.xml或keystore 请确认两件事情,①确认文件是否存在,不存在则需要按要求创建。②如果存在则看报错信息中此文件的路径是否正确,此处可以修改azkaban.properties中配置的文件路径为绝对路径。
二、azkaban执行任务报错
1、azkaban 执行job 报错 azkaban.native.lib
azkaban.utils.UndefinedPropertyException: Missing required property 'azkaban.native.lib'
at azkaban.utils.Props.getString(Props.java:478)
at azkaban.jobExecutor.ProcessJob.run(ProcessJob.java:120)
at azkaban.execapp.JobRunner.runJob(JobRunner.java:693)
at azkaban.execapp.JobRunner.run(JobRunner.java:545)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
23-07-2018 17:51:48 CST Start ERROR - Missing required property 'azkaban.native.lib' cause: null
解决方法:
①当前azkaban使用的3.16 解决方法为:
plugins/jobtypes/commonprivate.properties下把 azkaban.native.lib=false就行了
②如果在较高版本中,如3.2的那个配置文件下并没有找到这个可以改的地方
最后的解决方法是:common/java/azkaban/jobExeccutor/utils/ProcessJob.java里
<code class="language-java">boolean isExecuteAsUser = sysProps.getBoolean(EXECUTE_AS_USER, true);</code>
改成
boolean isExecuteAsUser = sysProps.getBoolean(EXECUTE_AS_USER, false);
2、执行job python脚本报错 Unknown column 'None' in 'field list'
替换 元组中的none
#获取消费平均值
def get_avg_amount(mysql_ip,mysql_user,mysql_pass,db_name):
result = []
db = MySQLdb.connect(mysql_ip,mysql_user,mysql_pass,db_name,charset='utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
target_config='select round(max(x.total_amount)/3,2) from (select t.customer_id as customer_id,sum(t.behaviour_purchase_amount) as total_amount from lm_rfmdata.customer_rfm_attr t group by t.customer_id) x'
cursor.execute(target_config)
for i in cursor.fetchall():
result.append(i)
val = (1,)
if result[0][0] is None :
result[0]=val
return result
三、邮件提醒/通知设置 Notification Email Settings
1、配置发送人信息
在azkaban-web-server-3.16.0应用conf下azkaban.properties配置发送人信息
此设置已经设置好,无特殊改动无需修改。
cd /software/azkaban-web-server-3.16.0/conf
vim azkaban.properties
添加发件人信息:
mail.sender=***@***.cn
mail.host=smtp.exmail.qq.com //腾讯企业邮箱使用这个,具体根据个人邮箱服务器设置
mail.user=Notify emails of azkaban //根据需要设置名称
mail.password=*********
2、设置提醒人邮件地址
①方法一、在.job文件中添加提醒人邮件地址
在提交的job文件中添加如下相应属性:
failure.emails 失败提醒人
success.emails 成功提醒人
notify.emails 总是提醒人
三个属性视具体需求而添加。
如:
#customer_life_cycle_change.job
type = command
command = sh customer_life_cycle_change.sh
failure.emails=***@****.cn
success.emails=***@****.cn
notify.emails =***@****.cn
按照以上两部设置之后可以在azkaban web UI中查看任务通知设置。
project-->Execute Flow-->Notification-->右侧显示设置结果
②还有更直观更方便的。方法二、
启动azkaban之后访问web端,创建好所需要的project(.job文件无需设置)
进入project-->Execute Flow-->Notification 直接设置 提醒人信息也可以
但是这个貌似单词有效。
3、查看配置结果
按照以上两部设置之后可以在azkaban web UI中查看任务通知设置。
project-->Execute Flow-->Notification-->右侧显示设置结果