ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

azkaban3.9.0安装教程

2021-01-20 15:02:49  阅读:208  来源: 互联网

标签:web 教程 tar exec soft server azkaban 安装 azkaban3.9


为了实现定时调用代码方法而又不想使用while循环然后sleep定时长的这么low的方法。显然azkaban是个不错的选择

步骤

0.安装要求

1.你的jdk版本至少在1.8(含)以上

2.你电脑已经安装MySQL,azkaban目前只认MySQL。

为了方便我们用root用户来装

1.下载

 

网站为https://github.com/azkaban/azkaban/releases下载。如下图选择你喜欢版本。选择tar.gz

 

 

2.生成安装包

安装azkaban必须先装有git 

,如果没有请自行安装git  

yum install -y git

为了方便我们可以先在/下创建一个soft文件夹来存放这些东西,我们先cd到上传azkaban-3.xx.x.tar.gz所在文件夹然后执行以下命令,因为我下的是azkaban-3.9.tar.gz,故本篇都以此版本书写,读者只需把版本换成自己的其他不变即可。

  1.  

     
    1. mkdir /soft/

    2.  
    3. tar -xzvf azkaban-3.9.tar.gz -C /soft

     

接下来开始测试build

  1.  

     
    1. #运行其自带打包工具但需要先cd到文件夹内

    2.  
    3. cd /soft/azkaban-3.9/

    4.  
    5. #运行自带方法 Build Azkaban

    6.  
    7. ./gradlew build

     

注意!
这步骤会耗费一些时间,如果你没装git此时赶紧回去装好否则会一直报错。不过有些rp不好的人虽然装了依旧会遇到报错,

这原因是你的jdk缺少Unlimited Strength Jurisdiction Policy 的问题就是无限强度管辖政策。可以去Oracle里下载
https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

下载解压后把文件夹UnlimitedJCEPolicyJDK8里的local_policy.jar和US_export_policy.jar放到 你的JAVA_HOME下/jre/lib/security里。(为了安全起见我们可以先把security文件夹里原来的local_policy.jar和US_export_policy.jar先mv成local_policy.jar.old和US_export_policy.jar.old然后上传)

最后重启java,我忘了怎么重启java,直接reboot重启整个机器

reboot

然后再次重复上面buid的步骤 。接下来稍待片刻你就可以看到成功的画面

然后卸载。请确保你现在依旧在 /soft/azkaban-3.9/

./gradlew clean

终于可以开始正式安装“安装包" 运行以下命令

  1.  

     
    1. ./gradlew installDist

    2.  
    3. ./gradlew test

    4.  
    5. ./gradlew build -x test

     

结果如下


接下来是时候看看这这个文件夹里的东西了

当我们运行完上述命令时安装包就已经整好了,我们只需要取出上面4个框内tar.gz文件即可,这4个压缩包为在各自文件夹下/build/distributions里的tar.gz拿azkaban-exec-server举例:

为了便于操作接下分别把这4个压缩包移到/soft/下新创建的azkaban文件夹里

  1.  

     
    1. mkdir /soft/azkaban

    2.  
    3.  
    4. mv /soft/azkaban-3.9/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/

    5.  
    6.  
    7. mv /soft/azkaban-3.9/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/

    8.  
    9.  
    10. mv /soft/azkaban-3.9/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/

    11.  
    12.  
    13. mv /soft/azkaban-3.9/azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz /soft/azkaban/

     

接下来在azkaban文件夹把这4个压缩包解压到当前文件并取个好听的名字

 
  1. cd /soft/azkaban

  2.  
  3. tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz

  4.  
  5. tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz

  6.  
  7. tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz

  8.  
  9. tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz

  10.  
  11. rm azkaban-db-0.1.0-SNAPSHOT.tar.gz -rf

  12.  
  13. rm azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -rf

  14.  
  15. rm azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -rf

  16.  
  17. rm azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -rf

  18.  
  19. mv azkaban-db-0.1.0-SNAPSHOT/ azkaban-db

  20.  
  21. mv azkaban-exec-server-0.1.0-SNAPSHOT/ azkaban-exec-server

  22.  
  23. mv azkaban-solo-server-0.1.0-SNAPSHOT/ azkaban-solo-server

  24.  
  25. mv azkaban-web-server-0.1.0-SNAPSHOT/ azkaban-web-server

