2017-03-07 45 views
0

我們有兩個cloudera 5.7.1羣集,一個使用Kerberos進行安全保護,另一個使用Kerberos進行安全保護。在不安全的YARN羣集中運行Spark時訪問安全的Hive

是否有可能在訪問存儲在安全集羣中的配置單元表時使用不安全的YARN集羣運行Spark? (Spark版本是1.6)

如果是這樣,你能否提供一些解釋我如何配置它?

更新:

我想解釋一下我的背後涉及的最終目標。我們的主要安全集羣被大量使用,我們的工作無法獲得足夠的資源在合理的時間內完成。爲了克服這個問題,我們想要使用另一個不安全的集羣中的資源,我們有而不需要需要在集羣之間複製數據。

我們知道這不是最好的解決方案,因爲數據本地化級別可能不是最佳的,但這是我們現在可以提出的最佳解決方案。

請讓我知道,如果你有任何其他的解決方案,因爲它似乎我們無法實現上述。

+0

再次想到,您可以針對遠程安全集羣運行Spark驅動程序...並將結果下載到本地機器上。但是,那麼您需要另一項工作來將這些結果上傳到不安全的HDFS。 –

+0

這對我們的用例並不好。請看我更新的問題。 – Koby

+0

在日常的基礎上使用不安全的集羣來處理安全數據?這破壞了保護數據的目的!這很簡單:要麼承認無法承擔安全,要麼將資源添加到安全集羣。可以是僅計算節點,僅適用於YARN,具有小磁盤容量。 –

回答

2

如果您在本地模式星火,你可以把它使用Hadoop的conf文件的任意一組 - 即core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlhive-site.xml從Kerberos的羣集複製。
所以你可以通過訪問HDFS集羣 - 當然,如果你有一個Kerberos票據授予你訪問該集羣的權限。

export HADOOP_CONF_DIR=/path/to/conf/of/remote/kerberized/cluster 
    kinit [email protected] 
    spark-shell --master local[*] 

但在紗的客戶端或紗線羣集模式,你不能在其他地方集羣和訪問HDFS推出容器。

  • 無論您使用本地core-site.xml,指出​​是simple,並且可以連接到本地YARN/HDFS
  • 或者指向遠程core-site.xml的副本,指出​​是kerberos,和你可以連接到遠程YARN/HDFS
  • ,但你不能使用本地的,不安全的紗和訪問遠程,安全HDFS

注意與不安全,不安全或安全-SE治癒組合,您可以通過自行定製hdfs-site.xml來定義多個命名空間,以便可以通過訪問另一個羣集中的HDFS。但是你堅持使用單一認證模式。
請參閱Mighty Steve Loughran關於額外Spark屬性的評論,以從本地安全集羣訪問遠程,安全的HDFS。

請注意,與DistCp你堅持相同的方式 - 除了有一個「作弊」屬性,讓您從安全到不安全。

+0

謝謝你的回答。這聽起來是合理的,因爲它似乎是我們得到的錯誤。你碰巧知道我們是否可以通過切換到Spark的獨立羣集來實現它? – Koby

+0

不知道 - 但我擔心,如果您啓動獨立羣集,則Spark不會在意Hadoop羣集配置選項。反之亦然。 –

+0

基本上,Spark針對YARN進行身份驗證,以*(a)*獲取Hadoop委派令牌*(對於YARN和HDFS有效7個小時,除了Streaming等長時間運行的作業外無需返回Kerberos)*和* (b)*如果需要,爲其執行者請求容器。它從不直接對HDFS進行認證。 –

相關問題