IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 探索开源工作流引擎Azkaban在MRS中的实践 -> 正文阅读

[大数据]探索开源工作流引擎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”,并初始化。
  1. 上传安装包并解压
  • 上传“azkaban-solo-server.zip”至“/opt/azkaban”目录
  • 执行以下命令解压并删除安装包
    unzip azkaban-solo-server.zip
    rm -f unzip azkaban-solo-server.zip
    
  1. 修改配置文件“azkaban-solo-server/conf/azkaban.properties”
    配置端口根据实际情况修改,“jetty.port”和“mysql.port”端口号可使用默认值
    jetty.port=8081 
    database.type=mysql 
    mysql.port=3306 
    mysql.host=x.x.x.x 
    mysql.database=azkaban 
    mysql.user=xxx 
    mysql.password=xxx
    
  2. 启动azkaban-solo-server
    source /opt/client/bigdata_env
    cd /opt/azkaban/azkaban-solo-server
    sh bin/start-solo.sh
    
  3. 访问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”中添加如下配置项:
    名称
    hadoop.proxyuser.azkaban.groups*
    hadoop.proxyuser.azkaban.hosts*
    c. 配置完成后,单击左上角“保存”
    d. 选择“概览 > 更多 > 重启服务”输入密码后重启HDFS服务
  1. 上传安装包并解压
  • 上传“az-hdfs-viewer.zip”至“/opt/azkaban/azkaban-solo-server/plugins/viewer”目录
  • 执行以下命令解压并删除安装包
    unzip az-hdfs-viewer.zip
    rm -f az-hdfs-viewer.zip
    
  • 重命名解压后的文件名为"hdfs"
    mv az-hdfs-viewer hdfs
  1. 修改并保存配置文件
  • 修改"azkaban-solo-server/plugins/viewer/hdfs/conf/plugin.properties"文件中的代理用户为步骤1中配置的Azkaban代理用户。修改"execute-as-user"的存放目录为Azkaban安装目录,如"opt/azkaban/azkaban-solo-server"。
    viewer.name=HDFS 
    viewer.path=hdfs 
    viewer.order=1 
    viewer.hidden=false 
    viewer.external.classpaths=extlib/* 
    viewer.servlet.class=azkaban.viewer.hdfs.HdfsBrowserServlet 
    hadoop.security.manager.class=azkaban.security.HadoopSecurityManager_H_2_0 
    azkaban.should.proxy=false 
    proxy.user=azkaban   // mrs集群中配置的azkaban代理用户名 
    allow.group.proxy=true 
    file.max.lines=1000 
    #Specifying the error message we want user to get when they don't have permissionsviewer.access_denied_message=The folder you are trying to access is protected. 
    execute.as.user=false 
    // execute-as-user存放目录 
    azkaban.native.lib=/opt/azkaban/azkaban-solo-server
    
    若不存在该文件需手动创建并配置以上内容
  1. 拷贝HDFS插件所需包至"/opt/azkaban/azkaban-solo-server/extlib"目录
    cp /opt/client/HDFS/hadoop/share/hadoop/hdfs/*.jar /opt/azkaban/azkaban-solo-server/extlib
    cp /opt/client/HDFS/hadoop/share/hadoop/client/hadoop-client-api-3.1.1-mrs-2.0.jar /opt/azkaban/azkaban-solo-server/extlib
    cp /opt/client/HDFS/hadoop/share/hadoop/common/*.jar /opt/azkaban/azkaban-solo-server/extlib
    
    不同MRS版本所需Hadoop相关版本不同,通过find /opt/client查询目
  2. 检查目录结构
    目录结构应当为:
    - azkaban-solo-server     
    - bin    
    - conf     
    - extlib (hadoop相关插件第三方包)     
    - lib     
    - logs     
    - plugins 
     - jobtypes(job插件目录) 
       - commonprivate.properties 
       - hive 
         - plugin.properties 
         - private.properties 
       - hadoopJava 
         - plugin.properties 
         - private.properties       
     - viewer            
       - hdfs                 
         - conf                      
           - plugin.properties                 
       - lib (az-hdfs-viewer.zip解压后的lib)     
    - temp     
    - web
    
  3. 重启Azkaban-solo-server服务
    cd /opt/azkaban/azkaban-solo-server
    sh bin/shutdown-solo.sh
    sh bin/start-solo.sh
    
  4. 访问HDFS Browser
  • 在浏览器输入“http://ECS弹性IP:8081”网址,进入Azkaban WebUI登录界面,输入用户信息登录Azkaban服务
  • 单击"HDFS"

plugins-jobtypes hadoop-job 部署运行

安装azkaban-solo-server完成后,再部署验证hadoop-job

  1. 环境准备
  1. 上传插件配置文件
  • 解压"azkaban-plugins-3.0.0.zip" 获取"azkaban-plugins-3.0.0\plugins\jobtype\jobtypes"下"hadoopJava"文件夹
  • 将“hadoopJava”文件夹上传至“/plugin”目录。目录不存在则需新建
  1. 修改配置文件"azkaban-solo-server/plugins/jobtypes/commonprivate.properties"
    # set execute-as-user 
    execute.as.user=false 
    
    hadoop.security.manager.class=azkaban.security.HadoopSecurityManager_H_2_0 
    azkaban.should.proxy=false 
    obtain.binary.token=false 
    proxy.user=azkaban // MRS集群中配置的Azkaban代理用户名 
    allow.group.proxy=true 
    // execute-as-user存放目录 
    azkaban.native.lib=/opt/azkaban/azkaban-solo-server 
    
    # hadoop 
    hadoop.home=/opt/client/HDFS/hadoop   //opt/client为MRS集群客户端安装目录 
    hive.home=/opt/client/Hive/Beeline 
    spark.home=/opt/client/Spark/spark 
    hadoop.classpath=${hadoop.home}/etc/hadoop,${hadoop.home}/share/hadoop/common/*,${hadoop.home}/share/hadoop/common/lib/*,${hadoop.home}/share/hadoop/hdfs/*,${hadoop.home}/share/hadoop/hdfs/lib/*,${hadoop.home}/share/hadoop/yarn/*,${hadoop.home}/share/hadoop/yarn/lib/*,${hadoop.home}/share/hadoop/mapreduce/*,${hadoop.home}/share/hadoop/mapreduce/lib/* 
    jobtype.global.classpath=${hadoop.home}/etc/hadoop,${hadoop.home}/share/hadoop/common/*,${hadoop.home}/share/hadoop/common/lib/*,${hadoop.home}/share/hadoop/hdfs/*,${hadoop.home}/share/hadoop/hdfs/lib/*,${hadoop.home}/share/hadoop/yarn/*,${hadoop.home}/share/hadoop/yarn/lib/*,${hadoop.home}/share/hadoop/mapreduce/*,${hadoop.home}/share/hadoop/mapreduce/lib/*
    
  2. 示例程序验证
  • 准备测试数据"input.txt"文件,文件内容可参考如下格式进行自定义,存放路径如"/opt/input.txt"
    Ross    male    33  3674 
    Julie   male    42  2019 
    Gloria  female  45  3567 
    Carol   female  36  2813
    
  • 通过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”文件,内容如下
    type=hadoopJava 
    job.extend=false 
    job.class=azkaban.jobtype.examples.java.WordCount 
    classpath=./lib/*,/opt/azkaban-solo-server-0.1.0-SNAPSHOT/lib/* 
    force.output.overwrite=true 
    input.path=/tmp/azkaban_test 
    output.path=/tmp/azkaban_test_out
    
  • 在浏览器输入“http://ECS弹性IP:port”网址,进入Azkaban WebUI登录界面,输入用户信息登录Azkaban服务,提交job运行验证

Spark command job—参考客户端命令

spark任务有两种运行方式,一种是command方式,另一种是spark jobtype方式。

  1. Command方式:需要指定spark_home为/opt/client/Spark/spark/
    在MRS集群客户端节点可以通过echo $SPARK_HOME获取实际Spark安装地址。
    设置azkanban所在ECS全局环境变量,添加source {MRS客户端}后需要重启azkaban才可生效
  2. jobtype方式:参考plugins-jobtypes hadoop-job 部署运行。

?点击关注,第一时间了解华为云新鲜技术~?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:02:54  更:2022-05-21 19:06:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:09:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码