效果如下

3.设置数据库(MySQL)

以root等级我们的mysql~~~

建立一个azkaban库,然后导入建表sql命令source   db文件夹里的 create-all 的sql文件

数据库初始化 mysql

  • 创建数据库并赋权
  • 注意要修改成Latin1 不然会报错
 
  1. CREATE DATABASE IF NOT EXISTS azkaban95;

  2. ##%代表所有的ip,也可以指定ip

  3. create user 'user'@'%' identified by 'password';

  4. grant all on azkaban95.* to 'user'@'%' with grant option;

  5. alter database azkaban95 character set Latin1;

grant select on databases.* to 'user'@'%' identified by 'pwd' with grant option;
  •  
  • 如果 MySQL 使用库表字符集使用 UTF-8,在初始化 Azkaban 的 MySQL 库时报错如下:
 
  1. ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

  2. ERROR 1146 (42S02): Table 'azkaban3.execution_jobs' doesn't exist

  3. ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

  4. ERROR 1146 (42S02): Table 'azkaban3.execution_logs' doesn't exist

  5. ERROR 1146 (42S02): Table 'azkaban3.execution_logs' doesn't exist

  6. ERROR 1146 (42S02): Table 'azkaban3.execution_logs' doesn't exist

这个是因为表 execution_logs 的主键总的长度字符超过 767 个字节导致的。解决方法是将该表的编码改为 Latin1。

  1.  

     
    1. create database azkaban;

    2.  
    3. use azkaban ;

    4.  
    5. source /soft/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql ;

     

结果如下

4.设置conf参数

注:记得我们生成的文件夹有个azkaban-solo-server吗?他为单机模式的,而本篇配置的是分布式,故不会用到该文件夹。顺带解压只是为方便广大读者根据自己需求进行选择。另外即使是分布式的azkaban 也支持只在一台服务器上启动
配置好数据后,我们只需要把azkaban-exec-server和azkaban-web-server的azkaban.properties内参数调好即可完成配置

他们azkaban.properties都在各自文件夹的/conf 里

exec-server的如下:只需把下面host和user和password修改即可

 
  1. # Azkaban Personalization Settings

  2.  
  3. azkaban.name=Test

  4.  
  5. azkaban.label=My Local Azkaban

  6.  
  7. azkaban.color=#FF3601

  8.  
  9. azkaban.default.servlet.path=/index

  10.  
  11. #web的路径变为绝对路径

  12.  
  13. web.resource.dir=/soft/azkaban/azkaban-web-server/web/

  14.  
  15. #时间改为亚洲上海

  16.  
  17. default.timezone.id=Asia/Shanghai

  18.  
  19. # Azkaban UserManager class

  20.  
  21. user.manager.class=azkaban.user.XmlUserManager

  22.  
  23. #user.manager.xml改为绝对路径

  24.  
  25. user.manager.xml.file=/soft/azkaban/azkaban-web-server/conf/azkaban-users.xml

  26.  
  27. # Loader for projects改为绝对路径

  28.  
  29. executor.global.properties=/soft/azkaban/azkaban-exec-server/conf/global.properties

  30.  
  31. azkaban.project.dir=projects

  32.  
  33. # Velocity dev mode

  34.  
  35. velocity.dev.mode=false

  36.  
  37. # Azkaban Jetty server properties.

  38.  
  39. jetty.use.ssl=false

  40.  
  41. jetty.maxThreads=25

  42.  
  43. jetty.port=8081

  44.  
  45. # Where the Azkaban web server is located

  46.  
  47. azkaban.webserver.url=http://localhost:8081

  48.  
  49. # mail settings

  50.  
  51. mail.sender=

  52.  
  53. mail.host=

  54.  
  55. # User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.

  56.  
  57. # enduser -> myazkabanhost:443 -> proxy -> localhost:8081

  58.  
  59. # when this parameters set then these parameters are used to generate email links.

  60.  
  61. # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.

  62.  
  63. # azkaban.webserver.external_hostname=myazkabanhost.com

  64.  
  65. # azkaban.webserver.external_ssl_port=443

  66.  
  67. # azkaban.webserver.external_port=8081

  68.  
  69. job.failure.email=

  70.  
  71. job.success.email=

  72.  
  73. lockdown.create.projects=false

  74.  
  75. cache.directory=cache

  76.  
  77. # JMX stats

  78.  
  79. jetty.connector.stats=true

  80.  
  81. executor.connector.stats=true

  82.  
  83. # Azkaban plugin settings改为绝对路径

  84.  
  85. azkaban.jobtype.plugin.dir=/soft/azkaban/azkaban-exec-server/plugins/jobtypes

  86.  
  87. # Azkaban mysql settings by default. Users should configure their own username and password.

  88.  
  89. database.type=mysql

  90.  
  91. mysql.port=3306

  92.  
  93. mysql.host=mysql的的主机host

  94.  
  95. mysql.database=azkaban

  96.  
  97. mysql.user=账号名称

  98.  
  99. mysql.password=账号密码

  100.  
  101. mysql.numconnections=100

  102.  
  103. # Azkaban Executor settings

  104.  
  105. executor.maxThreads=50

  106.  
  107. executor.flow.threads=30

