Hadoop kerberos 票据自动更新

标签 hadoop hdfs kerberos

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

hadoop fs -get /path/to/hdfs/big/folder .

该文件夹很大(将近 3TB),kerberos 票证的生命周期为 10 小时,可续订生命周期为 7 天。

下载需要 10 多个小时,所以我无法完成操作(kerberos 安全异常)。有什么办法可以设置get操作的ticket自动续订吗?

最佳答案

“renewable lifetime of 7 days” 表示您可以明确续订票证,无需提供密码,期限为 7 天;每次续订都会让您多用 10 小时。

我知道 Linux 捆绑了一个自动更新(和自动重新创建)机制,它是 SSSD 的一部分。因此,如果您想将 Linux 身份验证委托(delegate)给 OpenLDAP 或 Microsoft AD 服务,经过数周的调试(...如果您足够幸运能够成功...),您将拥有 -可选——由操作系统为您管理的 Kerberos 票证。

还有一个由Hadoop Kerberos 库启动的自动续订线程,但它仅适用于连接前在缓存中找到的票证;如果您使用库(和 key 表)自己创建票证,那么它将不可再生——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

关于Hadoop kerberos 票据自动更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43189044/

相关文章:

hadoop - Apache Spark 在 YARN 中部署时如何处理系统故障?

apache-spark - 使用临时目录的 Spark 事务写操作

java - 通过 Java 中的 Keytab 进行 Kerberos 身份验证的问题

linux - 处理 Squid Kerberos auth 和 Squidguard ldapusersearch

python - 我是否需要安装 Hadoop 才能使用 Pyspark 的所有功能?

java - 多个领域

python - HortonWorks Ambari 1.7.0 选择了错误的 HDP 堆栈

hadoop - 在 MapReduce 作业中先运行 Combiner 或 Partitioner

hadoop - 使用 PIG 将文件加载到 Hbase

java - 在同一 Java 应用程序中使用不同的 Kerberos KDC 进行身份验证