2015-11-02 147 views
0

在Kerberos中有一個名爲「foo」的用戶,hadoop集羣受Kerberos保護。我希望hadoop集羣以「foo」的形式運行這個工作,我該怎麼做?什麼配置允許hadoop客戶端指定要運行的kerberos用戶帳戶名稱,就像hadoop集羣的'kinit username'然後運行mapreduce作業一樣?只是供參考,hadoop 2.6.0使Hadoop以Kerberos用戶身份運行

回答

1

我相信你正在尋找用戶模仿。這可以在core-site.xml文件中完成。請看下面的例子:

<property> 
    <name>hadoop.proxyuser.super.hosts</name> 
    <value>host1,host2</value> 
    </property> 
    <property> 
    <name>hadoop.proxyuser.super.groups</name> 
    <value>group1,group2</value> 
</property> 

https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Superusers.html

+0

不是真的,我在尋找類似成才這個問題,http://stackoverflow.com/questions/11656543/how-to-get-kerberos- INSTEAD-OF-委託令牌功能於Hadoop的MapReduce的。但我不想通過網絡傳遞權力。 – mattsun

+0

呵呵 - 但TGT是**設計**通過網絡傳遞。它沒有其他目的:首先從Kerberos服務獲取TGT,然後將其發送到1..N個服務,然後這些服務將其發送回Kerberos進行驗證(例如,獲取服務票據)。 –

+0

你看起來沒錯。但是我擔心的是,如果tgt被Kerberos傳遞,那麼我不需要關心安全問題。但是如果我自己實現它(就像在http://stackoverflow.com/questions/11656543/how-to-get-kerberos-instead-of-delegation-token-in-hadoop-mapreduce中提到的那樣),那麼安全性可能會成爲一個問題。所以我在尋找的是由hadoop和Kerberos提供的一些機制 – mattsun