我面臨的一些問題,使用下面的命令從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 **操作的問題。 –