hadoop 常用配置項【轉】

來源:互聯網
上載者:User

標籤:

hadoop 常用配置項【轉】core-site.xml

 

 

 name value  Description 
 fs.default.name hdfs://hadoopmaster:9000 定義HadoopMaster的URI和連接埠
 fs.checkpoint.dir /opt/data/hadoop1/hdfs/namesecondary1 定義hadoop的name備份的路徑,官方文檔說是讀取這個,寫入dfs.name.dir
 fs.checkpoint.period 1800 定義name備份的備份間隔時間,秒為單位,只對snn生效,預設一小時
 fs.checkpoint.size 33554432 以日誌大小間隔做備份間隔,只對snn生效,預設64M
 io.compression.codecs

org.apache.hadoop.io.compress.DefaultCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec,
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec
(排版調整,實際配置不要斷行符號)

Hadoop所使用的轉碼器,gzip和bzip2為內建,lzo需安裝hadoopgpl或者kevinweil,逗號分隔,snappy也需要單獨安裝
 io.compression.codec.lzo.class com.hadoop.compression.lzo.LzoCodec LZO所使用的壓縮編碼器 
 topology.script.file.name /hadoop/bin/RackAware.py 機架感知指令碼位置 
 topology.script.number.args 1000 機架感知指令碼管理的主機數,IP地址 
 fs.trash.interval 10800 HDFS垃圾箱設定,可以恢複誤刪除,分鐘數,0為禁用,添加該項無需重啟hadoop
 hadoop.http.filter.initializers

org.apache.hadoop.security.
AuthenticationFilterInitializer
(排版調整,實際配置不要斷行符號)

需要jobtracker,tasktracker
namenode,datanode等http訪問連接埠使用者驗證使用,需配置所有節點

 hadoop.http.authentication.type simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME# 驗證方式,預設為簡單,也可自己定義class,需配置所有節點
 hadoop.http.authentication.
token.validity
(排版調整,實際配置不要斷行符號)
36000 驗證令牌的有效時間,需配置所有節點
 hadoop.http.authentication.
signature.secret
(排版調整,實際配置不要斷行符號)
預設可不寫參數 預設不寫在hadoop啟動時自動產生私密簽名,需配置所有節點
 hadoop.http.authentication.cookie.domain domian.tld http驗證所使用的cookie的網域名稱,IP地址訪問則該項無效,必須給所有節點都佈建網域名才可以。
 hadoop.http.authentication.
 simple.anonymous.allowed
(排版調整,實際配置不要斷行符號)
true | false 簡單驗證專用,預設允許匿名訪問,true

 hadoop.http.authentication.
kerberos.principal
(排版調整,實際配置不要斷行符號)

HTTP/[email protected]$LOCALHOST Kerberos驗證專用,參加認證的實體機必須使用HTTP作為K的Name
 hadoop.http.authentication.
kerberos.keytab
(排版調整,實際配置不要斷行符號)
/home/xianglei/hadoop.keytab Kerberos驗證專用,密鑰檔案存放位置
 hadoop.security.authorization true|false Hadoop服務層級驗證安全驗證,需配合hadoop-policy.xml使用,配置好以後用dfsadmin,mradmin -refreshServiceAcl重新整理生效
 io.file.buffer.size 131072 用作序列化檔案處理時讀寫buffer的大小
 hadoop.security.authentication simple | kerberos hadoop本身的許可權驗證,非http訪問,simple或者kerberos
 hadoop.logfile.size 1000000000 設定記錄檔大小,超過則滾動新日誌
 hadoop.logfile.count 20 最大日誌數
 io.bytes.per.checksum 1024 每校正碼所校正的位元組數,不要大於io.file.buffer.size
 io.skip.checksum.errors true | false 處理序列化檔案時跳過校正碼錯誤,不拋異常。預設false
 io.serializations

org.apache.hadoop.io.
serializer.WritableSerialization

(排版需要。實際配置不要斷行符號)

序列化的轉碼器
 io.seqfile.compress.blocksize 1024000 塊壓縮的序列化檔案的最小塊大小,位元組
 webinterface.private.actions true | false 設為true,則JT和NN的tracker網頁會出現殺任務刪檔案等操作串連,預設是false

hdfs

 

 name  value Description 