web-server的如下:同样只需把下面host和user和password修改即可

  1.  

     
    1. # Azkaban Personalization Settings

    2.  
    3. azkaban.name=Test

    4.  
    5. azkaban.label=My Local Azkaban

    6.  
    7. azkaban.color=#FF3601

    8.  
    9. azkaban.default.servlet.path=/index

    10.  
    11. #web的路径变为绝对路径

    12.  
    13. web.resource.dir=/soft/azkaban/azkaban-web-server/web/

    14.  
    15. #时间改为亚洲上海

    16.  
    17. default.timezone.id=Asia/Shanghai

    18.  
    19. # Azkaban UserManager class

    20.  
    21. user.manager.class=azkaban.user.XmlUserManager

    22.  
    23. #填写的是user.manager.xml的绝对路径

    24.  
    25. user.manager.xml.file=/soft/azkaban/azkaban-web-server/conf/azkaban-users.xml

    26.  
    27. # Loader for projects添的是exec的global的绝对路径哦

    28.  
    29. executor.global.properties=/soft/azkaban/azkaban-exec-server/conf/global.properties

    30.  
    31. azkaban.project.dir=projects

    32.  
    33. # Velocity dev mode

    34.  
    35. velocity.dev.mode=false

    36.  
    37. # Azkaban Jetty server properties.

    38.  
    39. jetty.use.ssl=false

    40.  
    41. jetty.maxThreads=25

    42.  
    43. jetty.port=8081

    44.  
    45. # Azkaban Executor settings

    46.  
    47. # mail settings

    48.  
    49. mail.sender=

    50.  
    51. mail.host=

    52.  
    53. # User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.

    54.  
    55. # enduser -> myazkabanhost:443 -> proxy -> localhost:8081

    56.  
    57. # when this parameters set then these parameters are used to generate email links.

    58.  
    59. # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.

    60.  
    61. # azkaban.webserver.external_hostname=myazkabanhost.com

    62.  
    63. # azkaban.webserver.external_ssl_port=443

    64.  
    65. # azkaban.webserver.external_port=8081

    66.  
    67. job.failure.email=

    68.  
    69. job.success.email=

    70.  
    71. lockdown.create.projects=false

    72.  
    73. cache.directory=cache

    74.  
    75. # JMX stats

    76.  
    77. jetty.connector.stats=true

    78.  
    79. executor.connector.stats=true

    80.  
    81. # Azkaban mysql settings by default. Users should configure their own username and password.

    82.  
    83. database.type=mysql

    84.  
    85. mysql.port=3306

    86.  
    87. mysql.host=mysql的host

    88.  
    89. mysql.database=azkaban

    90.  
    91. mysql.user=用户账号

    92.  
    93. mysql.password=用户密码

    94.  
    95. mysql.numconnections=100

    96.  
    97. #Multiple Executor

    98.  
    99. azkaban.use.multiple.executors=true

    100.  
    101. #注意如果你的剩余内存不足6g必须把下面的 MinimumFreeMemory, 删除。不然会出错

    102.  
    103. azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus

    104.  
    105. azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1

    106.  
    107. azkaban.executorselector.comparator.Memory=1

    108.  
    109. azkaban.executorselector.comparator.LastDispatched=1

    110.  
    111. azkaban.executorselector.comparator.CpuUsage=1

     

