本案例基于flink 1.14 编写, 适用hbase 1.x 版本,若hbase 集群未启用kerberos 认证,也适用该案例。同时hbase集群需要和sloth提交作业的yarn 集群属于同一个kerberos集群

开发程序

  1. 获取hbase-site.xml、core-site.xml 配置文件
  2. flink在runtime 层对hdfs进行认证,同时也会对hbase 进行认证,因此在代码访问hbase 时不需要再额外进行kerberos 认证配置。认证统一使用sloth 产品提供的flink-conf.yml 配置的keytab进行认证,一般为sloth用户,需要用户通过hbase shell对该用户进行相关授权操作,比如执行如下授权命令
    grant 'sloth', 'RWXCA'
    hbase 通过acls 进行授权操作,可以对 Namespace, Table, Column Family, or Cell,进行相关权限操作,具体参考hbase官网 https://hbase.apache.org/1.4/book.html#_securing_access_to_your_data
  3. 在本文最下方附件下载代码样例
  4. 将工程导入idea中, 步骤1获取到的配置文件放在项目resource 目录下
  5. 可以在类HbaseSimpleExample 中修改kafka 地址等相关配置
  6. 可以在类MyHbaseBatchSink 中修改hbase 相关配置以及namespace ,table 等信息
  7. 可以根据数据情况调整Orders POJO 类

调试程序

  1. 在idea 中打包代码,在sloth 创建flink jar任务,将jar 包上传至平台
  2. 如果作业中有kafka 集群开启了kerberos 配置,同时需要为作业添加一个高级参数配置,以将平台配置的kerberos 认证同时也作为kafka 的认证 参数如下:
    security.kerberos.login.contexts KafkaClient