在hadoop/hbase等代码中kinit

@(HBASE)[hadoop, hbase, storm, kafka]

(一)在java代码中kinit的方法

使用hadoop的UserGroupInformation
1、Set Kerberos login with the UserGroupInformation API:

import org.apache.hadoop.security.UserGroupInformation;
org.apache.hadoop.conf.Configuration conf = HBaseConfiguration.create();
//注意,不能用set()等指定zk的方式。
conf.addResource("/path","hbase-site.xml");
conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);

2、Login with a keytab by calling the UserGroupInformation API:

UserGroupInformation.loginUserFromKeytab("example_user@netease.com", "/path/to/example_user.keytab");

完整代码:

public class HBaseKerberosDemo {public static void main(String[] args) throws Exception {Configuration conf = HBaseConfiguration.create();//注意,不能用set()等指定zk的方式。conf.addResource("/path","hbase-site.xml");conf.set("hadoop.security.authentication", "Kerberos");UserGroupInformation.setConfiguration(conf);UserGroupInformation.loginUserFromKeytab(args[0], args[1]);Connection connection = ConnectionFactory.createConnection(conf);Table tbl = connection.getTable(TableName.valueOf(args[2]));Put put = new Put(Bytes.toBytes("r1"));put.addColumn(Bytes.toBytes("f1"), Bytes.toBytes("c1"), Bytes.toBytes("v1"));tbl.put(put);tbl.close();connection.close();}
}

(二)定时刷新

kinit会有超时时间,如果程序需要长时间运行,则需要定时去刷新一下,可以通过一个线程来实现。

这种应用场景常见于storm,在storm中提供了TickTuple来实现这种定时功能。
事实证明不需要定时refresh的,在storm需要操作hbase的bolt的prepare()方法中添加以下代码。

    Configuration config = HBaseConfiguration.create();//根据实际路径设置,也可以使用逐个参数添加的方式,但建议使用系统的hbase-site.xml。config.addResource(new Path("/home/hadoop/conf/hbase", "hbase-site.xml"));config.set("hadoop.security.authentication", "Kerberos");UserGroupInformation.setConfiguration(config);try {UserGroupInformation.loginUserFromKeytab("g18_us/scheduler", "/home/hadoop/keytab/g18_us.keytab");} catch (IOException e) {e.printStackTrace();}

在hadoop/hbase等代码中kinit相关推荐

  1. 集群提交HBase代码报错:Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguratio

    原因分析 HBase官网 已经告诉我们原因以及解决方法了: 原因: 默认情况下,部署到MapReduce群集的MapReduce作业无法访问$ HBASE_CONF_DIR下的HBase配置或HBas ...

  2. hadoop +hbase +zookeeper 完全分布搭建 (版本一)

    hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA.YARN等.最新的hadoop-2.6.0又增加了YARN HA 注意:apache提供的hadoop-2.6.0的安装包是 ...

  3. Hadoop, Hbase

    https://antkillerfarm.github.io/ Hadoop 最近(2016.4),参加公司组织的内部培训,对Hadoop有了一些认识,特记录如下. 概述 Hadoop项目由Doug ...

  4. HBase出现java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration问题

    问题:Hbase在集群上运行报错:NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfiguration 需求:HBase使用Java创建表,打 ...

  5. 手把手教你入门Hadoop(附代码资源)

    作者:Piotr Krewski&Adam Kawa 翻译:陈之炎 校对:丁楠雅 本文约6000字,建议阅读10分钟. 本文为你介绍Hadoop的核心概念,描述其体系架构,指导您如何开始使用H ...

  6. csh shell_06145.16.1同一OS用户并行Shell脚本中kinit不同的Principal串掉问题分析

    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...

  7. 【HBase】关于包org.apache.hadoop.hbase.client

    Package org.apache.hadoop.hbase.client 提供HBase客户端接口 参考: Description Interface概要   Interface Descript ...

  8. HBASE配置参数说明中文文档(官方文档翻译)

    HBASE所有参数原文加中文译文,方便学习交流研究使用,因使用爬虫获取部分内容翻译可能存在误差,仅供参考,以原文内容为准. 官方原文地址 文章目录 hbase.tmp.dir hbase.rootdi ...

  9. Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建

    Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建 一.虚拟机安装Centos7 1.准备工作 2.centos7安装过程 3.关闭防火墙(关键) 二.安装jdk ...

最新文章

  1. 创新是低情商的人做的
  2. 面试必过之消息中间件RabbitMQ面试总结大全!
  3. JMeter断言介绍
  4. 组合模式(Composite Pattern)
  5. Sql Server 三种事务模式
  6. 校运动会c语言程序编写,校运动会管理系统报告C语言(含完整代码)
  7. makefile——小试牛刀
  8. 200t不稳定_技术革新!将不可能变为可能 这家企业是怎么做到的?
  9. 2017/09/15
  10. 特斯拉电动卡车霸气发布,还有一个意外惊喜(全新跑车)
  11. iOS11新特性之LargeTitle
  12. 【Caffe代码解析】convert_imageset
  13. ie 谷歌插件Chrome Frame
  14. 小提琴统计图_【统计图】如何绘制小提琴图?
  15. mybatis generator 自动生成 在线生成器 生成service controller 含基础增删改查 自动生成工具 只需要建表SQL语句
  16. PostgreSQL获取年月日,获取年份
  17. apriori算法 python实现
  18. 【迅为推荐】适合新手学习的arm开发板-iTOP-4412开发板
  19. esp8266启动报错 ets Jan 8 2013,rst cause:2, boot mode:(7,7)
  20. 西北乱跑娃 --- requests爬虫五大反反爬机制

热门文章

  1. vue_prop单向数据流
  2. v-on指令修饰符大全
  3. 【题解报告】Leecode367. 有效的完全平方数——Leecode每日一题系列
  4. android最新版本 note8,三星Note8官方国行版安卓9固件rom升级包:CHC-N9500ZCS4DSF5
  5. Redis数据库(四)——Redis集群模式(主从复制、哨兵、Cluster)
  6. Android工程中R.java文件的重新生成——注意资源文件的错误
  7. pycharm导入jieba包_3分钟带你搞懂Python模块、包的区别和使用
  8. 单片机定时器精准定时_PIC单片机的定时器精准计时的计算
  9. c语言中左右对齐的作用,c语言中右对齐的符号
  10. phpstorm安装_快速打造自己的PHPStorm主题