<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Spark 安全 Spark 當前支持使用 shared secret(共享密鑰)來 authentication(認證)。可以通過配置 `spark.authenticate` 參數來開啟認證。這個參數用來控制 Spark 的通訊協議是否使用共享密鑰來執行認證。這個認證是一個基本的握手,用來保證兩側具有相同的共享密鑰然后允許通訊。如果共享密鑰無法識別,他們將不能通訊。創建共享密鑰的方法如下: * 對于 Spark on [YARN](running-on-yarn.html) 的部署方式,配置 `spark.authenticate` 為 `true`,會自動生成和分發共享密鑰。每個 application 會使用一個單獨的共享密鑰. * 對于 Spark 的其他部署方式,需要在每一個 nodes 配置 `spark.authenticate.secret` 參數。這個密碼將會被所有的 Master/Workers 和 aplication 使用. ## Web UI Spark UI 可以通過 `spark.ui.filters` 設置使用 [javax servlet filters](http://docs.oracle.com/javaee/6/api/javax/servlet/Filter.html) 和采用通過 [SSL settings](security.html#ssl-configuration) 啟用 [https/SSL](http://en.wikipedia.org/wiki/HTTPS) 來進行安全保護。 ### 認證 當 UI 中有一些不允許其他用戶看到的數據時,用戶可能想對 UI 進行安全防護。用戶指定的 javax servlet filter 可以對用戶進行身份認證,用戶一旦登入,Spark 可以比較與這個用戶相對應的視圖 ACLs 來確認是否授權用戶訪問 UI。配置項 `spark.acls.enable`,`spark.ui.view.acls` 和 `spark.ui.view.acls.groups` 控制 ACLs 的行為。注意,啟動 application 的用戶具有使用 UI 視圖的訪問權限。在 YARN 上,Spark UI 使用標準的 YARN web application 代理機制可以通過任何已安裝的 Hadoop filters 進行認證。 Spark 也支持修改 ACLs 來控制誰具有修改一個正在運行的 Spark application 的權限。這些權限包括 kill 這個 application 或者一個 task。以上功能通過配置 `spark.acls.enable`,`spark.modify.acls` 和 `spark.modify.acls.groups` 來控制。注意如果你已經認證登入 UI,為了使用 UI 上的 kill 按鈕,必須先添加這個用戶到 modify acls 和 view acls。在 YARN 上,modify acls 通過 YARN 接口傳入并控制誰具有 modify 權限。Spark 允許在 acls 中指定多個對所有的 application 都具有 view 和 modify 權限的管理員,通過選項 `spark.admin.acls` 和 `spark.admin.acls.groups` 來控制。這樣做對于一個有幫助用戶調試 applications 的管理員或者支持人員的共享集群,非常有幫助。 ## 事件日志 如果你的 applications 使用事件日志,事件日志的的位置必須手動創建同時具有適當的訪問權限(`spark.eventLog.dir`)。如果想對這些日志文件做安全保護,目錄的權限應該設置為 `drwxrwxrwxt`。目錄的屬主應該是啟動 history server 的高級用戶,同時組權限應該僅限于這個高級用戶組。這將允許所有的用戶向目錄中寫入文件,同時防止刪除不是屬于自己的文件(權限字符t為防刪位)。事件日志將會被 Spark 創建,只有特定的用戶才就有讀寫權限。 ## 加密 Spark 支持 HTTP SSL 協議。SASL 加密用于塊傳輸服務和 RPC 端。也可以加密 Shuffle 文件。 ### SSL 配置 SSL 配置是分級組織的。用戶可以對所有的通訊協議配置默認的 SSL 設置,除非被特定協議的設置覆蓋掉。這樣用戶可以很容易的為所有的協議提供通用的設置,無需禁用每個單獨配置的能力。通用的 SSL 設置在 Spark 配置文件的 `spark.ssl` 命名空間中。下表描述了用于覆蓋特定組件默認配置的命名空間: | Config Namespace(配置空間)| Component(組件)| | --- | --- | | `spark.ssl.fs` | 文件下載客戶端(用于從啟用了 HTTPS 的服務器中下載 jars 和 files)。 | | `spark.ssl.ui` | Spark application Web UI | | `spark.ssl.standalone` | Standalone Master / Worker Web UI | | `spark.ssl.historyServer` | History Server Web UI | 所有的SSL選項可以在 [配置頁面](configuration.html) 里查詢到。SSL 必須在所有的節點進行配置,對每個使用特定協議通訊的組件生效。 ### YARN mode key-store 可以在客戶端側準備好,然后作為 application 的一部分通過 executor 進行分發和使用。因為用戶能夠通過使用 `spark.yarn.dist.files` 或者 `spark.yarn.dis.archives` 配置選項,在 YARN上 啟動 application 之前部署文件。加密和傳輸這些文件的責任在 YARN 一側,與 Spark 無關。 為了一個長期運行的應用比如 Spark Streaming 應用能夠寫 HDFS,需要通過分別設置 `--principal` 和 `--keytab` 參數傳遞 principal 和 keytab 給 `spark-submit`。傳入的 keytab 會通過 Hadoop Distributed Cache 拷貝到運行 Application 的 Master(這是安全的 - 如果 YARN 使用 SSL 配置同時啟用了 HDFS 加密)。Kerberos 會使用這個 principal 和 keytab 周期的更新登陸信息,同時 HDFS 需要的授權 tokens 會周期生成,因此應用可以持續的寫入 HDFS。 ### Standalone mode 用戶需要為 master 和 slaves 提供 key-stores 和相關配置選項。必須通過附加恰當的 Java 系統屬性到 `SPARK_MASTER_OPTS` 和 `SPARK_WORKER_OPTS` 環境變量中,或者只在 `SPARK_DAEMON_JAVA_OPTS` 中。在這種模式下,用戶可以允許 executors 使用從派生它的 worker 繼承來的 SSL 設置。可以通過設置 `spark.ssl.useNodeLocalConf` 為 `true` 來完成。如果設置這個參數,用戶在客戶端側提供的設置不會被 executors 使用。 ### 準備 key-stores 可以使用 `keytool` 程序生成 key-stores。這個工具的使用說明在 [這里](https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html)。為 standalone 部署方式配置 key-stores 和 trust-store 最基本的步驟如下: * 為每個 node 生成 keys pair * 在每個 node 上導出 key pair 的 public key(公鑰)到一個文件中 * 導入以上生成的所有的公鑰到一個單獨的 trust-store * 在所有的節點上分發 trust-store ### 配置 SASL 加密 當認證(`sprk.authenticate`)開啟的時候,塊傳輸支持 SASL 加密。通過在 application 配置中設置 `spark.authenticate.enableSaslEncryption` 為 `true` 來開啟 SASL 加密。 當使用外部 shuffle 服務,需要在 shuffle 服務配置中通過設置 `spark.network.sasl.serverAlwaysEncrypt` 為 `true` 來禁用未加密的連接。如果這個選項開啟,未設置使用 SASL 加密的 application 在鏈接到 shuffer 服務的時候會失敗。 ## 針對網絡安全配置端口 Spark 嚴重依賴 network,同時一些環境對使用防火墻有嚴格的要求。下面使一些 Spark 網絡通訊使用的主要的端口和配置方式. ### Standalone mode only | From | To | Default Port(默認端口)| Purpose(目的)| Configuration Setting(配置設置)| Notes(注意)| | --- | --- | --- | --- | --- | --- | | Browser | Standalone Master | 8080 | Web UI | `spark.master.ui.port /`<br>`SPARK_MASTER_WEBUI_PORT` | Jetty-based. Standalone mode only. | | Browser | Standalone Worker | 8081 | Web UI | `spark.worker.ui.port /`<br>`SPARK_WORKER_WEBUI_PORT` | Jetty-based. Standalone mode only. | | Driver /<br>Standalone Worker | Standalone Master | 7077 | Submit job to cluster /<br>Join cluster | `SPARK_MASTER_PORT` | Set to "0" to choose a port randomly. Standalone mode only. | | Standalone Master | Standalone Worker | (random) | Schedule executors | `SPARK_WORKER_PORT` | Set to "0" to choose a port randomly. Standalone mode only. | ### All cluster managers | From | To | Default Port(默認端口)| Purpose(目的)| Configuration Setting(配置設置)| Notes(注意)| | --- | --- | --- | --- | --- | --- | | Browser | Application | 4040 | Web UI | `spark.ui.port` | Jetty-based | | Browser | History Server | 18080 | Web UI | `spark.history.ui.port` | Jetty-based | | Executor /<br>Standalone Master | Driver | (random) | Connect to application /<br>Notify executor state changes | `spark.driver.port` | Set to "0" to choose a port randomly. | | Executor /<br>Driver | Executor /<br>Driver | (random) | Block Manager port | `spark.blockManager.port` | Raw socket via ServerSocketChannel | 更多關于安全配置參數方面的細節請參考 [配置頁面](configuration.html)。安全方面的實施細節參考 [`org.apache.spark.SecurityManager`](https://github.com/apache/spark/tree/master/core/src/main/scala/org/apache/spark/SecurityManager.scala).
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看