flink on yarn 用户代码获取keytab本地文件和principal的方法

 

flink on yarn的情况下配置的keytab文件会根据每次yarn application 分配taskmanager的变化都是不一样的,在部分场景下用户代码也需要获得keytab文件在yarn上的本地路径,可以通过以下方式拿到文件地址。

   final Map<String, String> ENV = System.getenv();
   
   final String currDir = ENV.get("PWD");
   
   log.info("Current working/local Directory: {}", currDir);
   
   String keytabPath = null;
   File f = new File(currDir, "krb5.keytab");
   keytabPath = f.getAbsolutePath();
   
   log.info("local keytab path: {}", keytabPath);
   
  

   final String remoteKeytabPrincipal = ENV.get("_KEYTAB_PRINCIPAL");
   
   
   log.info("TM: remote keytab principal obtained {}", remoteKeytabPrincipal);

 

posted @ 2018-11-20 11:00  sanmutongzi  阅读(2014)  评论(0编辑  收藏  举报