基于FI/MRS平台使使用客户端连接hive和hdfs认证问题总结

举报
breakDawn 发表于 2020/05/30 11:22:42 2020/05/30
【摘要】 基于MRS的一些DAYU数据服务可能需要自己创建一些数据连接去使用MRS/FI集群的hive ,中间经常会遇到一些问题。该部分总结基于安全模式的FusionInsight平台或者安全模式的MRS集群§ 建立hive数据连接时的认证问题§ driver端进行hive认证首先要知道hive用户的keytab位置、kdc.conf位置和hive用户名(用户是FI的用户)然后使用以下代码,进行认证登...

基于MRS的一些DAYU数据服务可能需要自己创建一些数据连接去使用MRS/FI集群的hive ,中间经常会遇到一些问题。

该部分总结基于安全模式的FusionInsight平台或者安全模式的MRS集群

§ 建立hive数据连接时的认证问题

§ driver端进行hive认证

首先要知道hive用户的keytab位置、kdc.conf位置和hive用户名(用户是FI的用户)
然后使用以下代码,进行认证登录

1javax.security.auth.login.Configuration.setConfiguration(new ZKSignerSecretProvider.JaasConfiguration("Client",2loginUser, keytabPath));

hiveurl参考:

jdbc:hive2://18.211.150.241:24002,18.211.150.246:24002,18.211.151.36:24002/dqc;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;principal=hive/hadoop.hadoop.com@HADOOP.COM;

/dqc是hive库名

§ executor端进行hive认证

由于executor端是不知道keytab文件路径的,并且使用beam的jdbcIO读hive时,是没法做keytab认证的,因此要做一些特殊处理

  1. 在spark.default配置中增加spark.yarn.dist.innerfiles一项,填入keytab文件位置。这样就会传到spark的executor上,并会处于当前jvm程序的执行目录下。

  2. hive的连接url改一下,在末尾加上user.principal(用户名)和user.keytab(用不带路径的keytab名字), 变成
    jdbc:hive2://18.211.150.241:24002,18.211.150.246:24002,18.211.151.36:24002/dqc;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;principal=hive/hadoop.hadoop.com@HADOOP.COM;user.principal=dqcuser;user.keytab=dqcuser.keytab

  3. org.apache.hive.hive-jdbc版本使用FI提供的1.3.0版本

§ hdfs认证

beam提供的hdfs sdk不适用于安全模式的FI集群,需要自己写1个hdfsClient,然后用在processElement中。如果hdfsClient未初始化或者未认证,则进行认证操作,然后再进行读或者写hdfs。

  • hdfs认证需要 keytab文件、kdf.conf、hdfs-site.xml和core-site.xml, 需要的文件较多,我们可以在提交spark任务时,把这4个文件打成zip压缩包,然后通过spark-default配置的spark.yarn.dist.innerarchives配置,在里面增加这个压缩包的路径。

  • 添加之后,当程序运行在executor节点时,会自动把该压缩包解压成 压缩包名.zip的目录,然后从这个目录里去读文件即可。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。