探索开源工作流引擎 Azkaban 在 MRS 中的实践
本文分享自华为云社区《开源工作流引擎Azkaban在MRS中的实践》,作者:啊喔 YeYe。
环境输入
实践版本:Apache azkaban 4.0.0 (以单机版举例,集群版本配置过程类似),MRS 3.1.0 普通集群。Azkaban 插件地址Azkaban 官网Azkaban 源码地址
安装 azkaban-solo-server
Azkaban 不提供二进制包,需要用户下载源码编译打包,获取到“azkaban-solo-server.zip”和“azkaban-db.zip”。
1、环境准备。
在华为云购买 Linux 弹性云服务器 ECS,用于安装运行 MRS 集群客户端和 Azkaban,并绑定弹性公网 IP。
在弹性云服务器 ECS 上安装运行 MRS 集群客户端,例如安装目录为“/opt/client”。
准备数据表,参考 MySQL 教程。
安装 MySQL 并授予本机访问权限。注意:Azkaban 4.0.0 版本默认适配 MySQL 5.1.28 版本。
创建 Azkaban 数据库,解压“azkaban-db.zip”获取“create-all-sql-*.sql”,并初始化。
2、上传安装包并解压
上传“azkaban-solo-server.zip”至“/opt/azkaban”目录
执行以下命令解压并删除安装包
3、修改配置文件“azkaban-solo-server/conf/azkaban.properties”
配置端口根据实际情况修改,“jetty.port”和“mysql.port”端口号可使用默认值
4、启动 azkaban-solo-server
5、访问 Azkaban WEB UI
在浏览器输入“http://ECS弹性 IP:port”网址,进入 Azkaban WebUI 登录界面,输入用户信息登录 Azkaban 服务。
说明:
默认端口(port):8081;用户名/密码:azkaban/azkaban;用户账号配置文件: /opt/azkaban/azkaban-solo-server/conf/azkaban-users.xml
azkaban-hdfs-viewer plugin 配置指导
连接 HDFS 需要用户下载源码编译获取“az-hdfs-viewer.zip”,并已完成安装 azkaban-solo-server。
1、环境准备
配置 Azkaban 用户,添加 supergroup 用户组授予访问 HDFS 权限
在 HDFS 的配置文件“core-stie.xml”中增加 Azkaban 代理用户
a. 登录 Manager 页面,选择“集群 > 服务 > HDFS > 配置 > 全部配置 > HDFS(服务) > 自定义”
b. 在参数文件“core-site.xml”中添加如下配置项:
c. 配置完成后,单击左上角“保存”d. 选择“概览 > 更多 > 重启服务”输入密码后重启 HDFS 服务
2、上传安装包并解压
上传“az-hdfs-viewer.zip”至“/opt/azkaban/azkaban-solo-server/plugins/viewer”目录
执行以下命令解压并删除安装包
重命名解压后的文件名为"hdfs"
mv az-hdfs-viewer hdfs
3、修改并保存配置文件
修改"azkaban-solo-server/plugins/viewer/hdfs/conf/plugin.properties"文件中的代理用户为步骤 1 中配置的 Azkaban 代理用户。修改"execute-as-user"的存放目录为 Azkaban 安装目录,如"opt/azkaban/azkaban-solo-server"。
若不存在该文件需手动创建并配置以上内容
4、拷贝 HDFS 插件所需包至"/opt/azkaban/azkaban-solo-server/extlib"目录
不同 MRS 版本所需 Hadoop 相关版本不同,通过 find /opt/client 查询目
5、检查目录结构
目录结构应当为:
6、重启 Azkaban-solo-server 服务
7、访问 HDFS Browser
在浏览器输入“http://ECS弹性 IP:8081”网址,进入 Azkaban WebUI 登录界面,输入用户信息登录 Azkaban 服务
单击"HDFS"
plugins-jobtypes hadoop-job 部署运行
安装 azkaban-solo-server 完成后,再部署验证 hadoop-job
1、环境准备
编译获取 azkaban 提供的 hadoopjava-wordcount 实例程序包“az-hadoop-jobtype-plugin.jar”
2、上传插件配置文件
解压"azkaban-plugins-3.0.0.zip" 获取"azkaban-plugins-3.0.0\plugins\jobtype\jobtypes"下"hadoopJava"文件夹
将“hadoopJava”文件夹上传至“/plugin”目录。目录不存在则需新建
3、修改配置文件"azkaban-solo-server/plugins/jobtypes/commonprivate.properties"
4、示例程序验证
准备测试数据"input.txt"文件,文件内容可参考如下格式进行自定义,存放路径如"/opt/input.txt"
通过 HDFS 客户端将测试数据"input.txt"上传至"hdfs /tmp/azkaban_test"
a. 以客户端安装用户,登录安装客户端的节点
b. 执行以下命令,切换到客户端安装目录 cd /opt/client
c. 执行以下命令配置环境变量 source bigdata_env
d. 执行 HDFS Shell 命令上传文件 hdfs dfs -put /opt/input.txt /tmp/azkaban_test
用户在本地编写并保存“wordcount.job”文件,内容如下
在浏览器输入“http://ECS弹性 IP:port”网址,进入 Azkaban WebUI 登录界面,输入用户信息登录 Azkaban 服务,提交 job 运行验证
Spark command job—参考客户端命令
spark 任务有两种运行方式,一种是 command 方式,另一种是 spark jobtype 方式。
Command 方式:需要指定 spark_home 为/opt/client/Spark/spark/
在 MRS 集群客户端节点可以通过 echo $SPARK_HOME 获取实际 Spark 安装地址。
设置 azkanban 所在 ECS 全局环境变量,添加 source {MRS 客户端}后需要重启 azkaban 才可生效
jobtype 方式:参考 plugins-jobtypes hadoop-job 部署运行。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/a44c08bdaf363e11d31fd5d9b】。文章转载请联系作者。
评论