alibaba / alibaba/DataX

datax hbase20xsqlwrite 写入phoenix5.0 时 报class not found :com/google/protobuf

Open
#315 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
17.4k
Forks
5.7k
PR merge metrics
No merged PRs in 30d

Description

2019-04-04 18:49:28.538 [job-0] ERROR Engine -

经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[Hbasewriter-02], Description:[获取QueryServer连接时出错.]. - 无法连接QueryServer,配置不正确或服务未启动,请检查配置和服务状态或者联系HBase管理员. - java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessageV3
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.calcite.avatica.remote.ProtobufTranslationImpl.(ProtobufTranslationImpl.java:145)
at org.apache.calcite.avatica.remote.Driver.createService(Driver.java:132)
at org.apache.calcite.avatica.remote.Driver.createMeta(Driver.java:97)
at org.apache.calcite.avatica.AvaticaConnection.(AvaticaConnection.java:121)
at org.apache.calcite.avatica.AvaticaJdbc41Factory$AvaticaJdbc41Connection.(AvaticaJdbc41Factory.java:105)
at org.apache.calcite.avatica.AvaticaJdbc41Factory.newConnection(AvaticaJdbc41Factory.java:62)
at org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:138)
at org.apache.calcite.avatica.remote.Driver.connect(Driver.java:165)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at com.alibaba.datax.plugin.writer.hbase20xsqlwriter.HBase20xSQLHelper.getThinClientConnection(HBase20xSQLHelper.java:61)
at com.alibaba.datax.plugin.writer.hbase20xsqlwriter.HBase20xSQLHelper.validateParameter(HBase20xSQLHelper.java:41)
at com.alibaba.datax.plugin.writer.hbase20xsqlwriter.HBase20xSQLWriter$Job.init(HBase20xSQLWriter.java:19)
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704)
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)
Caused by: java.lang.ClassNotFoundException: com.google.protobuf.GeneratedMessageV3
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 30 more

at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:33)
at com.alibaba.datax.plugin.writer.hbase20xsqlwriter.HBase20xSQLHelper.getThinClientConnection(HBase20xSQLHelper.java:64)
at com.alibaba.datax.plugin.writer.hbase20xsqlwriter.HBase20xSQLHelper.validateParameter(HBase20xSQLHelper.java:41)
at com.alibaba.datax.plugin.writer.hbase20xsqlwriter.HBase20xSQLWriter$Job.init(HBase20xSQLWriter.java:19)
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704)
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)
Caused by: java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessageV3
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.calcite.avatica.remote.ProtobufTranslationImpl.(ProtobufTranslationImpl.java:145)
at org.apache.calcite.avatica.remote.Driver.createService(Driver.java:132)
at org.apache.calcite.avatica.remote.Driver.createMeta(Driver.java:97)
at org.apache.calcite.avatica.AvaticaConnection.(AvaticaConnection.java:121)
at org.apache.calcite.avatica.AvaticaJdbc41Factory$AvaticaJdbc41Connection.(AvaticaJdbc41Factory.java:105)
at org.apache.calcite.avatica.AvaticaJdbc41Factory.newConnection(AvaticaJdbc41Factory.java:62)
at org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:138)
at org.apache.calcite.avatica.remote.Driver.connect(Driver.java:165)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at com.alibaba.datax.plugin.writer.hbase20xsqlwriter.HBase20xSQLHelper.getThinClientConnection(HBase20xSQLHelper.java:61)
... 8 more
Caused by: java.lang.ClassNotFoundException: com.google.protobuf.GeneratedMessageV3
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 30 more

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at plugin/writer/hbase20xsqlwriter/HBase20xSQLHelper.java:61 and its validateParameter call, where the Phoenix 5.0 connection fails while loading GeneratedMessageV3. Reproduce the hbase20xsqlwrite job and inspect the runtime dependencies; done means the QueryServer connection no longer fails with this missing-class error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.