我面临的一些问题,使用下面的命令从HDFS下载大文件夹:Hadoop的Kerberos票据自动更新
hadoop fs -get /path/to/hdfs/big/folder .
该文件夹是大(几乎3TB)和Kerberos票据有10小时和寿命7天的可用寿命。
下载的时间超过10小时,所以我不能完成操作(Kerberos安全例外)。有什么办法可以为获取操作设置自动更新票证吗?
我面临的一些问题,使用下面的命令从HDFS下载大文件夹:Hadoop的Kerberos票据自动更新
hadoop fs -get /path/to/hdfs/big/folder .
该文件夹是大(几乎3TB)和Kerberos票据有10小时和寿命7天的可用寿命。
下载的时间超过10小时,所以我不能完成操作(Kerberos安全例外)。有什么办法可以为获取操作设置自动更新票证吗?
“7天可再生一生”意味着你可以更新票证明确,无需提供密码,7天;每次续约都会让你再过10小时。
我知道在Linux捆绑一个自动更新(和自动娱乐)机制,它的SSSD的一部分。所以,如果你要委托的Linux AUTH到OpenLDAP或微软AD服务,几个星期的调试后(......如果你足够幸运,曾经成功...),你将有 - 可选 - 一个Kerberos门票由操作系统管理。
还有由Hadoop的Kerberos的库启动自动更新线程,但它仅适用于连接之前在高速缓存中找到的门票;如果您创建使用库(和密钥表)票自己,那么它不会是可再生能源 - 并且必须定期重新创建 - 的许多事情Kerberos实现的Java没有处理好之一。底线:您可以试试这种技巧,在后台更新票证,直到您在完成传输后释放“锁定”为止。
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
我解决我的问题如下:
PART 1
#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 .
PART 2
计划在crontab里面Kerberos票据续期(即每6小时):
0 */6 * * * kinit -R -c /tmp/my_krbtkt
该计划作业将在7天后惨败,并在邮箱中填充错误消息。巨大的成功。 –
你是对的,有了这个解决方案,你必须在工作完成后手动删除crontab中的更新。 –
请参阅https://community.hortonworks.com/questions/9394/kerberos-ticket-isnt-being-renewed-by-solr-when-st.html –
谢谢@RemusRusanu,但建议的解决方案适用于_solr_,我有** get **操作的问题。 –