前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用java代码通过JDBC访问Sentry环境下的Hive

如何使用java代码通过JDBC访问Sentry环境下的Hive

作者头像
Fayson
修改于 2018-04-01 12:57:16
修改于 2018-04-01 12:57:16
2.5K0
举报
文章被收录于专栏:Hadoop实操Hadoop实操

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的githubhttps://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢

1.文档编写目的


在前面的文章Fayson介绍了《如何使用java代码通过JDBC连接Hive(附github源码)》、《如何使用java代码通过JDBC连接Impala(附Github源码)》和《如何使用Java访问集成OpenLDAP并启用Sentry的Impala和Hive》,关于Hive和Impala如何启用Sentry可以参考Fayson前面的文章《如何在CDH启用Kerberos的情况下安装及使用Sentry(一)》,《如何在CDH启用Kerberos的情况下安装及使用Sentry(二)》和《如何在CDH未启用认证的情况下安装及使用Sentry》,在集群只启用了Sentry的情况下如何访问?本篇文章主要介绍在集群只启用了Sentry后使用Java通过JDBC访问的区别以及在beeline命令行如何访问。

  • 内容概述

1.环境准备

2.示例代码编写及说明

3.代码测试

  • 测试环境

1.CM和CDH版本为5.13.1

2.CentOS6.5

3.Impala JDBC驱动版本2.5.41.1061

  • 前置条件

1.集群未启用Kerberos

2.集群已启用Sentry

2.环境准备


1.创建Java工程jdbcdemo

创建工程时注意加入Hadoop和Hive JDBC的依赖包

代码语言:txt
AI代码解释
复制
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.6.5</version>
</dependency>
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>1.1.0</version>
</dependency>

(可左右滑动)

3.示例访问代码


1.Hive示例代码

代码语言:txt
AI代码解释
复制
package com.cloudera.hivejdbc;
import com.cloudera.utils.JDBCUtils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 * package: com.cloudera.hivejdbc
 * describe: 集群中只启用了Sentry服务如何访问Hive
 * creat_user: Fayson
 * email: htechinfo@163.com
 * creat_date: 2018/1/15
 * creat_time: 下午8:57
 * 公众号:Hadoop实操
 */
