Azkaban启用常见问题说明(启动报错)

 

本内容基于Azkaban的3.84.4版本

 

1、启动报MySQL数据库连接报错,明明账号密码没错

java.sql.SQLException: Cannot create PoolableConnectionFactory (Could not create connection to database server.)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2294)
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
    at azkaban.db.MySQLDataSource.getConnection(MySQLDataSource.java:78)
    at org.apache.commons.dbutils.AbstractQueryRunner.prepareConnection(AbstractQueryRunner.java:175)
    at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:286)
    at azkaban.db.DatabaseOperator.query(DatabaseOperator.java:69)
    at azkaban.project.JdbcProjectImpl.fetchAllActiveProjects(JdbcProjectImpl.java:104)
    at azkaban.project.ProjectManager.loadAllProjects(ProjectManager.java:114)
    at azkaban.project.ProjectManager.<init>(ProjectManager.java:78)
    at azkaban.project.ProjectManager$$FastClassByGuice$$9a08937.newInstance(<generated>)
    at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015)
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1054)
    at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:227)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
    at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2575)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2311)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.GeneratedConstructorAccessor8.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:347)
    at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:39)
    at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:256)
    at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2304)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290)
    ... 33 more
Caused by: java.lang.NullPointerException
    at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3286)
    at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1987)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1913)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1290)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2493)

Azkaban-3.84.4 默认设置的MySQL连接驱动是5.x版本的 如果你的MySQL数据库版本用的8的话 那要改下

修改安装包lib底下mysql-connector-java-5.1.28.jar的删掉,替换成mysql8版本的 我用的是:mysql-connector-java-8.0.28.jar  可用

image

 

 

2、azkaban-web-server启动报错 :azkaban.executor.ExecutorManagerException: No active executors found

ERROR [StdOutErrRedirect] [Azkaban] Exception in thread "main" 
ERROR [StdOutErrRedirect] [Azkaban] azkaban.executor.ExecutorManagerException: No active executors found
ERROR [StdOutErrRedirect] [Azkaban]     at azkaban.executor.ActiveExecutors.setupExecutors(ActiveExecutors.java:52)
ERROR [StdOutErrRedirect] [Azkaban]     at azkaban.executor.ExecutorManager.setupExecutors(ExecutorManager.java:192)
ERROR [StdOutErrRedirect] [Azkaban]     at azkaban.executor.ExecutorManager.initialize(ExecutorManager.java:127)
ERROR [StdOutErrRedirect] [Azkaban]     at azkaban.executor.ExecutorManager.start(ExecutorManager.java:141)
ERROR [StdOutErrRedirect] [Azkaban]     at azkaban.webapp.AzkabanWebServer.launch(AzkabanWebServer.java:234)
ERROR [StdOutErrRedirect] [Azkaban]     at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:227)

启动azkaban-web-server 服务之前 要先启动azkaban-exec-server服务 并且要激活executor服务 也就是执行下面这个命令  ( 这里的localhost要对应azkaban-exec-server服务的ip和端口)

curl -G  "localhost:12321/executor?action=activate" && echo

返回

{"status":"success"}

 

 

posted @ 2025-08-15 16:53  yvioo  阅读(27)  评论(0)    收藏  举报