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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 常用的調優參數 ## 資源相關參數 以下參數是在用戶自己的mr應用程序中配置就可以生效(mapred-default.xml) | 配置參數 | 參數說明 | | --- | --- | | mapreduce.map.memory.mb | 一個Map Task可使用的資源上限(單位:MB),默認為1024.如果Map Task實際使用的資源量超過該值,則會被強制殺死 | | mapreduce.reduce.memory.mb | 一個Reduce Task可使用的資源上限(單位:MB),默認1024.如果Reduce Task實際使用的資源量超過該值,則會被強制殺死 | | mapreduce.map.cpu.vcores | 每個Map task可使用的最多cpu core數目,默認值:1 | | mapreduce.reduce.cpu.vcores | 每個Reduce Task可使用的最多cpu core數目,默認值:1 | | mapreduce.reduce.shuffle.parallelcopies | 每個Reduce去map中拿數據的并行數,默認值是5 | | mapreduce.reduce.shuffle.merge.percent | buffer中的數據達到多少比例開始寫入磁盤.默認值0.66 | | mapreduce.reduce.shuffle.input.buffer.percent | buffer大小占reduce可用內存的比例.默認值0.7 | | mapreduce.reduce.input.buffer.percent | 指定多少比例的內存用來存放buffer中的數據,默認值是0.0 | 在yarn啟動之前就配置在服務器的配置文件中才能生效(yarn-default.xml) | 配置參數 | 參數說明 | | --- | --- | | yarn.scheduler.minumum-allocation-mb 1024 | 給應用程序container分配的最小內存 | | yarn.scheduler.maximum-allocation-mb 8192 | 給應用程序container分配的最大內存 | | yarn.scheduler.minimum-allocation-vcores 1 | 每個container申請的最小cpu核數 | | yarn.scheduler.maximum-allocation-vcores 32 | 每個container申請的最大cpu核數 | | yarn.nodemanager.resource.memory-mb 8192 | 給containers分配的最大物理內存 | shuffle性能優化的關鍵參數,應在yarn啟動之前就配置好(mapred-default.xml) | 配置參數 | 參數說明 | | --- | --- | | mapreduce.task.io.sort.mb 100 | shuffle的環形緩沖區大小,默認值100m | | mapreduce.map.sort.spill.percent 0.8 | 環形緩沖區溢出的閾值,默認值80% | ## 容錯相關參數(mapreduce性能優化) | 配置參數 | 參數說明 | | --- | --- | | mapreduce.map.maxattempts | 每個Map task最大重試次數,一旦重試參數超過該值,則認為Map task運行失敗,默認值:4 | | mapreduce.reduce.maxattempts | 每個Reduce task最大重試次數,一旦重試參數超過該值,則認為Map task運行失敗,默認值:4 | | mapreduce.task.timeout | Task超時時間,經常需要設置的一個參數,該參數表達的意思為:如果以個task在一定時間內沒有任何進入,即不會讀取新的數據,也沒有輸出數據,則認為該task處于block狀態,可能是卡住了,也許是永遠卡住了,為了房租因為用戶程序永遠block住不退出,則強制設置了一個該超時時間(單位毫秒,默認是600000).如果你的程序對每條輸入數據的處理時間過長(比如會訪問數據庫,通過網絡拉取數據等),建議將該參數調大,該參數過小常出現錯誤提示是: "AttemptID:attempt_14267829456721_123456_m_000224_0 Timed out after 300 secsContainer killed by the ApplicationMaster" | # 合理設置reduce端的buffer 默認情況下,數據達到一個閾值的時候,buffer中的數據就會寫入磁盤,然后reduce會從磁盤中獲得所有的數據. 也就是說buffer和reduce是沒有直接關聯的,中間多一個寫磁盤->讀磁盤的過程,既然有這個弊端,那么可以通過參數來配置,使得buffer中有一部分數據可以直接輸送到reduce,從而減少IO開銷. ~~~ mapred.job.reduce.input.buffer.percent 默認為0 ~~~ 當值大于0的時候,會保留指定比例的內存讀buffer中的數據直接拿給reduce使用. 這樣一來,設置buffer需要內存,讀取數據需要內存,reduce計算也要內存,所以要根據作業的運行情況進行調整 # 網絡性能 **linux層面** 每個端口監聽隊列的最大長度 ~~~ echo net.core.somaxconn=37628>>/etc/sysctl.conf ~~~ **hadoop集群限制** 每個端口監聽隊列長度 core-site Ipc.server.listen.queue.size控制了服務端socket的監聽隊列長度,默認值128,這個要和net.core.somaxconn配合使用 ~~~ <property> <name>Ipc.server.listen.queue.size</name> <value>65535</value> </property> ~~~ **datanode數據移動的帶寬** 默認是1M,公司集群帶寬一般能千M的,所以這個盡量調大 ~~~ <property> <name>dfs.datanode.balance.bandwidthPerSec</name> <value>1048576</value> </property> ~~~ **namenode RPC處理線程數** ~~~ dfs.namenode.handler.count=30(默認10) ~~~ **datanode RPC處理線程數** ~~~ dfs.datanode.handler.count=20(默認10) ~~~ **集群數據傳輸的并行度** ~~~ Name: Mapreduce.tasktracker.http.threads Value: 40 ~~~ **shuffle階段reduce拉取數據并行度** ~~~ mpred.reduce.parallelcopys ~~~ 最好設置為cpu的核數 **中間結果壓縮** ~~~ Name: Mapreduce.map.output.compress Value: true ~~~ ~~~ Name: Mapreduce.map.output.compress.codec Value: org.apache.hadoop.io.compress.SnappyCodec ~~~ # 提高并行度 datanode允許同時接收或發送任務數量 ~~~ dfs.datanode.max.trasfer.threads=8192 ~~~ # 內存調優 **liunx** swap分區設置為0,優先使用內存 ~~~ echo vm.swappiness=0>>/etc/sysctl.conf ~~~ **namenode** 首先必須調整新生代老年代比例,namenode內存中維護元數據,老年代比例占用較大 垃圾回收機制采用多線程,并發回收 開啟永久代回收 ~~~ vim hadoop-env.sh export HADOOP_NAMENODE_OPTS="${HADOOP_NAMENODE_OPTS} -Xms10240m -Xmx10240m -XX:+UseParNewGC 設置年輕代為多線程并行收集 -XX:+UseConcMarkSweepGC 年老代激活CMS收集器(標記算法),可以盡量減少fullGC -XX:+CMSConcurrentMTEnabled 當該標志被啟用時,并發的CMS階段將以多線程執行 -XX:CMSInitiatingOccupancyFraction=70 當年老代空間被占用70%的時候觸發CMS垃圾收集 -XX:+CMSClassUnloadingEnaled 設置這個參數表示對永久帶進行垃圾回收,CMS默認不對永久代進行垃圾回收 ~~~ **mapreduce** map端的內存 ~~~ Name: mapreduce.map.memory.mb Value: 1280 ~~~ map端jvm堆內存 ~~~ Name: Mapreduce.map.java.opts Value: -Xmx1024m -XX:-UseGCOverheadLimit XX:+UseConcMarkSweepGC ~~~ reduce端內存 ~~~ Name: Mapreduce.reduce.memory.mb Value: 1280 ~~~ reduce端jvm堆內存 ~~~ Name: Mapreduce.reduce.java.opts Value: -Xmx1024m -XX:-UseGCOverheadLimit ~~~ jvm堆內存一定要小于task容器內存,首先調大新生代與老生代內存比例. eden和生長區比例: -XX:SurvivorRatio # yarn 給nodemanager可用的物理內存 ~~~ Name: yarn.nodemanager.resource.memory-mb Value: 8192 ~~~ 單個任務可申請的最少內存 ~~~ Name: Yarn.scheduler.minimum-allocation-mb Value: 1024 ~~~ 單個任務可申請的最大內存 ~~~ Name: yarn.scheduler.maximum-allocation-mb Value: 8192 ~~~ yarn這個節點可使用的虛擬CPU個數,默認是8,但我們通常配置成跟物理CPU個數一樣 ~~~ Yarn.nodemanager.resource.cpu-vcores Value:4 ~~~ # 數據緩沖區 **環形緩沖區的閾值** ~~~ Mapreduce.map.sort.spill,percent默認0.8,可以調整為0.6 ~~~ **內部排序緩沖區大小** ~~~ mapreduce.task.io.sort.mb 默認100M,可以適當調大一些 ~~~ IO.file.buffer.size默認值4096(4k),hadoop集群緩沖區大小,hdfs文件讀寫,mapreduce程序環形緩沖區等.緩沖區大小嚴重影響執行效率,建議調整到95536-131072
                  <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>

                              哎呀哎呀视频在线观看