【技术实践】kyuubi+集成kerberos认证

2019-02-15 人浏览 点击收藏: 分享至:

  kyuubi 集成kerberos认证

  1.配置

  创建kyuubi服务的principal(非必需):

  #启动

  kadmin.local

  #kadmin命令行增加principal

  addprinc -randkey kyuubi/compile.bigdata@BIGDATA

  WARNING: no policy specified for kyuubi/compile.bigdata@BIGDATA; defaulting to no policy

  Principal "kyuubi/compile.bigdata@BIGDATA" created.

  #导出keytab

  xst -k /etc/security/keytabs/kyuubi.keytab kyuubi/compile.bigdata@BIGDATA

  #检查keytab文件

  klist -kt /etc/security/keytabs/kyuubi.keytab

  Keytab name: FILE:/etc/security/keytabs/kyuubi.keytab

  KVNO Timestamp Principal

  ---- ------------------- ------------------------------------------------------

  2 11/15/2018 11:21:00 kyuubi/compile.bigdata@BIGDATA

  2 11/15/2018 11:21:00 kyuubi/compile.bigdata@BIGDATA

  2 11/15/2018 11:21:00 kyuubi/compile.bigdata@BIGDATA

  2 11/15/2018 11:21:00 kyuubi/compile.bigdata@BIGDATA

  2 11/15/2018 11:21:00 kyuubi/compile.bigdata@BIGDATA

  2 11/15/2018 11:21:00 kyuubi/compile.bigdata@BIGDATA

  修改$SPARK_HOME/conf/spark-defaults.conf配置kerberos票据(使用hive)

  spark.yarn.keytab /etc/security/keytabs/hive.service.keytab

  spark.yarn.principal hive/compile.bigdata@BIGDATA

  spark.yarn.principal – Kerberos principal for Kyuubi server.

  spark.yarn.keytab – Keytab for Kyuubi server principal.

  修改$SPARK_HOME/conf/spark-defaults.conf配置metastorekeytab(注意:hive.metastore.uris中的主机名要与principal中的HOST一致)

     hive.metastore.uris

  thrift://compile.bigdata:9083

  hive.metastore.warehouse.dir

  /apps/hive/warehouse

  hive.metastore.kerberos.keytab.file

  /etc/security/keytabs/hive.service.keytab

  hive.metastore.kerberos.principal

  hive/_HOST@BIGDATA

  hive.metastore.sasl.enabled

  true

  2.启动

  kinit -kt /etc/security/keytabs/hive.service.keytab hive/compile.bigdata@BIGDATA

  bin/start-kyuubi.sh --driver-memory 1g --conf spark.kyuubi.backend.session.init.timeout=180s \

  --conf spark.driver.extraClassPath=$JARS \

  --conf spark.executor.extraClassPath=$JARS \

  --conf spark.driver.allowMultipleContexts=true \

  --conf spark.kyuubi.authentication=KERBEROS \

  --deploy-mode client

  3.客户端连接

  kinit -kt /etc/security/keytabs/hive.service.keytab hive/compile.bigdata@BIGDATA

  bin/beeline -u "jdbc:hive2://compile.bigdata:10009/;principal=hive/compile.bigdata@BIGDATA"

  新建用户:

  addprinc -randkey jiadx/compile.bigdata@BIGDATA

  xst -k /etc/security/keytabs/jiadx.keytab jiadx/compile.bigdata@BIGDATA

  使用该用户连接:

  #使用jiadx初始化票据

  kinit -kt /etc/security/keytabs/jiadx.keytab jiadx/compile.bigdata@BIGDATA

  #仍然需要用hive principal连接jdbc

  bin/beeline –u

  "jdbc:hive2://compile.bigdata:10009/;principal=hive/compile.bigdata@BIGDATA"

  #查看当前已初始化票据的用户:

  0: jdbc:hive2://compile.bigdata:10009/> select current_user(); #hive中的命令

  +--------+--+

  | _c0 |

  +--------+--+

  | jiadx |

  +--------+--+

  1 row selected (0.992 seconds)

  #也可以hive.server2.proxy.user=hdfs 参数设置用户

  bin/beeline –u

  "jdbc:hive2://compile.bigdata:10009/;principal=hive/compile.bigdata@BIGDATA;hive.server2.proxy.user=hdfs"

  0: jdbc:hive2://compile.bigdata:10009/> select current_user();

  +-------+--+

  | _c0 |

  +-------+--+

  | hdfs |

  +-------+--+

  1 row selected (0.675 seconds)

  如果使用jiadx principal连接会有错误:

  bin/beeline -u "jdbc:hive2://compile.bigdata:10009/;principal=jiadx/compile.bigdata@BIGDATA;auth=kerberos"

  javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)]

  at com.sun.security.sasl.gsskerb.GssKrb5Server.evaluateResponse(GssKrb5Server.java:199)

  at org.apache.thrift.transport.TSaslTransport$SaslParticipant.evaluateChallengeOrResponse(TSaslTransport.java:539)

  at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:283)

  at org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41)

  at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216)

  at org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:739)

at org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:736)

 

  作者:贾德星

  职务:云服务集团云计算产品中心高级架构师

  专业领域:大数据

  专家简介:系统软件架构师,具备二十余年一线软件开发的工作经历,经验丰富。主持研发浪潮大数据平台产品云海InsightHD,专注于大数据Hadoop/Spark/流计算/机器学习/深度学习等相关技术组件的研究与应用及组件研发。参与起草信息技术国家标准二十余项,已正式发布12项国家标准。研发并申请9项国家专利获得授权。

 

 

查看全部
相关文章推荐相关文章推荐
技术实践kyuubi+集成kerberos认证 技术实践】ssl双向认证 技术实践】Dockerfile入门 技术实践】RSA的公钥、私钥 技术实践】istio的优势在哪里 技术实践】什么是微服务架构 技术实践】安装 go 语言环境 技术实践】SpringBoot的重要特性 技术实践】kubernetes 手绘画 技术实践】Spark使用hive元数据
热门解决方案热门解决方案
钢铁行业资源配置优化解决方案_资源配置优化系统 装备制造解决方案_装备制造行业信息化解决方案 数据迁移上云解决方案_云数据迁移_数据迁移解决方案 有害气体监控与管理解决方案_有害气体检测分析系统 液化天然气(LNG)产业互联网解决方案_LNG产业物联网大数据服务平台 云视频解决方案_多媒体视讯解决方案_云视讯会议管理平台 云托管解决方案_服务器云托管_企业云服务托管 机械制造行业MES解决方案_机械加工行业mes系统_机械行业MES生产制造 转动设备(采煤、化工行业)健康智能监测解决方案_转动设备在线监测预警系统 移动应用加速解决方案_云加速解决方案_移动访问加速
热门产品推荐热门产品推荐
热门标签热门标签