该web是可以用ssl,但是对于我们初学者没必要,

5.添加账号

我们只需要在/azkaban-web-server/conf/ azkaban-users.xml文件里添加即可。假设我添加了一个yasina账号密码为yasina并有admin权限。只需如下修改即可

  1.  

     
    1. <azkaban-users>

    2.  
    3. <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>

    4.  
    5. <user password="metrics" roles="metrics" username="metrics"/>

    6.  
    7. <user password="yasina" roles="metrics,admin" username="yasina"/>

    8.  
    9.  
    10. <role name="admin" permissions="ADMIN"/>

    11.  
    12. <role name="metrics" permissions="METRICS"/>

    13.  
    14. </azkaban-users>

     

6.启动Azkaban!!!

1.启动顺序:

首先启动exec的再启动web的。一定要按这样的顺序,不然一定无法运行

2.启动exec-server

  1.  

     
    1. cd /soft/azkaban/azkaban-exec-server/

    2.  
    3. ./bin/start-exec.sh

     

3.手动修改exec-srver状态为激活。 

 这步很重要,不然后面web端会一直起不来,他会报错说execute没有available的,然后就停了。很蛋疼但是没办法。端口号在executor下的executor.port文件中可查  具体命令为curl http://${executorHost}:${executorPort}/executor?action=activate

4.启动web-server

  1. cd /soft/azkaban/azkaban-web-server/

  2. ./bin/start-web.sh

5.打开WebUI

web地址默认为http://localhost:8081你可以在azkaban.properties里修改。

然后点登录成功进入。界面如下

空空如也,毕竟都没创建project。那么我们接下来的工作就是创建一个project来体验一下azkaban的魅力

7.体验Azkaban

1.点击右上角的Create Project 创建project

点create Project结果如下

项目下也是一片空白,这需要我们把任务打包上去。看到了上图右上角的Upload了吗?别急点。我们都还没写东西呢

2.编辑任务

对于我们这些初学者而就echo " Hello"    吧 

我们在Windows桌面新建一个记事本取名叫test

在记事本里添加以下两行内容即可

  1. type=command

  2. command= echo "hello"

然后把该文件名后缀txt格式改写成job因为azkaban只认job格式。然后把该job再压缩成zip格式才能上传到azkaban里。如下

3.上传文件

点击页面上的Upload按钮并添加要上传的test.zip文件。点击Upload上传

结果如下,然后点击Execute Flow

3.设置执行文件参数

此时我们可以选择左下角的Schedule来控制该事件的重复执行的时间间隔长度。然后再Execute

其内部界面如下

这次我们只是进行测试azkaban是否能正常工作故不设置时间间隔。直接Execute。会出现下面信息框。我这是运行第四次了所以id是4.故此处与我不同的同学~莫慌,问题不大

直接点Continue你会跳转到下面这

这绿色说明你的上传的job已经运行成功了!不是绿色则是失败。有些不是绿色的同学莫慌。很有可能是你的内存不够6G导致的请回去看看我们步骤4里web-server的azkaban.properties你是否已经把MinimumFreeMemory, 字段删除?如果没删这话又没有6G内存的话~~这自检永远过不去,你的job就一直只能是准备状态。

4.查看结果

由于我们运行的是打印一个hello那么我们应该去哪看呢?如果你选择我上图红色框的Flowlog,很遗憾你猜错了。应该去绿色框里的Job list里看

点击Log。找到hello了!!!

8.退出Azkaban

退出的话是反过来的,先关web,再exec

web的

  1. cd /soft/azkaban/azkaban-web-server/

  2. ./bin/shutdown-web.sh

exec的

  1. cd /soft/azkaban/azkaban-exec-server/

  2. ./bin/shutdown-exec.sh

至此,azkaban的安装到测试运行全部结束!!!当然了job文件内的type远不止一个command。但这其他的东西大家都可以百度到了。所以我就不一一赘述了。

标签:web,教程,tar,exec,soft,server,azkaban,安装,azkaban3.9
来源: https://blog.csdn.net/maxushan001/article/details/112872826

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有