标签: apache-sentry

如何选择apache ranger和sentry

从这2个项目提供的wiki中,我发现他们似乎做了类似的工作.但必须有一些差异,或者不需要2.

那么有什么不同,以及相互选择的实用建议是什么.

多谢!

security hadoop apache-sentry apache-ranger

14
推荐指数
3
解决办法
1万
查看次数

从UDF查找Hbase Tbl(Beeline,Hbase,Delegation Tokens)

我需要编写自定义UDF来从Hbase表进行数据查找.

注意:我已经用HIVE进行了单元测试.它似乎工作.

但是当我使用相同的UDF Beeline时,它失败了.默认情况下,Cloudera限制模拟并仅允许hive用户在Beeline中运行查询.在作业启动时,YarnChild正在设置以下委托令牌.

我想添加令牌(Kind:HBASE_AUTH_TOKEN)来处理Hbase.

Kind: mapreduce.job
Kind: HDFS_DELEGATION_TOKEN 
Kind: kms-dt
Run Code Online (Sandbox Code Playgroud)

我研究并发现了HbaseStorageHandler如何使用委托令牌(即HBASE_AUTH_TOKEN)用于Hbase.所以我使用了相同的功能集,但它也没有用.

来自HbasestorageHandler的函数(获取令牌到Job):

private void addHBaseDelegationToken(Configuration conf, JobConf jconf) throws IOException {
        if (User.isHBaseSecurityEnabled(conf)) {
            try {
                logger.info("isHbaseSecurityEnabled :True ");
                User e = User.getCurrent();
                logger.info("isHbaseSecurityEnabled :User ==> " + e.toString());
                Token authToken = getAuthToken(conf, e);
                logger.info("isHbaseSecurityEnabled :AuthToken==> "+authToken.toString());
                Job job = new Job(conf);
                if(authToken == null) {
                    UserGroupInformation ugi = UserGroupInformation.getLoginUser();
                    ugi.setAuthenticationMethod(UserGroupInformation.AuthenticationMethod.KERBEROS);
                    e.obtainAuthTokenForJob(jconf);
  } else {
                    logger.info("authToken is not null"+authToken.toString());
                    job.getCredentials().addToken(authToken.getService(), authToken);
                }

                logger.info("obtained Token /....");
            } catch …
Run Code Online (Sandbox Code Playgroud)

hbase hive kerberos cloudera-cdh apache-sentry

5
推荐指数
0
解决办法
95
查看次数