安装过程主要是参考 azkaban 的安装 - 小海的专栏 - 博客频道 - CSDN.NET
因为公司的需要,硬着头皮安装了azkaban,由于本人十分小白,过程充满了痛苦,记过几天努力总算是可以进入azkaban的登录页面,这里只说说遇到的问题
本人是在window环境下载编译的 azkaban3.12 ,因为公司linux测试环境安装gradle的难度似乎到sss级了,所以放弃。
1)通过git下载azkaban3.12分支,比较慢,但是听说在编译的时候会省去一些痛苦
git clone -b 3.12.0 https://github.com/azkaban/azkaban.git
2)在gitpub上下载,我选择的是这种,下载zip版本的
https://github.com/azkaban/azkaban/releases
gradlew distTar 提示下载gradle时可以从网上下载相应的gradle代替,ctrl+c结束下载从网上下载gradle对应版本放入 azkaban home\gradle\wrapper
并修改该目录下的gradle-wrapper.properties文件,在后面加入
#Sat May 28 17:40:49 PDT 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.7-all.zip
distributionUrl=gradle-2.7-all.zip
配置好后运行 sh bin/azkaban.start.sh 提示
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "main"
参考小海的安装,在conf下添加log文件,
继续运行 提示错误信息
ERROR StdOutErrRedirect:55 - SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
从咱们csdn里下载了一个 slf4j-nop-1.6.1.jar放入extlib目录下
继续报错
Caused by: java.sql.SQLException: Access denied for user 'azkaban'@'bqdps5' (using password: YES)
修改之前创建mysql用户azkaban的语句GRANT ALL ON azkaban.* to 'azkaban'@'bqdps5' IDENTIFIED BY 'azkaban';
继续报错
ERROR StdOutErrRedirect:55 - Caused by: java.sql.SQLException: Unknown column 'ex.executor_id' in 'on clause' Query: SELECT ex.exec_id exec_id, ex.enc_type enc_type, ex.flow_data flow_data, et.host host, et.port port, ax.update_time axUpdateTime, et.id executorId, et.active executorStatus FROM execution_flows ex INNER JOIN active_executing_flows ax ON ex.exec_id = ax.exec_id INNER JOIN executors et ON ex.executor_id = et.id Parameters:
查看之前的create-all-sql.sql,发现确实没有executor_id字段,于是把两个更新sql也执行一遍
source /home/azkaban/azkaban-sql-0.1.0-SNAPSHOT/update.execution_flows.3.0.sql;
source /home/azkaban/azkaban-sql-0.1.0-SNAPSHOT/update.active_executing_flows.3.0.sql;
还有一个错误是在设置keystore时遇到的,azkaban.property中的密码也与这里的密码一致
jetty.keystore=keystore
jetty.password=keystore
jetty.keypassword=keystore
jetty.truststore=keystore
jetty.trustpassword=keystore
这一段
最后总算可以登录了......