Hadoop作業調優引數
第一部分:core-site.xml
•core-site.xml為Hadoop的核心屬性檔案,引數為Hadoop的核心功能,獨立於HDFS與MapReduce。
引數列表
•fs.default.name
•預設值 file:///
•說明:設定Hadoop namenode的hostname及port,預設是Standalone mode,如果是偽分散式檔案系統要設定成
hdfs://localhost:9000,如果使用叢集模式則配置為 hdfs://hostname:9000
•hadoop.tmp.dir
•預設值/tmp/hadoop-${user.name}
•會在tmp下根據username生成不同的目錄
•fs.checkpoint.dir
•預設值${hadoop.tmp.dir}/dfs/namesecondary
•Sencondary NameNode 映象儲存目錄
•fs.checkpoint.period
•預設值: 3600(秒)
• 控制 secondary namenode 的 checkpoint 時間間隔。如果距離上次 checkpoint 的時間大於這個引數的設定,就會觸發 checkpoint。secondary namenode 會把 namenode 的 fsimage 和 editlog 做 snapshot。如果存取 Hadoop 的次數頻繁或為了減少重起 namenode 的 downtime,可以把這個值設小一點。
•fs.checkpoint.size
•預設值67108864(byte)
•如果 Hadoop 非常的忙碌,editlog 可能會在短時間內變的很大,fs.checkpoint.period 的設定不見得可以完全預測這個狀況,所以保險的做法會多設定這個值,以保證當資料大到超過 fs.checkpoint.size 的值也會觸發 checkpoint。
•io.file.buffer.size
•預設值 4096
•這是讀寫 sequence file 的 buffer size, 可減少 I/O 次數。在大型的 Hadoop cluster,建議可設定為 65536 到 131072。
•ipc.client.connection.maxidletime
•預設值 10000(毫秒)
•設定 Hadoop client 連線時最大的閒置,預設是是 10 秒。如果 Hadoop cluster 的網路聯絡不穩,可以把這個值設到 60000(60秒)
•ipc.server.tcpnodelay
•預設值 false
•在 Hadoop server 是否啟動 Nagle’s 演算法。設 true 會 disable 這個演演算法,關掉會減少延遲,但是會增加小資料包的傳輸。server site 不太需要這定這個值。
•hadoop.security.authorization
•預設值 false
•是不是要開啟 賬號驗證機制,開啟之後 Hadoop 在執行任何動作之前都會先確認是否有許可權。詳細的許可權設定會放在 hadoop-policy.xml 裡。例如要讓 fenriswolf 這個 account 及 mapreduce group 可以 submit M/R jobs,要設定security.job.submission.protocol.acl
•hadoop.security.authentication
•預設值 simple
• simple 表示沒有 authentication,Hadoop 會用 system account 及 group 來控管q許可權。另外可以指定為 kerberos,這部分相對比較複雜,要有一個 kerberos server 併產生 account keytab,在執行任何操作前 client 要先用 kinit 指令對 kerberos server 認證,之後的任何操作都是以 kerberos account 來執行。
•fs.trash.interval
•預設值 0(分)
•清掉垃圾筒的時間。預設是不清, 所以在刪除檔案時要自己執行
•hadoop.native.lib
•預設值 true
• 預設 Hadoop 會去找所有可用的 native libraries 並自動 load 進來使用,例如壓縮類的 libraries 像 GZIP, LZO 等等。
第二部分:hdfs-site.xml
引數列表
•dfs.block.size
•預設值67108864(位元組)
•預設每個 block 是 64MB。如果確定存取的檔案塊都很大可以改為 134217728(128MB)。Client 也可自行決定要使用的 block size 而不需要更改整個 cluster 的設定。
•dfs.safemode.threshold.pct
•預設值 0.999f
• Hadoop 啟動時會進入 safe mode,也就是安全模式,這時是不能寫入資料的。只有當99.9% 的 blocks 達到最小的 dfs.replication.min 數量(預設是3)才會離開safe mode。在 dfs.replication.min 設的比較大或 data nodes 數量比較多時會等比較久。
•dfs.namenode.handler.count
•預設值 10
•設定 namenode server threads 的數量,這些 threads 會用 RPC 跟其他的 datanodes 溝通。當 datanodes 數量太多時會發現很容易出現RPC timeout,解決方法是提升網路速度或提高這個值,但要注意的是 thread 數量多也表示 namenode 消耗的記憶體也隨著增加
•dfs.datanode.handler.count
•預設值 3
• 指定 data node 上用的 thread 數量。
•dfs.datanode.max.xcievers
•預設值 256
•這個值是指定 datanode 可同時處理的最大檔案數量、
•dfs.datanode.du.reserved
•預設值 0
•預設值表示 data nodes 會使用整個 磁碟,寫滿之後會導致無法再寫入 M/R jobs。如果還有其他程式共用這些目錄也會受到影響。建議保留至少 1073741824(1G) 的空間。
第三部分:mapred-site.xml
引數列表
•io.sort.mb
•預設值100
•快取map中間結果的buffer大小(in MB)
•io.sort.record.percent
•預設值 0.05
•io.sort.mb中用來儲存map output記錄邊界的百分比,其他快取用來儲存資料
•io.sort.spill.percent
•預設值0.80
•map開始做spill操作的閾值
•io.sort.factor
•預設值 10
•做merge操作時同時操作的stream數上限。
•min.num.spill.for.combine
•預設值3
•combiner函式執行的最小spill數
•mapred.compress.map.output
•預設值 false
•map中間結果是否採用壓縮
•mapred.map.output.compression.codec
•org.apache.hadoop.io.compress.DefaultCodec
•min.num.spill.for.combine
•預設值3
•combiner函式執行的最小spill數
•mapred.compress.map.output
•預設值 false
•map中間結果是否採用壓縮
•mapred.map.output.compression.codec
•org.apache.hadoop.io.compress.DefaultCodec
•mapred.reduce.parallel.copies
•預設值5
•每個reduce並行下載map結果的最大執行緒數
•mapred.reduce.copy.backoff
•預設值 300
•reduce下載執行緒最大等待時間(in sec)
•io.sort.factor
•預設值10
•org.apache.hadoop.io.compress.DefaultCodec
•mapred.job.shuffle.input.buffer.percent
•預設值0.7
•用來快取shuffle資料的reduce task heap百分比
•mapred.job.shuffle.merge.percent
•預設值 0.66
•快取的記憶體中多少百分比後開始做merge操作
•mapred.job.reduce.input.buffer.percent
•預設值0.0
•sort完成後reduce計算階段用來快取資料的百分比
•core-site.xml為Hadoop的核心屬性檔案,引數為Hadoop的核心功能,獨立於HDFS與MapReduce。
引數列表
•fs.default.name
•預設值 file:///
•說明:設定Hadoop namenode的hostname及port,預設是Standalone mode,如果是偽分散式檔案系統要設定成
hdfs://localhost:9000,如果使用叢集模式則配置為 hdfs://hostname:9000
•hadoop.tmp.dir
•預設值/tmp/hadoop-${user.name}
•會在tmp下根據username生成不同的目錄
•fs.checkpoint.dir
•預設值${hadoop.tmp.dir}/dfs/namesecondary
•Sencondary NameNode 映象儲存目錄
•fs.checkpoint.period
•預設值: 3600(秒)
• 控制 secondary namenode 的 checkpoint 時間間隔。如果距離上次 checkpoint 的時間大於這個引數的設定,就會觸發 checkpoint。secondary namenode 會把 namenode 的 fsimage 和 editlog 做 snapshot。如果存取 Hadoop 的次數頻繁或為了減少重起 namenode 的 downtime,可以把這個值設小一點。
•fs.checkpoint.size
•預設值67108864(byte)
•如果 Hadoop 非常的忙碌,editlog 可能會在短時間內變的很大,fs.checkpoint.period 的設定不見得可以完全預測這個狀況,所以保險的做法會多設定這個值,以保證當資料大到超過 fs.checkpoint.size 的值也會觸發 checkpoint。
•io.file.buffer.size
•預設值 4096
•這是讀寫 sequence file 的 buffer size, 可減少 I/O 次數。在大型的 Hadoop cluster,建議可設定為 65536 到 131072。
•ipc.client.connection.maxidletime
•預設值 10000(毫秒)
•設定 Hadoop client 連線時最大的閒置,預設是是 10 秒。如果 Hadoop cluster 的網路聯絡不穩,可以把這個值設到 60000(60秒)
•ipc.server.tcpnodelay
•預設值 false
•在 Hadoop server 是否啟動 Nagle’s 演算法。設 true 會 disable 這個演演算法,關掉會減少延遲,但是會增加小資料包的傳輸。server site 不太需要這定這個值。
•hadoop.security.authorization
•預設值 false
•是不是要開啟 賬號驗證機制,開啟之後 Hadoop 在執行任何動作之前都會先確認是否有許可權。詳細的許可權設定會放在 hadoop-policy.xml 裡。例如要讓 fenriswolf 這個 account 及 mapreduce group 可以 submit M/R jobs,要設定security.job.submission.protocol.acl
•hadoop.security.authentication
•預設值 simple
• simple 表示沒有 authentication,Hadoop 會用 system account 及 group 來控管q許可權。另外可以指定為 kerberos,這部分相對比較複雜,要有一個 kerberos server 併產生 account keytab,在執行任何操作前 client 要先用 kinit 指令對 kerberos server 認證,之後的任何操作都是以 kerberos account 來執行。
•fs.trash.interval
•預設值 0(分)
•清掉垃圾筒的時間。預設是不清, 所以在刪除檔案時要自己執行
•hadoop.native.lib
•預設值 true
• 預設 Hadoop 會去找所有可用的 native libraries 並自動 load 進來使用,例如壓縮類的 libraries 像 GZIP, LZO 等等。
第二部分:hdfs-site.xml
引數列表
•dfs.block.size
•預設值67108864(位元組)
•預設每個 block 是 64MB。如果確定存取的檔案塊都很大可以改為 134217728(128MB)。Client 也可自行決定要使用的 block size 而不需要更改整個 cluster 的設定。
•dfs.safemode.threshold.pct
•預設值 0.999f
• Hadoop 啟動時會進入 safe mode,也就是安全模式,這時是不能寫入資料的。只有當99.9% 的 blocks 達到最小的 dfs.replication.min 數量(預設是3)才會離開safe mode。在 dfs.replication.min 設的比較大或 data nodes 數量比較多時會等比較久。
•dfs.namenode.handler.count
•預設值 10
•設定 namenode server threads 的數量,這些 threads 會用 RPC 跟其他的 datanodes 溝通。當 datanodes 數量太多時會發現很容易出現RPC timeout,解決方法是提升網路速度或提高這個值,但要注意的是 thread 數量多也表示 namenode 消耗的記憶體也隨著增加
•dfs.datanode.handler.count
•預設值 3
• 指定 data node 上用的 thread 數量。
•dfs.datanode.max.xcievers
•預設值 256
•這個值是指定 datanode 可同時處理的最大檔案數量、
•dfs.datanode.du.reserved
•預設值 0
•預設值表示 data nodes 會使用整個 磁碟,寫滿之後會導致無法再寫入 M/R jobs。如果還有其他程式共用這些目錄也會受到影響。建議保留至少 1073741824(1G) 的空間。
第三部分:mapred-site.xml
引數列表
•io.sort.mb
•預設值100
•快取map中間結果的buffer大小(in MB)
•io.sort.record.percent
•預設值 0.05
•io.sort.mb中用來儲存map output記錄邊界的百分比,其他快取用來儲存資料
•io.sort.spill.percent
•預設值0.80
•map開始做spill操作的閾值
•io.sort.factor
•預設值 10
•做merge操作時同時操作的stream數上限。
•min.num.spill.for.combine
•預設值3
•combiner函式執行的最小spill數
•mapred.compress.map.output
•預設值 false
•map中間結果是否採用壓縮
•mapred.map.output.compression.codec
•org.apache.hadoop.io.compress.DefaultCodec
•min.num.spill.for.combine
•預設值3
•combiner函式執行的最小spill數
•mapred.compress.map.output
•預設值 false
•map中間結果是否採用壓縮
•mapred.map.output.compression.codec
•org.apache.hadoop.io.compress.DefaultCodec
•mapred.reduce.parallel.copies
•預設值5
•每個reduce並行下載map結果的最大執行緒數
•mapred.reduce.copy.backoff
•預設值 300
•reduce下載執行緒最大等待時間(in sec)
•io.sort.factor
•預設值10
•org.apache.hadoop.io.compress.DefaultCodec
•mapred.job.shuffle.input.buffer.percent
•預設值0.7
•用來快取shuffle資料的reduce task heap百分比
•mapred.job.shuffle.merge.percent
•預設值 0.66
•快取的記憶體中多少百分比後開始做merge操作
•mapred.job.reduce.input.buffer.percent
•預設值0.0
•sort完成後reduce計算階段用來快取資料的百分比
相關文章
- Hadoop引數調優Hadoop
- hadoop之 引數調優Hadoop
- 調優引數
- 數倉調優實戰:GUC引數調優
- mysql 引數調優MySql
- JVM 引數調優(qbit)JVM
- 1,Spark引數調優Spark
- JVM常用調優引數JVM
- Hadoop2.7實戰v1.0之JVM引數調優HadoopJVM
- Hadoop2.7實戰v1.0之Linux引數調優HadoopLinux
- irace package -- 引數調優神器Package
- Linux核心引數調優Linux
- linux 效能調優引數Linux
- Spark應用程式開發引數調優深入剖析-Spark商業調優實戰Spark
- swoole優化核心引數調整優化
- MySQL引數調優最佳實踐MySql
- Oracle記憶體引數調優Oracle記憶體
- Spark Streaming調優引數及最佳實踐深入剖析-Spark商業調優實戰Spark
- hadoop 調優1Hadoop
- nginx引數調優能提升多少效能Nginx
- RDS MySQL引數調優最佳實踐MySql
- 關於Hadoop調優Hadoop
- Hadoop-調優剖析Hadoop
- HBase 核心元件協調及RegionServer JVM引數調優-OLAP商業環境實戰元件ServerJVM
- Linux核心調優部分引數說明Linux
- linux系統引數調優全解析Linux
- 大資料叢集核心引數調優大資料
- 常用的 jvm 調優的引數都有哪些JVM
- hadoop叢集搭建配置檔案優化引數Hadoop優化
- kafka生產者Producer引數設定及引數調優建議-kafka 商業環境實戰Kafka
- SAP ECC6.0記憶體引數調整和調優記憶體
- JVM調優引數、方法、工具以及案例總結JVM
- MySQL 8.x伺服器引數調優MySql伺服器
- AIX作業系統核心引數配置AI作業系統
- 查詢hadoop引數變數Hadoop變數
- kafka消費者Consumer引數設定及引數調優建議-kafka 商業環境實戰Kafka
- JVM效能調優的6大步驟,及關鍵調優引數詳解JVM
- weblogic執行緒池引數調優配置方法Web執行緒