You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 酷酷的浑蛋 <ap...@163.com> on 2020/06/11 07:14:56 UTC
回复: FLINK SQL DDL写入hbase问题
您是说将那几个jar都放到flink/lib下吗?
在2020年06月11日 14:39,Leonard Xu<xb...@gmail.com> 写道:
Hi
你服务器上是否配置了hadoop_classpath? 建议hbase在试用时 用 hadoop_classpath + flink-hbase jar,不然依赖问题会比较麻烦。
祝好
Leonard Xu
在 2020年6月11日,14:24,酷酷的浑蛋 <ap...@163.com> 写道:
在使用flink sql ddl语句向hbase中写的时候报如下错误:
java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
at org.apache.flink.addons.hbase.HBaseUpsertTableSink.consumeDataStream(HBaseUpsertTableSink.java:87)
at org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecSink.translateToPlanInternal(StreamExecSink.scala:141)
at org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecSink.translateToPlanInternal(StreamExecSink.scala:50)
项目maven中已经引入过下面依赖
<artifactId>hbase-server</artifactId>
<artifactId>hbase-common</artifactId>
<artifactId>hadoop-common</artifactId>
<artifactId>flink-hbase_2.11</artifactId>
而且我看jar中是有HBaseConfiguration这个类的,为什么放到服务器上执行就报错呢,在本地执行没问题
Re: FLINK SQL DDL写入hbase问题
Posted by Leonard Xu <xb...@gmail.com>.
Hi,
> 您是说将那几个jar都放到flink/lib下吗?
你看这个报错,是在flink的client提交作业的时候就抛出的异常,看起来是你client所在机器配置缺少了hbase的jar。
你在使用hbase集群,肯定线上是有hadoop集群的,hbase 的一些类是依赖了 hadoop 的依赖,所以你把 hbase lib下 jar 加到 $HADOOP_CLASSPATH下,这样$HADOOP_CLASSPATH 下就有hbase所需的所有jar了,在flink的lib目录下,只需要添加 flink-hbase_2.11 的依赖即可,flink作业启动脚本会检查$HADOOP_CLASSPATH,能够加载到所需的jar。
> <artifactId>hbase-server</artifactId>
> <artifactId>hbase-common</artifactId>
> <artifactId>hadoop-common</artifactId>
不推荐在 pom 里这样引入hadoop 和 hbase 的 jar 包,这样依赖容易冲突。
Best,
Leonard Xu
>
> 在2020年06月11日 14:39,Leonard Xu<xb...@gmail.com> 写道:
> Hi
> 你服务器上是否配置了hadoop_classpath? 建议hbase在试用时 用 hadoop_classpath + flink-hbase jar,不然依赖问题会比较麻烦。
>
> 祝好
> Leonard Xu
>
> 在 2020年6月11日,14:24,酷酷的浑蛋 <ap...@163.com> 写道:
>
>
>
> 在使用flink sql ddl语句向hbase中写的时候报如下错误:
> java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
> at org.apache.flink.addons.hbase.HBaseUpsertTableSink.consumeDataStream(HBaseUpsertTableSink.java:87)
> at org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecSink.translateToPlanInternal(StreamExecSink.scala:141)
> at org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecSink.translateToPlanInternal(StreamExecSink.scala:50)
>
>
> 项目maven中已经引入过下面依赖
> <artifactId>hbase-server</artifactId>
> <artifactId>hbase-common</artifactId>
> <artifactId>hadoop-common</artifactId>
> <artifactId>flink-hbase_2.11</artifactId>
> 而且我看jar中是有HBaseConfiguration这个类的,为什么放到服务器上执行就报错呢,在本地执行没问题