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/localhost@$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槽位數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM