<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 硬件配置 Spark 開發者都會遇到一個常見問題,那就是如何為 Spark 配置硬件。然而正確的硬件配置取決于使用的場景,我們提出以下建議。 # 存儲系統 因為大多數 Spark 作業都很可能必須從外部存儲系統(例如 Hadoop 文件系統或者 HBase)讀取輸入的數據,所以部署 Spark 時**盡可能靠近這些系統**是很重要的。我們建議如下 : * 如果可以,在 HDFS 相同的節點上運行 Spark。最簡單的方法是在相同節點上設置 Spark [獨立集群模式](spark-standalone.html),并且配置 Spark 和 Hadoop 的內存和 CPU 的使用以避免干擾(Hadoop 的相關選項為:設置每個任務內存大小的選項 `mapred.child.java.opts` 以及設置任務數量的選項 `mapred.tasktracker.map.tasks.maximum` 和 `mapred.tasktracker.reduce.tasks.maximum`)。當然您也可以在常用的集群管理器(比如 [Mesos](running-on-mesos.html) 或者 [YARN](running-on-yarn.html))上運行 Hadoop 和 Spark。 * 如果不可以在相同的節點上運行,建議在與 HDFS 相同的局域網中的不同節點上運行 Spark。 * 對于低延遲數據存儲(如HBase),在這些存儲系統不同的節點上運行計算作業來可能更有利于避免干擾。 # 本地磁盤 雖然 Spark 可以在內存中執行大量計算,但是他仍然使用本地磁盤來存儲不適合內存存儲的數據以及各個階段的中間結果。我們建議每個節點配置 **4-8** 個磁盤,并且不使用 RAID 配置(只作為單獨掛載點)。在 Linux 中,使用 [noatime選項](http://www.centos.org/docs/5/html/Global_File_System/s2-manage-mountnoatime.html) 掛載磁盤以減少不必要的寫入。在 Spark 中,[配置](configuration.html) `spark.local.dir` 變量為逗號分隔的本地磁盤列表。如果您正在運行 HDFS,可以使用與 HDFS 相同的磁盤。 # 內存 一般來說,Spark 可以在每臺機器 **8GB 到數百 GB** 內存的任何地方正常運行。在所有情況下,我們建議只為 Spark 分配最多75% 的內存;其余部分供操作系統和緩存區高速緩存存儲器使用。 您需要多少內存取決于您的應用程序。如果您需要確定的應用程序中某個特定數據集占用內存的大小,您可以把這個數據集加載到一個 Spark RDD 中,然后在 Spark 監控 UI 頁面(`http://&lt;driver-node&gt;:4040`)中的 Storage 選項卡下查看它在內存中的大小。需要注意的是,存儲級別和序列化格式對內存使用量有很大的影響 - 如何減少內存使用量的建議,請參閱[調優指南](tuning.html)。 最后,需要注意的是 Java 虛擬機在超過 200GB 的 RAM 時表現得并不好。如果您購置的機器有比這更多的 RAM,您可以在每個節點上運行多個 Worker 的 JVM 實例。在 Spark 的 [standalone mode](spark-standalone.html) 下,您可以通過 `conf/spark-env.sh` 中的 `SPARK_WORKER_INSTANCES` 和 `SPARK_WORKER_CORES` 兩個參數來分別設置每個節點的 Worker 數量和每個 Worker 使用的 Core 數量。 # 網絡 根據我們的經驗,當數據在內存中時,很多 Spark 應用程序跟網絡有密切的關系。使用 **10 千兆位**以太網或者更快的網絡是讓這些應用程序變快的最佳方式。這對于 “distributed reduce” 類的應用程序來說尤其如此,例如 group-by 、reduce-by 和 SQL join。任何程序都可以在應用程序監控 UI 頁面(`http://&lt;driver-node&gt;:4040`)中查看 Spark 通過網絡傳輸的數據量。 # CPU Cores 因為 Spark 實行線程之間的最小共享,所以 Spark 可以很好地在每臺機器上擴展數十個 CPU Core。您應該為每臺機器至少配置 **8-16 個 Core**。根據您工作負載的 CPU 成本,您可能還需要更多:當數據都在內存中時,大多數應用程序就只跟 CPU 或者網絡有關了。
                  <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>

                              哎呀哎呀视频在线观看