flink-sql-1.15.4配置hive catalog和hbase基于CDH6.3.2和kerberos

先部署一个flink基础环境,可以参考

kerberos环境下parcel方式部署flink1.15.3 基于CDH6.3.2 Flink on Yarn_Mumunu-的博客-CSDN博客

二进制包则是

kerberos环境下Flink on Yarn集群部署 基于flink1.15.3 hadoop 3.0CDH6.3.2_Mumunu-的博客-CSDN博客

flink-sql 和CDH部署中麻烦的地方在于几个版本报错

Unrecognized Hadoop major version number: 3.0.0-cdh6.3.2

通过排查ShimLoader.java源码,开源社区hive 2.x的版本这种情况下是不支持hadoop 3.x版本。但是CDH中hive 2.1.1-cdh6.3.2版本和社区版本是不一样的,可以支持hadoop 3.x版本

hbase-default.xml file seems to be for an older version of HBase (2.2.3), this version is 2.1.0-cdh6.3.2

CDH的hbase和开源版本的版本号不一样

所以需要我们自己单独编译一个适配cdh的版本

  1. 使用flink源码重新编译生成flink-sql-connector-hive-2.2.0_2.11,编译之前需要修改flink-connectors/flink-sql-connector-hive-2.2.0中的pom文件,将hive-exec的版本改成2.1.1-cdh6.3.2

  1. 使用flink源码重新编译生成flink-sgl-connector-hbase-2.2-1.15.4.jar,编译之前需要修改 flink-connectors/flink-sql-connector-hbase-2.2/src/main/resources/hbase-default.xml中的hbase.defaults .for.version为你的cdh版本

下载源码包 ,官网下就行

准备相关环境

maven 我的版本是3.6.3

mvn添加一下conjars的新地址

<mirrors>里插入
   <mirror>
      <id>conjars-https</id>
      <url>https://conjars.wensel.net/repo/</url>
      <mirrorOf>conjars</mirrorOf>
   </mirror>
   <mirror>
      <id>conjars</id>
      <name>conjars</name>
      <url>https://conjars.wensel.net/repo/</url>
      <mirrorOf>conjarse/mirrorOf>
    </mirror>

java 我的版本和cdh使用的一致

修改一些相关配置

配置cdh仓库

vim flink-1.15.3/pom.xml

在<repositories>插入
    <repository>
        <id>cloudera</id>
        <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>

修改依赖的hadoop和hive版本

vim flink-1.15.3/pom.xml
<hadoop.version>3.0.0-cdh6.3.2</hadoop.version>
vim flink-1.15.3/flink-connectors/flink-sql-connector-hive-2.2.0/pom.xml
<version>2.11-cdh6.3.2</version>

开始编译

mvn clean install -DskipTests -Dfast -Dhadoop.version=3.0.0-cdh6.3.2

其中会有几个报错

  1. org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde Maven下载失败

直接下载缺失的包,地址如下

https://public.nexus.pentaho.org/#browse/search=keyword=pentaho-aggdesigner-algorithm

将jar和pom放到maven对应路径下即可。

pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar

pentaho-aggdesigner-algorithm-5.1.5-jhyde.pom

附本人下载版本的网盘链接

链接:https://pan.baidu.com/s/1CPSi8_bn9PRy8vUG7EsSAA?pwd=lbdj

提取码:lbdj

2. flink-runtime-web: Failed to run task: 'npm ci --cache-max=0 --no-save ${npm.proxy}' failed. org.apache.commons.exec.ExecuteException

网上的办法都测试过 ,无法解决这个问题。有大佬能解决望赐教。考虑到我编译这个只是为了一个jar包 ,所以直接跳过web dashboard的编译

mvn clean install -DskipTests -Dfast -Dhadoop.version=3.0.0-cdh6.3.2 -Dskip.npm

如果是新环境可能要编译数个小时。慢慢等吧

将新编译好的jar包放到flink的lib目录中,替换原有jar包

位置在target目录下

将CDH环境中的libfb303-0.9.3.jar放到flink的lib目录中

在将mysql-connector-java-5.1.48.jar放到flink的lib目录中

把jar包在集群中同步一下 ,确保所有flink节点都有

hbase还需要添加环境信息

打开bin/下的flink,sql-client,yarn-session.sh 添加

export HADOOP_CLASSPATH=`hadoop classpath`

export HADOOP_CLASSPATH="$HADOOP_CLASSPATH:$HBASE_HOME/lib/*"

添加几个hbase的jar包。从cdh的hbase家目录复制过来

hbase-client-2.1.0-cdh6.3.2.jar

hbase-common-2.1.0-cdh6.3.2.jar

hbase-hadoop2-compat-2.1.0-cdh6.3.2.jar

hbase-hadoop-compat-2.1.0-cdh6.3.2.jar

hbase-protocol-2.1.0-cdh6.3.2.jar

hbase-protocol-shaded-2.1.0-cdh6.3.2.jar

hbase-server-2.1.0-cdh6.3.2.jar

htrace-core4-4.2.0-incubating.jar

metrics-core-3.0.1.jar

metrics-core-3.2.6jar

netty-all-4.1.50.Final.jar

重启flink-session

测试一下

kinit一下你的principal

-- 进入sql客户端
sql-client.sh 
 
-- 创建hive catalog
CREATE CATALOG hive_catalog WITH (
    'type' = 'hive',
    'default-database' = 'bigdata',
    'hive-conf-dir' = '/etc/hive/conf'
);
-- set the HiveCatalog as the current catalog of the session
USE CATALOG hive_catalog;
show tables;

没报错就是成功了 有报错看下日志 问题都不大

1. sql-client.sh
2. 执行
create table hbase_table_1 (
 rowkey string,
 cf1 ROW<username string>,
 PRIMARY KEY (rowkey) NOT ENFORCED
) WITH (
 'connector' = 'hbase-2.2',
 'table-name' = 'test:flink_test',
 'zookeeper.quorum' = 'cdhd03:2181'
);
3.查询:
select * from hbase_table_1;

没报错就是成功了 有报错看下日志 问题都不大

猜你喜欢

转载自blog.csdn.net/h952520296/article/details/128850967