dfs.default.chunk.view.size 32768 namenode的http訪問頁面中針對每個檔案的內容顯示大小,通常無需設定。
dfs.datanode.du.reserved 1073741824 每塊磁碟所保留的空間大小,需要設定一些,主要是給非hdfs檔案使用,預設是不保留,0位元組
dfs.name.dir /opt/data1/hdfs/name,
/opt/data2/hdfs/name,
/nfs/data/hdfs/name
NN所使用的中繼資料儲存,一般建議在nfs上保留一份,作為1.0的HA方案使用,也可以在一台伺服器的多塊硬碟上使用
dfs.web.ugi nobody,nobody NN,JT等所使用的web tracker頁面伺服器所使用的使用者和組
dfs.permissions true | false dfs許可權是否開啟,我一般設定false,通過開發工具培訓別人介面操作避免誤操作,設定為true有時候會遇到資料因為許可權訪問不了。
dfs.permissions.supergroup supergroup 設定hdfs超級許可權的組,預設是supergroup,啟動hadoop所使用的使用者通常是superuser。
dfs.data.dir /opt/data1/hdfs/data,
/opt/data2/hdfs/data,
/opt/data3/hdfs/data,
...
真正的datanode資料儲存路徑,可以寫多塊硬碟,逗號分隔
dfs.datanode.data.dir.perm 755 datanode所使用的本地檔案夾的路徑許可權,預設755
dfs.replication 3 hdfs資料區塊的複製份數,預設3,理論上份數越多跑數速度越快,但是需要的儲存空間也更多。有錢人可以調5或者6
dfs.replication.max 512 有時dn臨時故障恢複後會導致資料超過預設備份數。複製份數的最多數,通常沒什麼用,不用寫設定檔裡。
dfs.replication.min 1 最小份數,作用同上。
dfs.block.size 134217728 每個檔案塊的大小,我們用128M,預設是64M。這個計算需要128*1024^2,我碰上過有人直接寫128000000,十分浪漫。
dfs.df.interval 60000 磁碟用量統計自動重新整理時間,單位是毫秒。
dfs.client.block.write.retries 3 資料區塊寫入的最多重試次數,在此次數之前不會捕獲失敗。
dfs.heartbeat.interval 3 DN的心跳檢測時間間隔。秒
dfs.namenode.handler.count 10 NN啟動後展開的線程數。
dfs.balance.bandwidthPerSec 1048576 做balance時所使用的每秒最大頻寬,使用位元組作為單位,而不是bit
dfs.hosts /opt/hadoop/conf/hosts.allow 一個主機名稱列表檔案,這裡的主機是允許串連NN的,必須寫絕對路徑,檔案內容為空白則認為全都可以。
dfs.hosts.exclude /opt/hadoop/conf/hosts.deny 基本原理同上,只不過這裡放的是禁止訪問NN的主機名稱列表。這在從叢集中摘除DN會比較有用。
dfs.max.objects 0 dfs最大並發對象數,HDFS中的檔案,目錄塊都會被認為是一個對象。0表示不限制
dfs.replication.interval 3 NN計算複製塊的內部間隔時間,通常不需寫入設定檔。預設就好
dfs.support.append true | false 新的hadoop支援了檔案的APPEND操作,這個就是控制是否允許檔案APPEND的,但是預設是false,理由是追加還有bug。
dfs.datanode.failed.volumes.tolerated 0 能夠導致DN掛掉的壞硬碟最大數,預設0就是只要有1個硬碟壞了,DN就會shutdown。
dfs.secondary.http.address 0.0.0.0:50090 SNN的tracker頁面監聽地址和連接埠
dfs.datanode.address 0.0.0.0:50010 DN的服務監聽連接埠,連接埠為0的話會隨機監聽連接埠,通過心跳通知NN
dfs.datanode.http.address 0.0.0.0:50075 DN的tracker頁面監聽地址和連接埠
dfs.datanode.ipc.address 0.0.0.0:50020 DN的IPC監聽連接埠,寫0的話監聽在隨機連接埠通過心跳傳輸給NN
dfs.datanode.handler.count 3 DN啟動的服務線程數
dfs.http.address 0.0.0.0:50070 NN的tracker頁面監聽地址和連接埠
dfs.https.enable true | false NN的tracker是否監聽在HTTPS協議,預設false
dfs.datanode.https.address 0.0.0.0:50475 DN的HTTPS的tracker頁面監聽地址和連接埠
dfs.https.address 0.0.0.0:50470 NN的HTTPS的tracker頁面監聽地址和連接埠
dfs.datanode.max.xcievers 2048 相當於linux下的開啟檔案最大數量,文檔中無此參數,當出現DataXceiver報錯的時候,需要調大。預設256

 

 