public class SentryOnlyDemo {
    private static String JDBC_DRIVER = "org.apache.hive.jdbc.HiveDriver";
    private static String CONNECTION_URL ="jdbc:hive2://ip-172-31-6-148.fayson.com:10000/";
    private static String username = "faysontest";
    private static String password = "";
    static {
        try {
            Class.forName(JDBC_DRIVER);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        System.out.println("集群中只启用了Sentry服务访问Hive");
        Connection connection = null;
        ResultSet rs = null;
        PreparedStatement ps = null;
        try {
            connection = DriverManager.getConnection(CONNECTION_URL, username, password);
            ps = connection.prepareStatement("show databases");
            rs = ps.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.disconnect(connection, rs, ps);
        }
    }
}

(可左右滑动)

由于集群启用了Sentry服务,需要指定用户名连接HiveServer2才能获取指定用户拥有的操作权限,在获取Connection时需要指定用户名,密码可以为空。

4.代码测试


1.Hive测试

使用hive用户测试,hive用户拥有Hive库的所有权限,所以可以看到Hive下面所有的库。

使用faysontest用户测试,faysontest用户只拥有Hive库下的default库操作权限,所以我们可以看到只能获取到default库信息

5.Beeline命令行测试


关于Beeline命令行访问Impala,Fayson在前面的文章也介绍过《如何使用Beeline连接Impala》,这里就不再重复说明。

1.Beeline访问Hive

GitHub源码地址:

https://github.com/javaxsky/cdhproject/jdbcdemo

提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何使用Java访问集成OpenLDAP并启用Sentry的Impala和Hive
在前面的文章Fayson介绍了《如何使用java代码通过JDBC连接Hive(附github源码)》和《如何使用java代码通过JDBC连接Impala(附Github源码)》,本篇文章主要介绍在集群集成了OpenLDAP和启用了Sentry后使用Java通过JDBC访问的区别以及在beeline命令行如何访问。
Fayson
2018/03/29
2.3K0
如何使用java代码通过JDBC访问Sentry环境下的Hive
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 内容概述 1.环境准备 2.示例代码编写及说明 3.代码测试 测试环境 1.CM和CDH版本为5.13.1 2.CentOS6.5 3.Impala JDBC驱动版本2.5.41.1061 前置条件 1.集群未启用Kerberos 2.集群已启用Sentry 2.环境准备 1.创建Java工
企鹅号小编
2018/02/06
1.3K0
如何使用java代码通过JDBC访问Sentry环境下的Hive
如何在Kerberos环境下使用Haproxy实现HiveServer2负载均衡
前面Fayson介绍了《如何使用HAProxy实现HiveServer2负载均衡》,本文主要介绍如何使用HAProxy实现Kerberos环境下HiveServer2的负载均衡。
Fayson
2018/03/29
1.6K0
使用Java代码通过JDBC连接只启用Sentry的Impala异常分析
在使用Java代码访问只启用了Sentry的Impala集群,即集群未启用认证比如LDAP或者Kerberos,会出现获取JDBC连接hang死的现象,具体示例代码如下:
Fayson
2018/03/29
1.7K0
如何使用java代码通过JDBC连接Hive(附github源码)
前面我们讲过《如何使用java代码通过JDBC连接Impala(附Github源码)》,本篇文章主要讲述如何使用Java代码通过JDBC的方式连接Hive。
Fayson
2018/03/29
7.3K0
如何使用java代码通过JDBC连接Hive(附github源码)
如何使用java代码通过JDBC连接Impala(附Github源码)
访问Impala的方式很多(如:impala-shell、ODBC、JDBC、Beeline),也可以通过Hue的来访问。关于Beeline方式连接Impala可以参考前面的《如何使用Beeline连接Impala》,本篇文章主要讲述如何使用JAVA代码通过JDBC的方式连接Kerberos和非Kerberos环境下的Impala。
Fayson
2018/03/29
7.1K0
如何使用java代码通过JDBC连接Impala(附Github源码)
如何使用java连接Kerberos和非kerberos和kerberos的Spark1.6 ThriftServer
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson介绍了《如何在CDH中启用Spark Thrift》和《如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql客户端》,本篇文章Fayson主要介绍如何使用Java JDBC连接非Kerberos和Kerberos环境下Sp
Fayson
2018/07/11
1.9K0
如何使用Java访问集成OpenLDAP并启用Sentry的Impala和Hive
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 内容概述 1.环境准备 2.示例代码编写及说明 3.代码测试 测试环境 1.CM和CDH版本为5.13.1 2.CentOS6.5 3.Impala JDBC驱动版本2.5.41.1061 前置条件 1.集群未启用Kerberos 2.Impala已集成OpenLDAP 3.集群已启用Sen
企鹅号小编
2018/02/06
1.2K0
如何使用Java访问集成OpenLDAP并启用Sentry的Impala和Hive
如何使用HAProxy实现Kerberos环境下的Impala负载均衡
前面Fayson介绍过《如何使用HAProxy实现Impala的负载均衡》,在Kerberos环境HAProxy的配置与非Kerberos环境下是一样的,只是在Impala的配置上需要做一些修改,接下来本篇文件主要讲述如何在Kerberos环境下使用HAProxy实现Impala的负载均衡。
Fayson
2018/03/29
1.7K0
如何使用HAProxy实现Kerberos环境下的Impala负载均衡
4. 如何为Hive配置OpenLDAP认证
在前面的文章Fayson讲了《1.如何在CentOS6.5安装OpenLDAP并配置客户端》、《2.OpenLDAP集成SSH登录并使用SSSD同步用户》以及《3.如何实现OpenLDAP的主主同步》,在CDH中各个组件如何集成?本篇文章主要介绍如何为Hive配置OpenLDAP认证。
Fayson
2018/03/29
3.9K0
4. 如何为Hive配置OpenLDAP认证
如何使用Sentry管理Hive外部表权限
使用如下命令在HDFS的根目录下创建Hive外部表的数据目录/extwarehouse
Fayson
2018/03/29
5.4K0
如何使用Sentry管理Hive外部表权限
如何使用Sentry实现Hive/Impala的数据脱敏
本文主要描述如何使用Sentry实现数据的脱敏(masking of sensitive data elements),高大上的叫法也就是Data Masking。数据脱敏主要是指将原始数据的全部或者部分敏感值进行替换。这样避免了用户未经授权而直接访问原始的值,并保留了底层数据的schema。
Fayson
2018/03/30
3.2K0
如何在Kerberos环境下使用Spark2通过JDBC访问Impala
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面Fayson介绍了在Kerberos和非Kerberos环境下使用JAVA通过JDBC访问Hive和Impala《如何使用java代码通过JDBC连接Hive》和《如何使用java代码通过JDBC连接Impala》,本篇文章Fayson主要介绍如何在Kerberos环境下使
Fayson
2018/07/12
2.5K0
如何使用Oozie API接口向非Kerberos环境的CDH集群提交Java作业
前面Fayson介绍了《如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业》,本篇文章主要介绍如何使用Oozie Client API向非Kerberos环境的CDH集群提交Java作业。
Fayson
2018/03/30
1.1K0
4.如何为Hive集成RedHat7的OpenLDAP认证
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson讲了《1.如何在RedHat7上安装OpenLDA并配置客户端》、《2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户》以及《3.如何RedHat7上实现OpenLDAP的主主同步》,在CDH中各个组件如何集成?本篇文章主要介
Fayson
2018/04/18
2.1K0
4.如何为Hive集成RedHat7的OpenLDAP认证
如何使用Java代码访问Kerberos环境下的Kudu
前面Fayson介绍了《如何使用Java API访问CDH的Kudu》,文章是在非安全环境下实现,随着对集群安全要求的提高,在Kerberos环境下的使用API访问Kudu也会有一些变化,本篇文章Fayson主要介绍如何使用Java代码访问Kerberos环境下的Kudu。
Fayson
2018/11/16
3K0
如何在CDH未启用认证的情况下安装及使用Sentry
CDH平台中的安全,认证(Kerberos/LDAP)是第一步,授权(Sentry)是第二步。如果要启用授权,必须先启用认证。但在CDH平台中给出了一种测试模式,即不启用认证而只启用Sentry授权。但强烈不建议在生产系统中这样使用,因为如果没有用户认证,授权没有任何意义形同虚设,用户可以随意使用任何超级用户登录HiveServer2或者Impala,并不会做密码校验。注:本文档仅适用于测试环境。
Fayson
2018/03/29
8.7K0
如何在CDH未启用认证的情况下安装及使用Sentry
如何在启用Sentry的CDH集群中使用UDF
在前面的文章Fayson介绍过UDF的开发及使用《如何在Hive&Impala中使用UDF》,大多数企业在使用CDH集群时,考虑数据的安全性会在集群中启用Sentry服务,这样就会导致之前正常使用的UDF函数无法正常使用。本篇文章主要讲述如何在Sentry环境下使用自定义UDF函数。
Fayson
2018/03/29
4K5
如何在启用Sentry的CDH集群中使用UDF
如何使用Oozie API接口向非Kerberos环境的CDH集群提交Shell工作流
前面Fayson介绍了《如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业》和《如何使用Oozie API接口向非Kerberos环境的CDH集群提交Java作业》,本篇文章主要介绍如何使用Oozie Client API向非Kerberos环境的CDH集群提交Shell Action工作流。
Fayson
2018/03/30
1.1K0
如何在CDH启用Kerberos的情况下安装及使用Sentry(一)
本文档主要讲述如何在启用Kerberos的CDH集群中安装配置及使用Sentry。
Fayson
2018/03/29
3.5K2
如何在CDH启用Kerberos的情况下安装及使用Sentry(一)
推荐阅读
相关推荐
如何使用Java访问集成OpenLDAP并启用Sentry的Impala和Hive
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档