程序代码实例如下:package com.hbasedemo;import java.io.IOException;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.security.UserGroupInformation;public class Test {private static Configuration conf = null;static {// 这个配置文件主要是记录 kerberos的相关配置信息,例如KDC是哪个IP?默认的realm是哪个?// 如果没有这个配置文件这边认证的时候肯定不知道KDC的路径喽// 这个文件也是从远程服务器上copy下来的System. setProperty("java.security.krb5.conf", "C:/Users/dongzeguang/Downloads/krb5.conf" );conf = HBaseConfiguration.create();conf.set("hadoop.security.authentication" , "Kerberos" );// 这个hbase.keytab也是从远程服务器上copy下来的, 里面存储的是密码相关信息// 这样我们就不需要交互式输入密码了conf.set("keytab.file" , "C:/Users/Downloads/hbase.keytab" );// 这个可以理解成用户名信息,也就是Principalconf.set("kerberos.principal" , "hbase/1722.myip.domain@HADOOP.COM" );           UserGroupInformation. setConfiguration(conf);try {UserGroupInformation. loginUserFromKeytab("hbase/1722.myip.domain@HADOOP.COM", "C:/Users/Downloads/hbase.keytab" );} catch (IOException e) {// TODO Auto-generated catch block
                  e.printStackTrace();}}public static void scanSpan(final String tableName) throws Exception {HTable table =  new HTable(conf, tableName);System. out.println("tablename:" +new String(table.getTableName()));Scan s = new Scan();ResultScanner rs = table.getScanner(s);for (Result r : rs) {System. out.println(r.toString());KeyValue[] kv = r. raw();for (int i = 0; i < kv.length; i++) {System. out.print(new String(kv[i].getRow()) + "");System. out.print(new String(kv[i].getFamily()) + ":");System. out.print(new String(kv[i].getQualifier() ) + "" );System. out.print(kv[i].getTimestamp() + "" );System. out.println(new String(kv[i].getValue() ));}}}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubtry {Test. scanSpan("h_span");} catch (Exception e) {// TODO Auto-generated catch block
                  e.printStackTrace();}}}

转载于:https://www.cnblogs.com/felixzh/p/11586865.html

用Java访问带有Kerberos认证的HBase相关推荐

  1. Java API连接Kerberos认证的HBASE

    网上关于 Java 代码连接启用了Kerberos认证的HBASE资料很多,但是总感觉不够准确,总是出现各种问题.经过整合网上资料和亲自试验,得出连接成功的最小配置项如下: java.security ...

  2. hadoop java client_hadoop3 Java client客户端kerberos认证

    hadoop集群升级hadoop3,并需要Kerberos认证,hadoop3代码包做了合并,引用jar包如下: org.apache.hadoop hadoop-hdfs 3.1.1 org.apa ...

  3. 连接端口 配置hive_Zeppelin带有Kerberos认证的Hive解释器的配置

    2.zeppelin连接Hive安装配置 zeppelin 版本0.8.2 ,hive版本:3.0.0 2.1.安装启动hive3 略 2.1.配置hiveserver2 如果需要配置zeppelin ...

  4. 使用Spark/Java读取已开启Kerberos认证的HBase

    1.赋予drguo用户相应的权限 2.KDC中创建drguo用户并导出相应的keytab文件 [root@bigdata28 ~]# kadmin.local  Authenticating as p ...

  5. 【kafka】kafka 消费 带有 kerberos认证的服务器

    文章目录 1.概述 2.配置 3.测试 3.1 测试1 3.2 配置 1.概述 公司整了一个新的环境,然后我要进行适配,结果发现对方有认证,无法直接使用,使用控制台生产和消费的时候报错. 我们下面写一 ...

  6. 构建基于docker的airflow并访问有kerberos认证的cdh集群

    目录 基于docker的airflow的构建 主要记录排错手段和几个巨坑: 调度 && 失败告警(邮件 && 微信) 基于docker的airflow的构建 基于doc ...

  7. Kafka 认证三:添加 Kerberos 认证详细流程

    背景 上一章节介绍了 Kerberos 服务端和客户端的部署过程,本章节继续介绍 Kafka 添加 Kerberos 认证的部署流程,及 Java API 操作的注意事项. sasl.kerberos ...

  8. Java代码使用Spark on Yarn 方式提交任务到带Kerberos认证的Hadoop集群

    2019独角兽企业重金招聘Python工程师标准>>> 项目中遇到Spark Yarn方式提交到Hadoop集群,访问集群HDFS时发现使用的当前用户,没有访问权限,经过排查后发现H ...

  9. Java应用/JDBC/Squirrel在Kerberos认证时报Unable to obtain Principal Name for authentication的解决方法

    关于如何在Windows本地安装配置Kerberos客户端,以及进行相关的配置,网上有很多现成的文档可以参考,其中: https://841809077.github.io/2018/12/19/Wi ...

最新文章

  1. Digital Image Processing 学习笔记3
  2. Dataset:Big Mart Sales数据集的简介、下载、案例应用之详细攻略
  3. graphpad两组t检验_独立双样本检验(假设检验)
  4. mysql 5.5 双机热备_mysql 5.5双机热备份 master-master
  5. docker privileged作用_docker容器性能监控cAdvisor+influxDB+grafana监控系统安装部署
  6. 系统集成项目管理工程师10大管理47个过程域输入输出工具(项目成本管理)
  7. uniapp安卓app里拦截webview下载apk,显示下载进度
  8. Linux学习笔记-exec族函数,system函数,popen函数的用法
  9. 阿里云CDN介绍以及如何配合OSS使用
  10. 如何用牛顿迭代法求平方根
  11. 图像颜色空间转换--RGB to Lαβ
  12. 采样 -- 基本概念
  13. Linux内核编译出错
  14. Kotlin Mvp 协程 Retrofit整合
  15. 通过tasker上传手机电量到domoticz中,电量过低时,自动充电
  16. java乱码问题解决总结
  17. 事件循环EventLoop机制
  18. python 3d库_深入了解python的3D高级库pyvista
  19. tomcat+nginx
  20. 电商-- 京东和亚马逊,哪个更胜一筹?

热门文章

  1. 合并数组:双针模型,原地实现
  2. 分治:分治和动态规划的区别,二分检索递归和迭代方式实现
  3. mysql ---- innodb-2-索引
  4. flask 第八篇 实例化flask时的参数配置
  5. jmeter压测之 监控--nmon
  6. java中通过JNA调用dll
  7. 使用java多线程分批处理数据工具类
  8. 解决:EXCEL复制粘贴,精度丢失
  9. 屠龙之路_坚持就是胜利_NinthDay
  10. python3下的paramiko 安装