Hi 大家好
有个问题要问问大家,我现在用flink1.9版本创建hbase表 sql: create table hbase_dimention_table( id varchar, info ROW(xxx) )with( 'connector.type' = 'hbase', 'connector.version' = '1.4.3', 'connector.table-name' = 'xxxx', 'connector.zookeeper.quorum' = ‘xxx' ); 接着把flink-hbase_2.11-1.9.0.jar 放到了lib目录下,但是在执行的时候出现这种错误 org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: SQL validation failed. findAndCreateTableSource failed Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration 请问我还需要在那里加上依赖? |
Hi,
flink-hbase_2.11-1.9.0.jar 只包括了flink对hbase读写的封装的类,并没有提供hbase client的类,你需要把hbaes client等相关的jar包提供出来放到 lib包里面。 Best, Terry Wang > 2020年1月2日 16:54,lucas.wu <[hidden email]> 写道: > > Hi 大家好 > 有个问题要问问大家,我现在用flink1.9版本创建hbase表 > sql: > create table hbase_dimention_table( > id varchar, > info ROW(xxx) > )with( > 'connector.type' = 'hbase', > 'connector.version' = '1.4.3', > 'connector.table-name' = 'xxxx', > 'connector.zookeeper.quorum' = ‘xxx' > ); > 接着把flink-hbase_2.11-1.9.0.jar 放到了lib目录下,但是在执行的时候出现这种错误 > org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: SQL validation failed. findAndCreateTableSource failed > Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration > > > > > 请问我还需要在那里加上依赖? |
In reply to this post by lucas.wu
Hi:
这个方法之前试过了,确实有效的。但是有个地方不明白,就是sql解析这个是在driver端进行的,我的driver的jar包已经包含hbase相关的jar包,为什么还要在lib目录下加上? 原始邮件 发件人:Terry [hidden email] 收件人:[hidden email] 发送时间:2020年1月3日(周五) 11:02 主题:Re: flink 创建hbase出错 Hi, flink-hbase_2.11-1.9.0.jar 只包括了flink对hbase读写的封装的类,并没有提供hbase client的类,你需要把hbaes client等相关的jar包提供出来放到 lib包里面。 Best, Terry Wang 2020年1月2日 16:54,lucas.wu [hidden email] 写道: Hi 大家好 有个问题要问问大家,我现在用flink1.9版本创建hbase表 sql: create table hbase_dimention_table( id varchar, info ROW(xxx) )with( 'connector.type' = 'hbase', 'connector.version' = '1.4.3', 'connector.table-name' = 'xxxx', 'connector.zookeeper.quorum' = ‘xxx' ); 接着把flink-hbase_2.11-1.9.0.jar 放到了lib目录下,但是在执行的时候出现这种错误 org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: SQL validation failed. findAndCreateTableSource failed Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration 请问我还需要在那里加上依赖? |
今天看到spi相关的资料,明白了一些,maven把类打进jar包,但是里面的类不是全部加载进内存,而且有使用到才加载,而像sinktable或者soucetable这些调用一般都是通过多态调用的,导致实现类不会加载,导致找不到。而如果放在lib目录,flink启动的时候会手动加载里面的类。
------------------ Original ------------------ From: "lucas.wu"<[hidden email]>; Date: Fri, Jan 3, 2020 02:37 PM To: "user-zh"<[hidden email]>; Subject: Re: flink 创建hbase出错 Hi: 这个方法之前试过了,确实有效的。但是有个地方不明白,就是sql解析这个是在driver端进行的,我的driver的jar包已经包含hbase相关的jar包,为什么还要在lib目录下加上? 原始邮件 发件人: Terry Wang<[hidden email]> 收件人: user-zh<[hidden email]> 发送时间: 2020年1月3日(周五) 11:02 主题: Re: flink 创建hbase出错 Hi, flink-hbase_2.11-1.9.0.jar 只包括了flink对hbase读写的封装的类,并没有提供hbase client的类,你需要把hbaes client等相关的jar包提供出来放到 lib包里面。 Best, Terry Wang > 2020年1月2日 16:54,lucas.wu <[hidden email]> 写道: > > Hi 大家好 > 有个问题要问问大家,我现在用flink1.9版本创建hbase表 > sql: > create table hbase_dimention_table( > id varchar, > info ROW(xxx) > )with( > 'connector.type' = 'hbase', > 'connector.version' = '1.4.3', > 'connector.table-name' = 'xxxx', > 'connector.zookeeper.quorum' = ‘xxx' > ); > 接着把flink-hbase_2.11-1.9.0.jar 放到了lib目录下,但是在执行的时候出现这种错误 > org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: SQL validation failed. findAndCreateTableSource failed > Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration > > > > > 请问我还需要在那里加上依赖? |
Free forum by Nabble | Edit this page |