flink 创建hbase出错

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

flink 创建hbase出错

lucas.wu
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




请问我还需要在那里加上依赖?
Reply | Threaded
Open this post in threaded view
|

Re: flink 创建hbase出错

Terry Wang
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
>
>
>
>
> 请问我还需要在那里加上依赖?

Reply | Threaded
Open this post in threaded view
|

Re: flink 创建hbase出错

lucas.wu
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      请问我还需要在那里加上依赖?
Reply | Threaded
Open this post in threaded view
|

Re: flink 创建hbase出错

lucas.wu
今天看到spi相关的资料,明白了一些,maven把类打进jar包,但是里面的类不是全部加载进内存,而且有使用到才加载,而像sinktable或者soucetable这些调用一般都是通过多态调用的,导致实现类不会加载,导致找不到。而如果放在lib目录,flink启动的时候会手动加载里面的类。
&nbsp;
&nbsp;
------------------&nbsp;Original&nbsp;------------------
From: &nbsp;"lucas.wu"<[hidden email]&gt;;
Date: &nbsp;Fri, Jan 3, 2020 02:37 PM
To: &nbsp;"user-zh"<[hidden email]&gt;;

Subject: &nbsp;Re: flink 创建hbase出错

&nbsp;


Hi:

这个方法之前试过了,确实有效的。但是有个地方不明白,就是sql解析这个是在driver端进行的,我的driver的jar包已经包含hbase相关的jar包,为什么还要在lib目录下加上?

                            &nbsp;原始邮件                            
发件人:&nbsp;Terry Wang<[hidden email]&gt;
收件人:&nbsp;user-zh<[hidden email]&gt;
发送时间:&nbsp;2020年1月3日(周五) 11:02
主题:&nbsp;Re: flink 创建hbase出错


Hi, flink-hbase_2.11-1.9.0.jar 只包括了flink对hbase读写的封装的类,并没有提供hbase client的类,你需要把hbaes client等相关的jar包提供出来放到 lib包里面。 Best, Terry Wang &gt; 2020年1月2日 16:54,lucas.wu <[hidden email]&gt; 写道: &gt;  &gt; Hi 大家好 &gt; 有个问题要问问大家,我现在用flink1.9版本创建hbase表 &gt; sql: &gt; create table hbase_dimention_table( &gt; id varchar, &gt; info ROW(xxx) &gt; )with( &gt; 'connector.type' = 'hbase', &gt; 'connector.version' = '1.4.3',      &gt; 'connector.table-name' = 'xxxx',  &gt; 'connector.zookeeper.quorum' = ‘xxx' &gt; ); &gt; 接着把flink-hbase_2.11-1.9.0.jar 放到了lib目录下,但是在执行的时候出现这种错误 &gt; org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: SQL validation failed. findAndCreateTableSource failed &gt; Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration &gt;  &gt;  &gt;  &gt;  &gt; 请问我还需要在那里加上依赖?