使用Azkaban调度执行spark-sql任务的小Demo

1 、准备数据

准备表dm_action_log 数据如下:

bdp_dayactionuv
20190101click11173
20190101exit11109
20190101install11139
20190101launch11083
20190101login11220
20190101page_enter_h511016
20190101page_enter_native11076
20190101page_exit11120
20190101register11064
20190102click11168
···················只取前十条·························

2 、编写azkaban调度job


dm_action_log.sh

#!/bin/bash
/usr/local/spark/bin/spark-sql --master yarn --name action_launch_job -S -f dm_action_log.hql

dm_action_log.job

type=command
command=sh dm_action_log.sh

dm_action_log.hql

use databasename;
create table if not exists databasename.dm_action_log_bak(
bdp_day string comment '时间',
action string comment '行为',
uv int comment 'uv'
)
stored as parquet;

insert overwrite table databasename.dm_action_log_bak
select bdp_day,action,count(userid) uv from databasename.dw_action_log 
group by bdp_day,action;

这里注意这里需要是Unix环境(notepad++为例)

3 、配置spark-sql运行环境

3、1修改 yarn-site.xml,添加两行配置
<!--配置虚拟内存不生效,解决spark yarn 模式问题-->
<property> 
   <name>yarn.nodemanager.vmem-check-enabled</name> 
   <value>false</value> 
</property>
<!--配置虚拟内存大小,解决spark yarn 模式问题-->
 <property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>4</value>
    <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
 </property>
3、2 发送配置文件
  • 把修改后的 yarn-site.xml 发送到集群其他节点
  • 把$HADOOP_HOME/etc/hadoop中的 core-site.xml 和 hdfs-site.xml发送到$SPARK_HOME/conf/中(如果是spark集群,需要发送到每一个)
  • 把hive-site.xml同样也发送到spark的每个节点($SPARK_HOME\conf\)

4 、启动hadoop集群和spark集群

5 、启动Azkaban并创建任务

6 、上传zip包执行任务

dm_action_log.shdm_action_log.jobdm_action_log.hql,打成zip包

7 、等待执行成功

发生ERROR怎么办?
推荐以下两个网站

网站一
网站二

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塔城就是个弟弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值