(一)如果部署JAVA 代码的主机用户获取了kerberos权限情况下

假设主机名是:client

su - client 登录主机后

kinit -kt /keytab的路径/client.keytab client@STARYEA.COM

编写的java代码入下:

public static void main(String[] args) throws IOException, InterruptedException {

conf = HBaseConfiguration.create();
conf.addResource("hbase-site.xml");
conf.addResource("core-site.xml");
conf.addResource("hdfs-site.xml");

--代码正常写不需要添加任何东西

conn = ConnectionFactory.createConnection(conf);

createTable("client:test_table_0204");
insertData("clienttest_table_0204");
QueryAll("client:test_table_0204");

conn.close();

}

(二)以应用程序的方式获取kerberos认证的情况下

假设主机名是:client

su - client 登录主机后

kdestory --删除主机的凭证,在这种情况下 JAVA代码如下

public static void main(String[] args) throws IOException,
InterruptedException {

conf = HBaseConfiguration.create();
conf.addResource("hbase-site.xml");
conf.addResource("core-site.xml");
conf.addResource("hdfs-site.xml");

--需要添加kerberos认证
String USER = "client@STARYEA.COM";
String KEYTAB = "/etc/security/keytabs/client.keytab";

--APP需要kerberos认证
UserGroupInformation ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI(USER, KEYTAB);

ugi.doAs(new PrivilegedExceptionAction<Void>() {
   public Void run() {
     try {
      conn = ConnectionFactory.createConnection(conf);

createTable("client:test_table_0204");
      insertData("client:test_table_0204");
      QueryAll("client:test_table_0204");
    }   catch (IOException e) {
    // TODO Auto-generated catch block
     e.printStackTrace();
}

return null;
}
});

conn.close();

}

kerberos下JAVA代码操作hbase的方式(客户端方式,应用程序方式)的更多相关文章

  1. Java代码操作zookeeper

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  2. Java代码操作HDFS测试类

    1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...

  3. 【HBase】通过Java代码实现HBase数据库中数据的增删改查

    目录 创建maven工程,导入jar包 java代码实现创建hbase表 java代码实现向hbase表中插入数据 java代码查询hbase数据 使用rowKey查询指定列族指定列的值 通过star ...

  4. 【Hbase三】Java,python操作Hbase

    Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...

  5. 使用java代码操作Redis

    1导入pom.xml依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis ...

  6. java代码操作Redis

    1.导入需要的pom依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEn ...

  7. linux 下通过过 hbase 的Java api 操作hbase

    hbase版本:0.98.5 hadoop版本:1.2.1 使用自带的zk 本文的内容是在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据 ...

  8. HBase 6、用Phoenix Java api操作HBase

    开发环境准备:eclipse3.5.jdk1.7.window8.hadoop2.2.0.hbase0.98.0.2.phoenix4.3.0 1.从集群拷贝以下文件:core-site.xml.hb ...

  9. 统计文件夹下java代码行数的小程序--主要是学习任务队列的思想

    首先感谢czbk的老师,录制的视频,让我们有这么好的学习资料.……—— 统计文件夹java文件的行数,首先想到的肯定是用递归的方法,因为文件夹下面可能包含文件夹,用递归的方法,代码容易写.(这和写简单 ...

随机推荐

  1. 前端回答从输入URL到页面展示都经历了些什么

    浏览器和服务器涉及大量网络通信内容,此处做了弱化介绍,作为前端主要关注第四部分.一. 网络环境保障我们先假定我们访问的URL为www.abc.com并且地址不在局域网内:首先我们所处的局域网的总路由应 ...

  2. JavaScript 中的对象深度复制(Object Deep Clone)

    JavaScript中并没有直接提供对象复制(Object Clone)的方法. JavaScript中的赋值,其实并不是复制对象,而是类似`c/c++`中的引用(或指针),因此下面的代码中改变对象b ...

  3. java 堆和栈

    转载自 http://blog.csdn.net/peterwin1987/article/details/7571808 博主讲的相当清楚吼吼吼

  4. volatile简要解析

    在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写.这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值 ...

  5. hibernate的事务管理和session对象的详解

    //开启事务 transaction=session.beginTransaction(); 上面为开启事务 transaction.commit();这个为提交事务 从session对象中获取事务后 ...

  6. java 23种设计模式 深入理解

    以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究) 创建型抽象工厂模式 http://www.cnblogs.com/java-my-life/archive ...

  7. TP5整合 WorkerMan 以及 GatewayWorker

    TP5整合GatewayWorker Windows版安装 a)使用composer create-project topthink/think testTG,来安装thinkphp5. b)进入t ...

  8. Laravel框架中Form表单Get请求搜索(在此感谢[https://simon8.com])

    首先看一下HTML部分的Form表单 <form role="search" method="get" id="searchform" ...

  9. 54.1 怎样才算学会django? 知道这28个知识点才算会django2

    学到什么程度才算会django了?这篇文章帮你梳理一下 关于django2的28个不可不知的知识点总结: 1.cookie操作: -客户端本地存储的键值对 2.session操作: -服务器端可以保存 ...

  10. Spring Boot 2.0(三):Spring Boot 开源软件都有哪些?

    2016年 Spring Boot 还没有被广泛使用,在网上查找相关开源软件的时候没有发现几个,到了现在经过2年的发展,很多互联网公司已经将 Spring Boot 搬上了生产,而使用 Spring ...