Spark on Yarn与Flink on Yarn连接kerberos认证的Hbase

Spark和Flink均为分布式计算引擎,在使用yarn作为资源调度器提交任务并且连接拥有Kerberos认证的Hbase时,同时面临着认证文件分发与获取的问题。两者的解决方案也是类似的,先在driver端加载认证文件,存储到分布式缓存,然后再Executor端获取文件目录进行认证。

Spark on Yarn

  • driver端
  sparkSession.sparkContext.addFile(keytabPath)
  sparkSession.sparkContext.addFile(krb5Path)

keytabPath为keytab文件的在driver的绝对目录
  krb5Path为krb5.conf文件在driver的绝对目录

  • executor端
 val krb5Path=SparkFiles.get(krb5FileName) 
 val keytabPath=SparkFiles.get(keytabFileName)

krb5FileName为krb5.conf文件名
  keytabFileName为keytab文件名
  krb5Path和keytabPath则是executor端配置文件的目录

Flink on Yarn

  • driver端
    env.registerCachedFile(krb5Path,krb5FileName)
    env.registerCachedFile(keytabPath,keytabName)

krb5FileName为krb5.conf文件别名
  keytabFileName为keytab文件别名
  krb5Path和keytabPath则是driver端配置文件的绝对目录(也可以使用hdfs目录)

  • executor端
  val keytabPath=getRuntimeContext.getDistributedCache.getFile(keyTabFileName).getAbsolutePath
  val krb5Path=getRuntimeContext.getDistributedCache.getFile(krb5FileName).getAbsolutePath

krb5FileName为krb5.conf文件别名
  keytabFileName为keytab文件别名
  krb5Path和keytabPath则是executor端配置文件的绝对目录

你可能感兴趣的:(flink,spark,flink,spark,大数据)