name value Description
hadoop.job.history.location   job曆史檔案儲存路徑,無可配置參數,也不用寫在設定檔裡,預設在logs的history檔案夾下。
hadoop.job.history.user.location   使用者曆史檔案存放位置
io.sort.factor 30 這裡處理流合并時的檔案排序數,我理解為排序時開啟的檔案數
io.sort.mb 600 排序所使用的記憶體數量,單位兆,預設1,我記得是不能超過mapred.child.java.opt設定,否則會OOM
mapred.job.tracker hadoopmaster:9001 串連jobtrack伺服器的配置項,預設不寫是local,map數1,reduce數1
mapred.job.tracker.http.address 0.0.0.0:50030 jobtracker的tracker頁面服務監聽地址
mapred.job.tracker.handler.count 15 jobtracker服務的線程數
mapred.task.tracker.report.address 127.0.0.1:0 tasktracker監聽的伺服器,無需配置,且官方不建議自行修改
mapred.local.dir /data1/hdfs/mapred/local,
/data2/hdfs/mapred/local,
...
mapred做本地計算所使用的檔案夾,可以配置多塊硬碟,逗號分隔
mapred.system.dir /data1/hdfs/mapred/system,
/data2/hdfs/mapred/system,
...
mapred存放控制檔案所使用的檔案夾,可配置多塊硬碟,逗號分隔。
mapred.temp.dir /data1/hdfs/mapred/temp,
/data2/hdfs/mapred/temp,
...
mapred共用的臨時檔案夾路徑,解釋同上。
mapred.local.dir.minspacestart 1073741824 本地運算檔案夾剩餘空間低於該值則不在本地做計算。位元組配置,預設0
mapred.local.dir.minspacekill 1073741824 本地計算檔案夾剩餘空間低於該值則不再申請新的任務,位元組數,預設0
mapred.tasktracker.expiry.interval 60000 TT在這個時間內沒有發送心跳,則認為TT已經掛了。單位毫秒
mapred.map.tasks 2 預設每個job所使用的map數,意思是假設設定dfs塊大小為64M,需要排序一個60M的檔案,也會開啟2個map線程,當jobtracker設定為本地是不起作用。
mapred.reduce.tasks 1 解釋同上
mapred.jobtracker.restart.recover true | false 重啟時開啟任務恢複,預設false
mapred.jobtracker.taskScheduler org.apache.hadoop.mapred.
CapacityTaskScheduler

org.apache.hadoop.mapred.
JobQueueTaskScheduler

org.apache.hadoop.mapred.
FairScheduler
重要的東西,開啟工作管理員,不設定的話,hadoop預設是FIFO調度器,其他可以使用公平和計算能力調度器
mapred.reduce.parallel.copies 10 reduce在shuffle階段使用的並行複製數,預設5
mapred.child.java.opts

-Xmx2048m

-Djava.library.path=
/opt/hadoopgpl/native/
Linux-amd64-64

每個TT子進程所使用的虛擬機器記憶體大小
tasktracker.http.threads 50 TT用來跟蹤task任務的http server的線程數
mapred.task.tracker.http.address 0.0.0.0:50060 TT預設監聽的httpIP和連接埠,預設可以不寫。連接埠寫0則隨機使用。
mapred.output.compress true | false 任務結果採用壓縮輸出,預設false,建議false
mapred.output.compression.codec org.apache.hadoop.io.
compress.DefaultCodec
輸出結果所使用的轉碼器,也可以用gz或者bzip2或者lzo或者snappy等
mapred.compress.map.output true | false map輸出結果在進行網路交換前是否以壓縮格式輸出,預設false,建議true,可以減小頻寬佔用,代價是會慢一些。
mapred.map.output.compression.codec com.hadoop.compression.
lzo.LzoCodec
map階段壓縮輸出所使用的轉碼器
map.sort.class org.apache.hadoop.util.
QuickSort
map輸出排序所使用的演算法,預設快排。
mapred.hosts conf/mhost.allow 允許串連JT的TT伺服器列表,空值全部允許
mapred.hosts.exclude conf/mhost.deny 禁止串連JT的TT列表,節點摘除是很有作用。
mapred.queue.names ETL,rush,default 配合調度器使用的隊列名列表,逗號分隔
mapred.tasktracker.map.
tasks.maximum
12 每伺服器允許啟動的最大map槽位元。
mapred.tasktracker.reduce.
tasks.maximum
6 每伺服器允許啟動的最大reduce槽位元

hadoop 常用配置項【轉】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.