CDH-Kerberos环境下,HBASE java连接

24 篇文章 0 订阅
9 篇文章 0 订阅
  1. 下载相关配置文件

    登录CDH控制台,到HBASE的登录页面,下载相关的配置文件到本地
    在这里插入图片描述

  2. 新建maven项目,将相关的配置文件存放到src/resources目录下面

  3. 登录kerberos主机,生成hbase的kerberos密钥文件。然后和krb5.conf一起下载到本地,也是同样存放到src/resources目录下面

  4. 本地hosts文件填写相关的CDH集群信息

  5. pom.xml的内容如下:

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <scala.version>2.10</scala.version>
        <spark.version>1.6.3</spark.version>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-client -->
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.0.0</version>
        </dependency>
    
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.10.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-hive -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_${scala.version}</artifactId>
            <version>${spark.version}</version>
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.10</artifactId>
            <version>1.6.3</version>
            <!--<scope>provided</scope>-->
        </dependency>
    
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>2.0.0</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming-kafka-0-8_2.10</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>
    
  6. 代码如下:

    public class TestHbase {
        private static Configuration conf = null;
    
        static {
            String rootPath = System.getProperty("user.dir");
            String keytab = rootPath + "/src/main/resources/hbase.keytab";
            String krb5 = rootPath + "/src/main/resources/krb5.conf";
            System. setProperty("java.security.krb5.conf", krb5);
            conf = HBaseConfiguration.create();
            conf.set("hadoop.security.authentication" , "Kerberos" );
            // 这个hbase.keytab也是从远程服务器上copy下来的, 里面存储的是密码相关信息
            // 这样我们就不需要交互式输入密码了
            conf.set("keytab.file" , keytab );
            // 这个可以理解成用户名信息,也就是Principal
            conf.set("kerberos.principal" , "hbase@CATTSOFT.COM" );
    
            UserGroupInformation. setConfiguration(conf);
            try {
                UserGroupInformation. loginUserFromKeytab("hbase@CATTSOFT.COM", keytab );
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static void scanSpan( String tableName) throws Exception {
    
        }
        
        public static void main(String[] args) {
            try {
                TestHbase.scanSpan("user");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
  7. 运行主函数,结果如下:

    19/11/11 09:56:37 INFO security.UserGroupInformation: Login successful for user hbase@CATTSOFT.COM using keytab file D:\code\ownProject\hbase_kerberos_test/src/main/resources/hbase.keytab
    
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫夜求索阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值