首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop kerberos机票自动更新

Hadoop kerberos机票自动更新
EN

Stack Overflow用户
提问于 2017-04-03 15:51:30
回答 2查看 8.3K关注 0票数 1

使用以下命令从HDFS下载大文件夹时遇到了一些问题:

代码语言:javascript
复制
hadoop fs -get /path/to/hdfs/big/folder .

该文件夹很大(几乎3TB),kerberos票证的生存期为10小时,可重命名的寿命为7天。

下载需要超过10个小时,所以我无法完成操作(kerberos安全异常)。有什么办法可以为get操作自动更换票吗?

EN

回答 2

Stack Overflow用户

发布于 2017-04-04 08:50:20

“可续订7天”意味着您可以明确地续签票,而无需提供密码,为期7天;每次续签都会给您多10小时的时间。

我知道一个与Linux捆绑在一起的自动更新(和自动更新)机制,它是SSSD的一部分。因此,如果您想将Linux委托给OpenLDAP或Microsoft服务,经过几周的调试(...if是幸运的,您已经成功了……),您将拥有--或者是--由操作系统为您管理的Kerberos票证。

也有一个由Hadoop库启动的自动更新线程,但它只适用于连接之前在缓存中找到的票证;如果您自己使用库(和一个keytab)创建票证,那么它将不可再生--这是Java的Kerberos实现处理不好的许多事情之一--并且必须定期重新创建。

底线:您可以尝试这种方法,在后台续签,直到您在传输完成后释放一个“锁”。

代码语言:javascript
复制
touch lock.txt
kinit *************
{
  while [[ -f lock.txt ]]
  do
    kinit -R
    sleep 5m
  done
} &

hdfs dfs ***************
rm -f lock.txt
# backround process will terminate within 5m
票数 1
EN

Stack Overflow用户

发布于 2017-04-05 15:25:29

我解决了我的问题如下:

第1部分

代码语言:javascript
复制
#set the kerberos ticket cache location
export KRB5CCNAME=/tmp/my_krbtkt

#create a renewable ticket (10 hours lifetime + renewable for 7 days)
kinit -r7d -l10h

#execute the long time command 
hadoop fs -get /path/to/hdfs/big/folder .

第2部分

在crontab内安排kerberos票证更新(即每6小时一次):

代码语言:javascript
复制
0 */6 * * * kinit -R -c /tmp/my_krbtkt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43189044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档