我在使用以下命令从 HDFS 下载大文件夹时遇到一些问题:
hadoop fs -get /path/to/hdfs/big/folder .
该文件夹很大(几乎 3TB),kerberos 票证的生命周期为 10 小时,可续订生命周期为 7 天。
下载需要 10 多个小时,因此我无法完成操作(kerberos 安全异常)。有什么办法可以设置get操作的票证自动更新吗?
“可更新寿命为 7 天”表示您可以续订机票明确地,无需提供密码,持续 7 天;每次续订都会给您多 10 个小时的时间。
我知道 Linux 捆绑了一个自动更新(和自动重新创建)机制,它是 SSSD 的一部分。因此,如果您想将 Linux 身份验证委托给 OpenLDAP 或 Microsoft AD 服务,经过几周的调试后(……如果你足够幸运能够成功……),您将拥有(可选)由操作系统为您管理的 Kerberos 票证。
还有一个由 Hadoop Kerberos 库启动的自动更新线程,但它仅适用于连接之前在缓存中找到的票据;如果您使用库(和密钥表)自己创建票证,那么它将不可更新 -Java 的 Kerberos 实现不能很好处理的众多问题之一——并且必须定期重新创建。
底线:您可以尝试这种技巧,在后台更新票据,直到传输完成后释放“锁定”。
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)