Hive/impala的kerberos和sentry相关问题

本文详细介绍了通过Kerberos认证的四种方式,包括Simple Hadoop Client、Service Account Authorization、Kerberos Impersonation和Single Sign On,并重点讲解了Kerberos Impersonation的实现。在开启Sentry后,讨论了Hive与Impala在权限管理上的变化,尤其是在Kerberos环境下的应对策略。
摘要由CSDN通过智能技术生成

self application通过kerbeos认证的四种方式

Simple Hadoop Client

  • 这种方法不包含任何的认证,他依赖于当前机器已经取得TGT,这对于服务或者需要长时间运行的程序不适用,因为TGT可能会过期。每个用户在使用时都需要kinit先获取TGT

Service Account Authorization

  • 这种方法为Kerberos创建一个service account(服务的principal),所有的用户都将使用这个service account来进行认证,而不是每个用户都需要使用自己的账户进行认证。随之带来的问题是,由于所有的用户都使用相同的service account来进行认证,无法在HDFS上建立基于用户的权限控制。 步骤如下
    • 1.创建Service Principal
 kadmin -q "addprinc -randkey myapplication/myhost@CLOUDERA"
Authenticating as principal cloudera-scm/admin@CLOUDERA with password.
Password for cloudera-scm/admin@CLOUDERA:
WARNING: no policy specified for myapplication/myhost@CLOUDERA; defaulting to no policy
Principal "myapplication/myhost@CLOUDERA" created.
  • 注: 其中-randkey是为了使用一个随机的密钥进行加密,而不是使用用户的密码加密。

    • 2.为了查看Principal是否生成,可以执行以下代码
kadmin -q "getprinc myapplication/myhost"
Principal: myapplication/myhost@CLOUDERA
Expiration date: [never]
Last password change: Tue Jul 28 14:35:16 PDT 2015
  • 3.然后,将此Principal倒入keytab文件。后面我们将使用这个keytab文件来认证。
kadmin -q "xst -k myapplication.keytab myapplication/myhost"

注:上面的xts是指对所有的加密方式都生成一个Principal。
* 4.可以通过Klist查看keytab

klist -ke myapplication.keytab
  • 5.示例代码如下:
class FileCount {
public static void main(final String[] args) throws IOException, FileNotFoundException, InterruptedException{

UserGroupInformation ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI("myapplication/myhost", "myapplication.keytab");
ugi.doAs( new PrivilegedExceptionAction() {
    public Void run() throws Exception {
        String path = "/";
        if( args.length > 0 )
            path = args[0];

        FileSystem fs = FileSystem.get(new C
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值