(轉)hadoop 配置文件解釋


借鑒:https://blog.csdn.net/wangming520liwei/article/details/78923216


Hadoop 參數配置 詳解

 


一、常用端口

組件

節點 

默認端口

配置

用途說明

HDFS

DataNode

50010

dfs.datanode.address

datanode服務端口,用於數據傳輸

HDFS

DataNode

50075

dfs.datanode.http.address

http服務的端口

HDFS

DataNode

50475

dfs.datanode.https.address

https服務的端口

HDFS

DataNode

50020

dfs.datanode.ipc.address

ipc服務的端口

HDFS

NameNode

50070

dfs.namenode.http-address

http服務的端口

HDFS

NameNode

50470

dfs.namenode.https-address

https服務的端口

HDFS

NameNode

8020

fs.defaultFS

接收Client連接的RPC端口,用於獲取文件系統metadata信息。

HDFS

journalnode

8485

dfs.journalnode.rpc-address

RPC服務

HDFS

journalnode

8480

dfs.journalnode.http-address

HTTP服務

HDFS

ZKFC

8019

dfs.ha.zkfc.port

ZooKeeper FailoverController,用於NN HA

YARN

ResourceManager

8032

yarn.resourcemanager.address

RM的applications manager(ASM)端口,ResourceManager對客戶端暴露的地址。客戶端通過該地址向RM提交應用程序,殺死應用程序等

YARN

ResourceManager

8030

yarn.resourcemanager.scheduler.address

scheduler組件的IPC端口,ResourceManager對ApplicationMaster暴露的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等。

YARN

ResourceManager

8031

yarn.resourcemanager.resource-tracker.address

IPC

ResourceManager對NodeManager暴露的地址.。NodeManager通過該地址向RM匯報心跳,領取任務等。

YARN

ResourceManager

8033

yarn.resourcemanager.admin.address

IPC

ResourceManager 對管理員暴露的訪問地址。管理員通過該地址向RM發送管理命令等。

YARN

ResourceManager

8088

yarn.resourcemanager.webapp.address

http服務端口

ResourceManager對外web ui地址。用戶可通過該地址在瀏覽器中查看集群各類信息。

YARN

NodeManager

8040

yarn.nodemanager.localizer.address

localizer IPC

YARN

NodeManager

8042

yarn.nodemanager.webapp.address

http服務端口

YARN

NodeManager

8041

yarn.nodemanager.address

NM中container manager的端口

YARN

JobHistory Server

10020

mapreduce.jobhistory.address

IPC

YARN

JobHistory Server

19888

mapreduce.jobhistory.webapp.address

http服務端口

HBase

Master

60000

hbase.master.port

IPC

HBase

Master

60010

hbase.master.info.port

http服務端口

HBase

RegionServer

60020

hbase.regionserver.port

IPC

HBase

RegionServer

60030

hbase.regionserver.info.port

http服務端口

HBase

HQuorumPeer

2181

hbase.zookeeper.property.clientPort

HBase-managed ZK mode,使用獨立的ZooKeeper集群則不會啟用該端口。

HBase

HQuorumPeer

2888

hbase.zookeeper.peerport

HBase-managed ZK mode,使用獨立的ZooKeeper集群則不會啟用該端口。

HBase

HQuorumPeer

3888

hbase.zookeeper.leaderport

HBase-managed ZK mode,使用獨立的ZooKeeper集群則不會啟用該端口。

Hive

Metastore

9083

/etc/default/hive-metastore中export PORT=<port>來更新默認端口

 

Hive

HiveServer

10000

/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>來更新默認端口

 

ZooKeeper

Server

2181

/etc/zookeeper/conf/zoo.cfg中clientPort=<port>

對客戶端提供服務的端口

ZooKeeper

Server

2888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],標藍部分

follower用來連接到leader,只在leader上監聽該端口。

ZooKeeper

Server

3888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],標藍部分

用於leader選舉的。只在electionAlg是1,2或3(默認)時需要。


補充 參數:


組件

節點 

缺省值

配置

用途說明

YARN

NodeManager

8192

yarn.nodemanager.resource.memory-mb

NodeManager總的可用物理內存。注意,該參數是不可修改的,一旦設置,整個運行過程中不 可動態修改。另外,該參數的默認值是8192MB,即使你的機器內存不夠8192MB,YARN也會按照這些內存來使用,因此,這個值通過一 定要配置。不過,Apache已經正在嘗試將該參數做成可動態修改的。

YARN

NodeManager

2.1

yarn.nodemanager.vmem-pmem-ratio

每使用1MB物理內存,最多可用的虛擬內存數。

YARN

NodeManager 8

yarn.nodemanager.resource.cpu-vcores

NodeManager總的可用虛擬CPU個數

YARN

NodeManager

${hadoop.tmp.dir}/nm-local-dir

yarn.nodemanager.local-dirs

中間結果存放位置,類似於1.0中的mapred.local.dir。注意,這個參數通常會配置多個目錄,已分攤磁盤IO負載。

YARN

NodeManager

10800(3小時)

yarn.nodemanager.log.retain-seconds

NodeManager上日志最多存放時間(不啟用日志聚集功能時有效)。

YARN

NodeManager   yarn.nodemanager.aux-services NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,才可運行MapReduce程序

YARN

NodeManager 1024/8192 yarn.scheduler.minimum-allocation-mb/ yarn.scheduler.maximum-allocation-mb 單個可申請的最小/最大內存資源量。比如設置為1024和3072,則運行MapRedce作業時,每個Task最少可申請1024MB內存,最多可申請3072MB內存。

YARN

NodeManager   yarn.scheduler.minimum-allocation-vcores / yarn.scheduler.maximum-allocation-vcores 單個可申請的最小/最大虛擬CPU個數。比如設置為1和4,則運行MapRedce作業時,每個Task最少可申請1個虛擬CPU,最多可申請4個虛擬CPU。什么是虛擬CPU,查看:http://dongxicheng.org/mapreduce-nextgen/yarnmrv2-resource-manager-resource-manager/

       

     


     


     

 


       


       


       

     



       


       



 





   



















   

 





 



 





   



   







MapReduce參數配置


參數名稱

缺省值

說明

mapreduce.job.name

 

作業名稱

mapreduce.job.priority

NORMAL

作業優先級

yarn.app.mapreduce.am.resource.mb

1536

MR ApplicationMaster占用的內存量

yarn.app.mapreduce.am.resource.cpu-vcores

1

MR ApplicationMaster占用的虛擬CPU個數

mapreduce.am.max-attempts

2

MR ApplicationMaster最大失敗嘗試次數

mapreduce.map.memory.mb

1024

每個Map Task需要的內存量

mapreduce.map.cpu.vcores

1

每個Map Task需要的虛擬CPU個數

mapreduce.map.maxattempts

4

Map Task最大失敗嘗試次數

mapreduce.reduce.memory.mb

1024

每個Reduce Task需要的內存量

mapreduce.reduce.cpu.vcores

1

每個Reduce Task需要的虛擬CPU個數

mapreduce.reduce.maxattempts

4

Reduce Task最大失敗嘗試次數

mapreduce.map.speculative

false

是否對Map Task啟用推測執行機制

mapreduce.reduce.speculative

false

是否對Reduce Task啟用推測執行機制

mapreduce.job.queuename

default

作業提交到的隊列

mapreduce.task.io.sort.mb

100

任務內部排序緩沖區大小

mapreduce.map.sort.spill.percent

0.8

Map階段溢寫文件的閾值(排序緩沖區大小的百分比)

mapreduce.reduce.shuffle.parallelcopies

5

Reduce Task啟動的並發拷貝數據的線程數目












參考文檔:

core-site.xml  

hadoop.common.configuration.version

 

描述: 配置文件的版本。

 

hadoop.tmp.dir=/tmp/hadoop-${user.name}

 

描述:Hadoop的臨時目錄,其它目錄會基於此路徑。本地目錄。

只可以設置一個值;建議設置到一個足夠空間的地方,而不是默認的/tmp
服務端參數,修改需重啟

 

hadoop.security.authorization=false

 

是否開啟安全服務驗證。

建議不開啟。認證操作比較復雜,在公司內部網絡下,重要性沒那么高

 

io.file.buffer.size=4096

 

在讀寫文件時使用的緩存大小。這個大小應該是內存Page的倍數。

建議1M

 

 

io.compression.codecs=null

 

壓縮和解壓縮編碼類列表,用逗號分隔。這些類是使用Java ServiceLoader加載。

 

fs.defaultFS=file:///

 

默認文件系統的名稱。URI形式。uri'sscheme需要由(fs.SCHEME.impl)指定文件系統實現類。uri'sauthority部分用來指定host, port等。默認是本地文件系統。

HA方式,這里設置服務名,例如:hdfs://mycluster1
HDFS的客戶端訪問HDFS需要此參數。

 

fs.trash.interval=0

 

以分鍾為單位的垃圾回收時間,垃圾站中數據超過此時間,會被刪除。如果是0,垃圾回收機制關閉。可以配置在服務器端和客戶端。如果在服務器端配置trash無效,會檢查客戶端配置。如果服務器端配置有效,客戶端配置會忽略。

建議開啟,建議43203天)
垃圾回收站,如有同名文件被刪除,會給文件順序編號,例如:a.txt,a.txt(1)

 

fs.trash.checkpoint.interval=0

 

以分鍾為單位的垃圾回收檢查間隔。應該小於或等於fs.trash.interval。如果是0,值等同於fs.trash.interval。每次檢查器運行,會創建新的檢查點。

 

建議設置為601小時)

 

dfs.ha.fencing.methods=null

 

HDFSHA功能的防腦裂方法。可以是內建的方法(例如shellsshfence)或者用戶定義的方法。建議使用sshfence(hadoop:9922),括號內的是用戶名和端口,注意,這需要NN2台機器之間能夠免密碼登陸

 

fences是防止腦裂的方法,保證NN中僅一個是Active的,如果2者都是Active的,新的會把舊的強制Kill

 

 

dfs.ha.fencing.ssh.private-key-files=null

 

使用sshfence時,SSH的私鑰文件。 使用了sshfence,這個必須指定

 

ha.zookeeper.quorum=null

 

Ha功能,需要一組zk地址,用逗號分隔。被ZKFailoverController使用於自動失效備援failover

 

 

9.ha.zookeeper.session-timeout.ms=5000

 

ZK連接超時。ZKFC連接ZK時用。設置一個小值可以更快的探測到服務器崩潰(crash),但也會更頻繁的觸發失效備援,在傳輸錯誤或者網絡不暢時。建議10s-30s

 

 

hadoop.http.staticuser.user=dr.who

 

在網頁界面訪問數據使用的用戶名。默認值是一個不真實存在的用戶,此用戶權限很小,不能訪問不同用戶的數據。這保證了數據安全。也可以設置為hdfshadoop等具有較高權限的用戶,但會導致能夠登陸網頁界面的人能看到其它用戶數據。實際設置請綜合考慮。如無特殊需求。使用默認值就好

 

 

fs.permissions.umask-mode=22

 

在創建文件和目錄時使用此umask值(用戶掩碼)。類linux上的文件權限掩碼。可以使用8進制數字也可以使用符號,例如:"022" (8進制,等同於以符號表示的u=rwx,g=r-x,o=r-x),或者"u=rwx,g=rwx,o="(符號法,等同於8進制的007)。注意,8進制的掩碼,和實際權限設置值正好相反,建議使用符號表示法,描述更清晰

 

 

io.native.lib.available=true

 

是否啟動Hadoop的本地庫,默認啟用。本地庫可以加快基本操作,例如IO,壓縮等。

 

 

hadoop.http.filter.initializers=org.apache.hadoop.http.lib.StaticUserWebFilter

 

HadoopHttp服務中,用逗號分隔的一組過濾器類名,每個類必須擴展自org.apache.hadoop.http.FilterInitializer。 這些組件被初始化,應用於全部用戶的JSPServlet頁面。 列表中定義的順序就是過濾器被調用的順序。

 

 

hadoop.security.authentication

 

安全驗證規則,可以是simplekerberossimple意味着不驗證。

 

 

hadoop.security.group.mapping=org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback

 

usergroup的映射類。ACL用它以給定user獲取group。默認實現是org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback,如果JNI有效,它將發揮作用,使用HadoopAPI去獲取usergroups列表。如果JNI無效,會使用另一個基於shell的實現, ShellBasedUnixGroupsMapping。這個實現是基於LinuxUnixshell的環境。

 

 

hadoop.security.groups.cache.secs=300

 

usergourp映射緩存的有效時間。如果超時,會再次調用去獲取新的映射關系然后緩存起來。

 

 

hadoop.security.service.user.name.key=null

 

如果相同的RPC協議被多個Server實現,這個配置是用來指定在客戶端進行RPC調用時,使用哪個principal name去聯系服務器。不建議使用

 

 

hadoop.security.uid.cache.secs=14400

 

安全選項。不建議使用

 

 

hadoop.rpc.protection=authentication

 

rpc連接保護。可取的值有authentication(認證), integrity(完整)and privacy(隱私)。不建議使用

 

 

hadoop.work.around.non.threadsafe.getpwuid=false

 

一些系統已知在調用getpwuid_rgetpwgid_r有問題,這些調用是非線程安全的。這個問題的主要表現特征是JVM崩潰。如果你的系統有這些問題,開啟這個選項。默認是關閉的。

 

 

hadoop.kerberos.kinit.command=kinit

 

用來定期的向Hadoop提供新的Kerberos證書。所提供命令需要能夠在運行Hadoop客戶端的用戶路徑中查找到,否則,請指定絕對路徑。不建議使用

 

 

hadoop.security.auth_to_local=null

 

映射kerberos principals(代理人)到本地用戶名

 

 

io.bytes.per.checksum=512

 

每次進行校驗和檢查的字節數。一定不能大於io.file.buffer.size.

 

 

io.skip.checksum.errors=FALSE

 

是否跳過校驗和錯誤,默認是否,校驗和異常時會拋出錯誤。

 

 

io.serializations=org.apache.hadoop.io.serializer.WritableSerialization,org.apache.hadoop.io.serializer.avro.AvroSpecificSerialization,org.apache.hadoop.io.serializer.avro.AvroReflectSerialization

 

序列化類列表,可以被用來獲取序列化器和反序列化器(serializers and deserializers)。

 

 

io.seqfile.local.dir=${hadoop.tmp.dir}/io/local

 

本地文件目錄。sequence filemerge過程中存儲內部數據的地方。可以是逗號分隔的一組目錄。最好在不同磁盤以分散IO。實際不存在的目錄會被忽略。

 

 

io.map.index.skip=0

 

跳過的索引實體數量在entry之間。默認是0。設置大於0的值可以用更少的內存打開大MapFiles。注意:MpaFile是一組Sequence文件,是排序后的,帶內部索引的文件

 

 

io.map.index.interval=128

 

MapFile包含兩個文件,數據文件和索引文件。每io.map.index.interval個記錄寫入數據文件,一條記錄(key,數據文件位置)寫入索引文件。

 

 

fs.default.name=file:///

 

過時。使用(fs.defaultFS)代替

 

 

fs.AbstractFileSystem.file.impl=org.apache.hadoop.fs.local.LocalFs

 

文件系統實現類:file

 

 

fs.AbstractFileSystem.hdfs.impl=org.apache.hadoop.fs.Hdfs

 

文件系統實現類:hdfs

 

 

fs.AbstractFileSystem.viewfs.impl=org.apache.hadoop.fs.viewfs.ViewFs

 

文件系統實現類:viewfs (例如客戶端掛載表)

 

在實現federation特性時,客戶端可以部署此系統,方便同時訪問多個nameservice

 

 

fs.ftp.host=0.0.0.0

 

Hdfs文件系統設置。暫不關注

 

 

fs.ftp.host.port=21

 

Hdfs文件系統設置。暫不關注

 

 

fs.df.interval=60000

 

磁盤使用統計刷新間隔,以毫秒為單位

 

 

fs.s3.block.size=67108864

 

Hdfs文件系統設置。暫不關注

 

 

fs.s3.buffer.dir=${hadoop.tmp.dir}/s3

 

Hdfs文件系統設置。暫不關注

 

 

fs.s3.maxRetries=4

 

Hdfs文件系統設置。暫不關注

 

 

fs.s3.sleepTimeSeconds=10

 

Hdfs文件系統設置。暫不關注

 

 

fs.automatic.close=true

 

默認的,文件系統實例在程序退出時自動關閉,通過JVM shutdown hook方式。可以把此屬性設置為false取消這種操作。這是一個高級選項,需要使用者特別關注關閉順序。不要關閉

 

 

fs.s3n.block.size=67108864

 

Hdfs文件系統設置。暫不關注

 

 

io.seqfile.compress.blocksize=1000000

 

SequenceFiles以塊壓縮方式壓縮時,塊大小大於此值時才啟動壓縮。

 

 

io.seqfile.lazydecompress=TRUE

 

懶惰解壓,僅在必要時解壓,僅對塊壓縮的SequenceFiles有效。

 

 

io.seqfile.sorter.recordlimit=1000000

 

SequenceFiles.Sorter spill過程中,保存在內存中的記錄數

 

 

io.mapfile.bloom.size=1048576

 

BloomMapFile使用的布隆過濾器內存大小。

 

 

io.mapfile.bloom.error.rate=0.005

 

BloomMapFile中使用布隆過濾器失敗比率.如果減少這個值,使用的內存會成指數增長。

 

 

hadoop.util.hash.type=murmur

 

默認Hash算法實現. 'murmur':MurmurHash, 'jenkins':JenkinsHash.

 

 

ipc.client.idlethreshold=4000

 

連接數閥值,超過此值,需要進行空閑連接檢查

 

 

ipc.client.kill.max=10

 

定義客戶端最大數量,超過會被斷開連接

 

 

ipc.client.connection.maxidletime=10000

 

毫秒,最大時間,超過后客戶端會斷開和服務器的連接。

 

 

ipc.client.connect.max.retries=10

 

客戶端連接重試次數。

 

 

ipc.client.connect.max.retries.on.timeouts=45

 

在連接超時后,客戶端連接重試次數

 

 

ipc.server.listen.queue.size=128

 

定義服務器端接收客戶端連接的監聽隊列長度

 

 

ipc.server.tcpnodelay=false

 

在服務器端開啟/關閉Nagle's算法,此算法可以延遲小數據包發送,從而達到網絡流量更有效利用。但是這對小數據包是不利的。默認關閉。建議false,即開啟Nagle算法

 

 

ipc.client.tcpnodelay=false

 

參考ipc.server.tcpnodelay,客戶端參數。或許可以考慮關閉Nagle算法,增加客戶端響應速度

 

 

hadoop.rpc.socket.factory.class.default=org.apache.hadoop.net.StandardSocketFactory

 

高級選項,暫不考慮

 

 

hadoop.rpc.socket.factory.class.ClientProtocol=null

 

高級選項,暫不考慮

 

 

hadoop.socks.server=null

 

高級選項,暫不考慮

 

 

net.topology.node.switch.mapping.impl=org.apache.hadoop.net.ScriptBasedMapping

 

機架感知實現類。

 

 

net.topology.script.file.name=null

 

配合ScriptBasedMapping使用。腳本文件。此腳本文件,輸入是ip地址,輸出是機架路徑。

 

 

net.topology.script.number.args=100

 

機架感知腳本文件的參數最大數量。腳本每次運行被傳遞的參數,每個參數是一個ip地址

 

 

net.topology.table.file.name=null

 

net.topology.script.file.name被設置為org.apache.hadoop.net.TableMapping時,可以使用此配置。文件格式是一個有兩個列的文本文件,使用空白字符分隔。第一列是DNSIP地址,第二列是機架路徑。如無指定,使用默認機架(/default-rack

 

 

file.stream-buffer-size=4096

 

hdfs文件系統,暫不關注

 

 

s3.stream-buffer-size=4096

 

hdfs文件系統,暫不關注

 

 

kfs.stream-buffer-size=4096

 

hdfs文件系統,暫不關注

 

 

ftp.stream-buffer-size=4096

 

hdfs文件系統,暫不關注

 

 

tfile.io.chunk.size=1048576

 

hdfs文件系統,暫不關注

 

 

hadoop.http.authentication.type=simple

 

Oozie Http終端安全驗證。可選值:simple | kerberos |#AUTHENTICATION_HANDLER_CLASSNAME#

 

建議simple,關閉驗證

 

 

hadoop.http.authentication.token.validity=36000

 

安全選項。暫不關注

 

 

hadoop.http.authentication.signature.secret.file=${user.home}/hadoop-http-auth-signature-secret

 

安全選項。暫不關注

 

 

hadoop.http.authentication.cookie.domain=null

 

安全選項。暫不關注

 

 

hadoop.http.authentication.simple.anonymous.allowed=TRUE

 

安全選項。暫不關注

 

 

hadoop.http.authentication.kerberos.principal=HTTP/_HOST@LOCALHOST

 

安全選項。暫不關注

 

 

hadoop.http.authentication.kerberos.keytab=${user.home}/hadoop.keytab

 

安全選項。暫不關注

 

 

dfs.ha.fencing.ssh.connect-timeout=30000

 

SSH連接超時,毫秒,僅適用於內建的sshfence fencer

 

 

ha.zookeeper.parent-znode=/hadoop-ha

 

ZK失效備援功能,需要在ZK上創建節點,這里是根節點的名稱。ZKFC會在這下面工作。注意,NameService ID會 被寫到此節點下,所以即便是開啟federation功能,也僅需要指定一個值。

 

 

ha.zookeeper.acl=world:anyone:rwcda

 

ZKFC創建的ZK節點的訪問控制權限設置。可以多個,逗號分隔。此設置和ZKCLI使用相同的格式。

 

 

ha.zookeeper.auth=null

 

ZK操作時的權限驗證。

 

 

hadoop.ssl.keystores.factory.class=org.apache.hadoop.security.ssl.FileBasedKeyStoresFactory

 

安全選項。暫不關注

 

 

hadoop.ssl.require.client.cert=FALSE

 

安全選項。暫不關注

 

 

hadoop.ssl.hostname.verifier=DEFAULT

 

安全選項。暫不關注

 

 

hadoop.ssl.server.conf=ssl-server.xml

 

安全選項。暫不關注

 

 

hadoop.ssl.client.conf=ssl-client.xml

 

安全選項。暫不關注

 

 

hadoop.ssl.enabled=FALSE

 

安全選項。暫不關注

 

 

hadoop.jetty.logs.serve.aliases=TRUE

 

是否允許在Jetty中使用別名服務。

 

 

ha.health-monitor.connect-retry-interval.ms=1000

 

HA功能的健康監控連接重試間隔

 

 

ha.health-monitor.check-interval.ms=1000

 

HA功能的健康監控連接間隔

 

 

ha.health-monitor.sleep-after-disconnect.ms=1000

 

HA功能的健康監控,在因網絡問題失去連接后休眠多久。用於避免立即重試,此時網絡問題仍在,沒有意義

 

 

ha.health-monitor.rpc-timeout.ms=45000

 

HA功能健康監控的超時時間,毫秒

 

 

ha.failover-controller.new-active.rpc-timeout.ms=60000

 

FC等待新的NN變成active狀態的超時時間。

 

 

ha.failover-controller.graceful-fence.rpc-timeout.ms=5000

 

FC等待舊的active變成standby的超時時間。

 

 

ha.failover-controller.graceful-fence.connection.retries=1

 

FC在做完美隔離是的連接重試次數(graceful fencing

 

 

ha.failover-controller.cli-check.rpc-timeout.ms=20000

 

手動運行的FC功能(從CLI)等待健康檢查、服務狀態的超時時間。

 

hdfs-site.xml

 

hadoop.hdfs.configuration.version=1

 

配置文件的版本

 

 

dfs.datanode.address=0.0.0.0:50010

 

DN服務地址和端口,用於數據傳輸。0表示任意空閑端口。

 

xferPort dfs.datanode.address 50010 數據流地址   數據傳輸 infoPort    dfs.datanode.http.address 50075 ipcPort     dfs.datanode.ipc.address 50020命令

 

 

dfs.datanode.http.address=0.0.0.0:50075

 

DNHTTP服務地址和端口。0表示任意空閑端口。

 

 

dfs.datanode.ipc.address=0.0.0.0:50020

 

DNIPC地址和端口。0表示任意空閑端口。

 

 

dfs.namenode.rpc-address=0.0.0.0:50090

 

NNRPC地址和端口

 

 

dfs.namenode.http-address=0.0.0.0:50070

 

NNHTTP地址和端口。0表示任意空閑端口。

 

 

dfs.datanode.du.reserved=0

 

每個磁盤(volume)的保留空間,字節。要注意留足夠的空間給非HDFS文件使用。建議保留磁盤容量的5%或者50G以上

 

 

dfs.namenode.name.dir.restore=FALSE

 

設置為true,允許NN嘗試恢復之前失敗的dfs.namenode.name.dir目錄。在創建checkpoint是做此嘗試。如果設置多個磁盤,建議允許

 

 

dfs.namenode.edits.dir=${dfs.namenode.name.dir}

 

本地文件,NN存放edits文件的目錄。可以是逗號分隔的目錄列表。edits文件會存儲在每個目錄,冗余安全。

 

 

dfs.namenode.shared.edits.dir=null

 

在多個NN共享存儲目錄,用於存放edits文件。這個目錄,由active寫,由standby讀,以保持命名空間數據一致。此目錄不需要是dfs.namenode.edits.dir中列出的。在非HA集群中,它不會使用。建議使用qj方式,可以不關注這個選項

 

 

dfs.namenode.edits.journal-plugin.qjournal=org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager

 

qj方式共享edits。建議使用此方式

 

 

dfs.permissions.enabled=true

 

是否在HDFS中開啟權限檢查。

 

 

dfs.permissions.superusergroup=supergroup

 

超級用戶組。僅能設置一個。

 

 

dfs.datanode.data.dir=file://${hadoop.tmp.dir}/dfs/data

 

本地磁盤目錄,HDFS數據應該存儲Block的地方。可以是逗號分隔的目錄列表(典型的,每個目錄在不同的磁盤)。這些目錄被輪流使用,一個塊存儲在這個目錄,下一個塊存儲在下一個目錄,依次循環。每個塊在同一個機器上僅存儲一份。不存在的目錄被忽略。必須創建文件夾,否則被視為不存在。

 

 

dfs.replication=3

 

數據塊副本數。此值可以在創建文件是設定,客戶端可以只有設定,也可以在命令行修改。不同文件可以有不同的副本數。默認值用於未指定時。

 

 

dfs.replication.max=512

 

最大塊副本數,不要大於節點總數。

 

 

dfs.namenode.replication.min=1

 

最小塊副本數。在上傳文件時,達到最小副本數,就認為上傳是成功的

 

 

dfs.blocksize=67108864

 

塊大小,字節。可以使用后綴: k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa)指定大小(就像128k, 512m, 1g,等待)

 

 

dfs.client.block.write.retries=3

 

客戶端寫數據到DN時,最大重試次數。超過重試次數就會報出錯誤。

 

 

dfs.client.block.write.replace-datanode-on-failure.enable=true

 

在進行pipeline寫數據(上傳數據的方式)時,如果DN或者磁盤故障,客戶端將嘗試移除失敗的DN,然后寫到剩下的磁盤。一個結果是,pipeline中的DN減少了。這個特性是添加新的DNpipeline。這是一個站點范圍的選項。當集群規模非常小時,例如3個或者更小,集群管理者可能想要禁止掉此特性。

 

 

dfs.client.block.write.replace-datanode-on-failure.policy=DEFAULT

 

此屬性僅在dfs.client.block.write.replace-datanode-on-failure.enable設置為true時有效。

 

ALWAYS: 總是添加新的DN

NEVER: 從不添加新的DN

DEFAULT: r是副本數,n是要寫的DN數。在r>=3並且floor(r/2)>=n或者r>n(前提是文件是hflushed/appended)時添加新的DN

 

dfs.heartbeat.interval=3

 

DN的心跳間隔,秒

 

 

dfs.namenode.handler.count=10

 

NN的服務線程數。用於處理RPC請求。

 

 

dfs.namenode.safemode.threshold-pct=0.999f

 

數據進入安全模式閥值,百分比,float形式,數據塊達到最小副本數(dfs.namenode.replication.min)的百分比。值小於等於0意味着在退出安全模式前不等待數據修復。大於1的值將導致無法離開安全模式。

 

 

dfs.namenode.safemode.extension=30000

 

安全模式擴展存在時間,在需要的閥值達到后,毫秒。可以設置為0,或者比較短的一個時間,例如3

 

 

dfs.datanode.balance.bandwidthPerSec=1048576

 

在做數據平衡時,每個DN最大帶寬占用,每秒字節。默認值是1M。建議可以到10M

 

 

dfs.hosts=null

 

文件名,包含了一個host列表,允許列表內機器連到NN。必須指定完整路徑。如果值為空,全部hosts都允許連入。

 

 

dfs.hosts.exclude=null

 

文件名,包含了一個hosts列表,不允許列表內機器連到NN。必須指定完整路徑。如果值為空。沒有host被禁止。如果上述2個都設置並且有重合,dfs.hosts中優先級高。

 

 

dfs.stream-buffer-size=4096

 

文件流緩存大小。需要是硬件page大小的整數倍。在讀寫操作時,數據緩存大小。注意和core-default.xml中指定文件類型的緩存是不同的,這個是dfs共用的

 

 

dfs.namenode.num.extra.edits.retained=1000000

 

除最小的必須的editlog之外,額外保留的editlog文件數量。這是有用的,可以用於審核目的,或者HA設置一個遠程Standby節點並且有時可能離線時,都需要保留一個較長的backlog

 

 

 

典型的,每個edit大約幾百字節,默認的1百萬editlog大約有百兆到1G。注意:早先的extra edits文件可能操作這里設置的值,因為還有其它選項,例如dfs.namenode.max.extra.edits.segments.retained

 

建議值:2200,約3天的

 

 

dfs.datanode.handler.count=10

 

DN的服務線程數。這些線程僅用於接收請求,處理業務命令

 

 

dfs.datanode.failed.volumes.tolerated=0

 

可以接受的卷的失敗數量。默認值0表示,任一個卷失敗都會導致DN關閉。

 

建議設置此值,避免個別磁盤問題。如果此值超過真實磁盤數,將會報錯,啟動失敗

 

 

dfs.namenode.support.allow.format=true

 

NN是否允許被格式化?在生產系統,把它設置為false,阻止任何格式化操作在一個運行的DFS上。

 

建議初次格式化后,修改配置禁止

 

 

dfs.client.failover.max.attempts=15

 

專家設置。客戶端失敗重試次數。

 

 

dfs.client.failover.connection.retries=0

 

專家設置。IPC客戶端失敗重試次數。在網絡不穩定時建議加大此值

 

 

dfs.client.failover.connection.retries.on.timeouts=0

 

專家設置。IPC客戶端失敗重試次數,此失敗僅指超時失敗。在網絡不穩定時建議加大此值

 

 

dfs.nameservices=null

 

nameservices列表。逗號分隔。

 

我們常用的僅配置一個,啟動federation功能需要配置多個

 

 

dfs.nameservice.id=null

 

nameservice id,如果沒有配置或者配置多個,由匹配到的本地節點地址配置的IP地址決定。我們進配置一個NS的情況下,建議這里不配置

 

 

dfs.ha.namenodes.EXAMPLENAMESERVICE=null

 

包含一個NN列表。EXAMPLENAMESERVICE是指具體的nameservice名稱,通常就是dfs.nameservices中配置的。值是預備配置的NNID

 

ID是自己取的,不重復就可以,例如nn1,nn2

 

 

dfs.ha.namenode.id=null

 

NNID,如果沒有配置,由系統決定。通過匹配本地節點地址和配置的地址。

 

這里設置的是本機的NNID(此配置僅對NN生效),由於要配置2NN,建議沒有特殊需要,這里不進行配置

 

 

dfs.ha.automatic-failover.enabled=FALSE

 

是否開啟自動故障轉移。建議開啟,true

 

 

dfs.namenode.avoid.write.stale.datanode=FALSE

 

決定是否避開在臟DN上寫數據。寫操作將會避開臟DN,除非超過一個配置的比率(dfs.namenode.write.stale.datanode.ratio)

 

嘗試開啟

 

 

dfs.journalnode.rpc-address=0.0.0.0:8485

 

JournalNode RPC服務地址和端口

 

 

dfs.journalnode.http-address=0.0.0.0:8480

 

JournalNodeHTTP地址和端口。端口設置為0表示隨機選擇。

 

 

dfs.namenode.audit.loggers=default

 

審查日志的實現類列表,能夠接收audit事件。它們需要實現org.apache.hadoop.hdfs.server.namenode.AuditLogger接口。默認值"default"可以用於引用默認的audit logger, 它使用配置的日志系統。安裝客戶自己的audit loggers可能影響NN的穩定性和性能。

 

建議default,開啟

 

 

dfs.client.socket-timeout=60*1000

 

 

dfs.datanode.socket.write.timeout=8*60*1000

 

 

dfs.datanode.socket.reuse.keepalive=1000

 

 

dfs.namenode.logging.level=info

 

DFSNN的日志等級。值可以是:infodir(跟蹤命名空間變動)"block" (跟蹤塊的創建刪除,replication變動),或者"all".

 

 

dfs.namenode.secondary.http-address=0.0.0.0:50090

 

SNNhttp服務地址。如果是0,服務將隨機選擇一個空閑端口。使用了HA后,就不再使用SNN

 

 

dfs.https.enable=FALSE

 

允許HDFS支持HTTPS(SSL)。建議不支持

 

 

dfs.client.https.need-auth=FALSE

 

安全選項,暫不關注

 

 

dfs.https.server.keystore.resource=ssl-server.xml

 

安全選項,暫不關注

 

 

dfs.client.https.keystore.resource=ssl-client.xml

 

安全選項,暫不關注

 

 

dfs.datanode.https.address=0.0.0.0:50475

 

安全選項,暫不關注

 

 

dfs.namenode.https-address=0.0.0.0:50470

 

安全選項,暫不關注

 

 

dfs.datanode.dns.interface=default

 

DN匯報它的IP地址的網卡。我們給DN指定了0.0.0.0之類的地址,這個地址需要被解析成對外地址,這里指定的是網卡名,即那個網卡上綁定的IP是可以對外的IP,一般的,默認值就足夠了

 

 

dfs.datanode.dns.nameserver=default

 

DNS的域名或者IP地址。DN用它來確定自己的域名,在對外聯系和顯示時調用。一般的,默認值就足夠了

 

 

dfs.namenode.backup.address=0.0.0.0:50100

 

NNBK節點地址和端口,0表示隨機選用。使用HA,就不需要關注此選項了。建議不使用BK節點

 

 

dfs.namenode.backup.http-address=0.0.0.0:50105

 

使用HA,就不需要關注此選項了。建議不使用BK節點

 

 

dfs.namenode.replication.considerLoad=true

 

設定在選擇存放目標時是否考慮負載。需要

 

 

dfs.default.chunk.view.size=32768

 

在瀏覽器中查看一個文件時,可以看到的字節數。

 

 

dfs.namenode.name.dir=file://${hadoop.tmp.dir}/dfs/name

 

本地磁盤目錄,NN存儲fsimage文件的地方。可以是按逗號分隔的目錄列表,fsimage文件會存儲在全部目錄,冗余安全。這里多個目錄設定,最好在多個磁盤,另外,如果其中一個磁盤故障,不會導致系統故障,會跳過壞磁盤。由於使用了HA,建議僅設置一個。如果特別在意安全,可以設置2

 

 

dfs.namenode.fs-limits.max-component-length=0

 

路徑中每個部分的最大字節長度(目錄名,文件名的長度)。0表示不檢查長度。長文件名影響性能

 

 

dfs.namenode.fs-limits.max-directory-items=0

 

設置每個目錄最多擁有多少個子目錄或者文件。0表示無限制。同一目錄下子文件和目錄多影響性能

 

 

dfs.namenode.fs-limits.min-block-size=1048576

 

最小的Block大小,字節。在NN創建時強制驗證。避免用戶設定過小的Block Size,導致過多的Block,這非常影響性能。

 

 

dfs.namenode.fs-limits.max-blocks-per-file=1048576

 

每個文件最大的Block數。在NN寫時強制檢查。用於防止創建超大文件。

 

 

dfs.block.access.token.enable=FALSE

 

訪問DN時是否驗證訪問令牌。建議false,不檢查

 

 

dfs.block.access.key.update.interval=600

 

安全選項,暫不關注

 

 

dfs.block.access.token.lifetime=600

 

安全選項,暫不關注

 

 

dfs.datanode.data.dir.perm=700

 

本地數據目錄權限設定。8進制或者符號方式都可以。

 

 

dfs.blockreport.intervalMsec=21600000

 

數據塊匯報間隔,毫秒,默認是6小時。

 

 

dfs.blockreport.initialDelay=0

 

第一次數據塊匯報時延遲,秒。目的是減輕NN壓力?

 

 

dfs.datanode.directoryscan.interval=21600

 

DN的數據塊掃描間隔,秒。磁盤上數據和內存中數據調整一致。

 

 

dfs.datanode.directoryscan.threads=1

 

線程池要有多少線程用來並發的壓縮磁盤的匯報數據。

 

 

dfs.namenode.safemode.min.datanodes=0

 

NN收到回報的DN的數量的最小值,達不到此值,NN不退出安全模式。(在系統啟動時發生作用)。<=0的值表示不關心DN數量,在啟動時。大於DN實際數量的值會導致無法離開安全模式。建議不設置此值

 

 

dfs.namenode.max.objects=0

 

DFS支持的最大文件、目錄、數據塊數量。0無限制。

 

 

dfs.namenode.decommission.interval=30

 

NN周期性檢查退役是否完成的間隔,秒。

 

 

dfs.namenode.decommission.nodes.per.interval=5

 

NN檢查退役是否完成,每dfs.namenode.decommission.interval秒檢查的節點數量。

 

 

dfs.namenode.replication.interval=3

 

NN周期性計算DN的副本情況的頻率,秒。

 

 

dfs.namenode.accesstime.precision=3600000

 

HDFS文件的訪問時間精確到此值,默認是1小時。0表示禁用訪問時間。

 

 

dfs.datanode.plugins=null

 

DN上的插件列表,逗號分隔。

 

 

dfs.namenode.plugins=null

 

NN上的插件列表,逗號分隔。

 

 

dfs.bytes-per-checksum=512

 

每次計算校驗和的字節數。一定不能大於dfs.stream-buffer-size

 

 

dfs.client-write-packet-size=65536

 

客戶端寫數據時的包的大小。包是塊中的更小單位數據集合

 

 

dfs.client.write.exclude.nodes.cache.expiry.interval.millis=600000

 

最大周期去讓DN保持在例外節點隊列中。毫秒。操過此周期,先前被排除的DN將被移除緩存並被嘗試再次申請Block。默認為10分鍾。

 

 

dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary

 

本地文件系統中,DFS SNN應該在哪里存放臨時[用於合並|合並后]to merge)的Image。如果是逗號分隔的目錄列表,Image文件存放多份。冗余備份。建議不使用SNN功能,忽略此配置

 

 

dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}

 

建議不使用SNN功能,忽略此配置

 

 

dfs.namenode.checkpoint.period=3600

 

建議不使用SNN功能,忽略此配置

 

 

dfs.namenode.checkpoint.txns=1000000

 

建議不使用SNN功能,忽略此配置

 

 

dfs.namenode.checkpoint.check.period=60

 

建議不使用SNN功能,忽略此配置

 

 

dfs.namenode.checkpoint.max-retries=3

 

建議不使用SNN功能,忽略此配置

 

 

dfs.namenode.num.checkpoints.retained=2
建議不使用SNN功能,忽略此配置

 

 

dfs.namenode.num.extra.edits.retained=1000000

 

數量限制,額外的edits事務數。

 

 

dfs.namenode.max.extra.edits.segments.retained=10000

 

extra edit日志文件segments的最大數量。除了用於NN重啟時的最小edits文件之外。一個segments包含多個日志文件

 

 

dfs.namenode.delegation.key.update-interval=86400000

 

NN中更新主代理令牌的時間間隔,毫秒。安全選項,不關注

 

 

dfs.namenode.delegation.token.max-lifetime=604800000

 

NN中更新主代理令牌的時間間隔,毫秒。安全選項,不關注

 

 

dfs.namenode.delegation.token.renew-interval=86400000

 

NN中更新主代理令牌的時間間隔,毫秒。安全選項,不關注

 

 

dfs.image.compress=FALSE

 

Image文件要壓縮嗎?

 

 

dfs.image.compression.codec=org.apache.hadoop.io.compress.DefaultCodec

 

Image文件壓縮編碼。必須是在io.compression.codecs中定義的編碼。

 

 

dfs.image.transfer.timeout=600000

 

Image文件傳輸時超時。HA方式使用不到,可不關注

 

 

dfs.image.transfer.bandwidthPerSec=0

 

Image文件傳輸時可以使用的最大帶寬,秒字節。0表示沒有限制。HA方式使用不到,可不關注

 

 

dfs.datanode.max.transfer.threads=4096

 

= 舊參數 dfs.datanode.max.xcievers
DN上傳送數據出入的最大線程數。

 

 

dfs.datanode.readahead.bytes=4193404

 

預讀磁盤數據。如果Hadoop本地庫生效,DN可以調用posix_fadvise系統獲取頁面數據到操作系統的緩存中。這個配置指定讀取當前讀取位置之前的字節數。設置為0,取消此功能。無本地庫,此功能也無效。?

 

 

dfs.datanode.drop.cache.behind.reads=FALSE

 

在有些場景下,特別是對一些大的,並且不可能重用的數據,緩存在操作系統的緩存區是無用的。此時,DN可以配置自動清理緩存區數據,在已經發生向客戶端之后。此功能自動失效,在讀取小數據片時。(例如HBase的隨機讀寫場景)。通過釋放緩存,這在某些場景下可以提高性能。Hadoop本地庫無效,此功能無效。看起來是一個可以嘗試的特性

 

 

dfs.datanode.drop.cache.behind.writes=FALSE

 

dfs.datanode.drop.cache.behind.reads相似。

 

 

dfs.datanode.sync.behind.writes=FALSE

 

如果是true,在寫之后,DN將指示操作系統把隊列中數據全部立即寫磁盤。和常用的OS策略不同,它們可能在觸發寫磁盤之前等待30秒。Hadoop本地庫無效,此功能無效。

 

 

dfs.client.failover.sleep.base.millis=500

 

專家設置。失敗重試間的等待時間,毫秒。這里的值是個基本值,實際值會根據失敗/成功次數遞增/遞減50%。第一次失敗會立即重試。第二次將延遲至少dfs.client.failover.sleep.base.millis毫秒。依次類推。

 

 

dfs.client.failover.sleep.max.millis=15000

 

專家設置。失敗重試見的等待時間最大值,毫秒。

 

 

dfs.ha.log-roll.period=120

 

StandbyNode要求Active滾動EditLog,由於StandBy只能從已經完成的Log Segments中讀,所以Standby上的數據新鮮程度依賴於以如何的頻率滾動日志。秒。另外,故障轉移也會觸發一次日志滾動,所以StandbyNodeActive之前,數據也會更新成最新的。秒,默認是2分鍾。

 

 

dfs.ha.tail-edits.period=60

 

StandbyNode以此頻率檢測共享目錄中最新的日志,秒。

 

 

dfs.ha.zkfc.port=8019

 

zkfcrpc端口

 

 

dfs.support.append=TRUE

 

是否允許append

 

 

dfs.client.use.datanode.hostname=FALSE

 

是否客戶端應該使用DNHostName,在連接DN時,默認是使用IP

 

 

dfs.datanode.use.datanode.hostname=FALSE

 

是否DN應該使用HostName連接其它DN,在數據傳輸時。默認是是IP

 

 

dfs.client.local.interfaces=null

 

逗號分隔的網卡列表,用於在客戶端和DN之間傳輸數據時。當創建連接時,客戶端隨機選擇一個並綁定它的socket到這個網卡的IP上。名字可以以網卡名(例如"eth0"),子網卡名(eg "eth0:0"),或者IP地址(which may be specified using CIDR notation to match a range of IPs)

 

 

dfs.namenode.kerberos.internal.spnego.principal=${dfs.web.authentication.kerberos.principal}

 

安全選項,暫不關注

 

 

dfs.secondary.namenode.kerberos.internal.spnego.principal=${dfs.web.authentication.kerberos.principal}

 

安全選項,暫不關注

 

 

dfs.namenode.avoid.read.stale.datanode=FALSE

 

決定是否避開從臟DN上讀數據。臟DN指在一個指定的時間間隔內沒有收到心跳信息。臟DN將被移到可以讀取節點列表的尾端。嘗試開啟

 

 

dfs.namenode.stale.datanode.interval=30000

 

標記一個DN是臟的時間間隔。例如,如果NN在此設定的時間內沒有接收到來自某一個節點的心跳信息,此DN將被標記為臟的。此間隔不能太小,否則容易導致被頻繁的標記為臟DN

 

我們建議是1分鍾

 

 

dfs.namenode.write.stale.datanode.ratio=0.5f

 

當全部DN被標記為臟DN的比率高於此閥值,停止不寫數據到臟DN的策略,以免造成熱點問題(有效的,可寫的DN太少,壓力太大)。

 

 

dfs.namenode.invalidate.work.pct.per.iteration=0.32f

 

高級屬性。改變需小心。

 

 

dfs.namenode.replication.work.multiplier.per.iteration=2

 

高級屬性。改變需小心。

 

 

dfs.webhdfs.enabled=FALSE

 

NNDN上開啟WebHDFS (REST API)功能。

 

可以開啟嘗試

 

 

hadoop.fuse.connection.timeout=300

 

秒,在fuse_dfs中緩存libhdfs連接對象的超時時間。 小值使用內存小。大值可以加快訪問,通過避開創建新的連接對象。

 

 

hadoop.fuse.timer.period=5

 

 

 

dfs.metrics.percentiles.intervals=null

 

Comma-delimited set of integers denoting the desired rollover intervals (in seconds) for percentile latency metrics on the Namenode and Datanode. By default, percentile latency metrics are disabled.

 

 

dfs.encrypt.data.transfer=FALSE

 

是否加密傳輸數據?僅需要配置在NNDN。客戶端可以自行判斷。

 

 

dfs.encrypt.data.transfer.algorithm=null

 

可以設置為"3des""rc4"。否則使用默認的,通常是usually 3DES3DES更安全,RC4更快。

 

 

dfs.datanode.hdfs-blocks-metadata.enabled=TRUE

 

布爾值,設定后台DN端是否支持DistributedFileSystem#getFileVBlockStorageLocations API

 

 

dfs.client.file-block-storage-locations.num-threads=10

 

在調用DistributedFileSystem#getFileBlockStorageLocations()的並發RPC的線程數

 

 

dfs.client.file-block-storage-locations.timeout=60

 

Timeout (in seconds) for the parallel RPCs made in DistributedFileSystem#getFileBlockStorageLocations().

 

 

dfs.domain.socket.path=/var/run/hadoop-hdfs/dn._PORT

 

可選選項。socket文件路徑,unix下。用來在DN和本地的HDFS客戶端加快網絡連接。如果字符串"_PORT"出現在路徑中,它將被DNTCP端口替換。

 

yarn-site.xml

 

 

yarn.app.mapreduce.am.resource.mb=1536

 

AM申請的內存

 

 

yarn.resourcemanager.address=0.0.0.0:8032

 

RM地址:端口

 

 

yarn.resourcemanager.scheduler.address=0.0.0.0:8030

 

調度器地址:端口

 

 

yarn.admin.acl=*

 

ACL中誰可以管理YARN集群

 

 

yarn.resourcemanager.admin.address=0.0.0.0:8033

 

RM管理接口地址:端口

 

 

yarn.resourcemanager.am.max-retries=1

 

AM重試最大次數。服務端參數。重啟生效。

 

建議4

 

 

yarn.resourcemanager.nodes.include-path=null

 

存儲有效節點列表的文件

 

 

yarn.resourcemanager.nodes.exclude-path=null

 

存儲拒絕節點列表的文件。如和包含文件沖突,包含文件優先級高

 

 

yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler

 

調度器實現類。

 

建議使用公平調度器

 

 

yarn.scheduler.minimum-allocation-mb=1024

 

每個containerRM申請內存的最小大小。兆字節。內存請求小於此值,實際申請到的是此值大小。默認值偏大

 

 

yarn.scheduler.maximum-allocation-mb=8192

 

每個containerRM申請內存的最大大小,兆字節。申請值大於此值,將最多得到此值內存。

 

 

yarn.resourcemanager.recovery.enabled=FALSE

 

是否啟動RM的狀態恢復功能。如果true,必須指定yarn.resourcemanager.store.class。嘗試啟用

 

 

yarn.resourcemanager.store.class=null

 

用於持久存儲的類。嘗試開啟

 

 

yarn.resourcemanager.max-completed-applications=10000

 

RM中保存的最大完成的app數量。內存中存儲。

 

 

yarn.nodemanager.address=0.0.0.0:0

 

NM中的container管理器的地址:端口

 

 

yarn.nodemanager.env-whitelist=JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,YARN_HOME

 

container應該覆蓋而不是使用NM的環境變量名單。允許container自己配置的環境變量

 

 

yarn.nodemanager.delete.debug-delay-sec=0

 

秒,一個app完成后,NM刪除服務將刪除app的本地文件目錄和日志目錄。為了診斷問題,把這個選項設置成足夠大的值(例如,設置為10分鍾),可以繼續訪問這些目錄。設置此選項,需要重啟NMYarn應用的工作目錄根路徑是yarn.nodemanager.local-dirsYarn應用日志目錄的根路徑是yarn.nodemanager.log-dirs

 

調試問題時可用

 

 

yarn.nodemanager.local-dirs=${hadoop.tmp.dir}/nm-local-dir

 

本地文件存儲目錄,列表。一個應用的本地文件目錄定位方式:${yarn.nodemanager.local-dirs}/usercache/${user}/appcache/application_${appid}。每個container的工作目錄,是此目錄的子目錄,目錄名是container_${contid}

 

非常重要,建議配置多個磁盤,平衡IO

 

 

yarn.nodemanager.log-dirs=${yarn.log.dir}/userlogs

 

存儲container日志的地方。一個應用的本地日志目錄定位是:${yarn.nodemanager.log-dirs}/application_${appid}。每個container的日志目錄在此目錄下,名字是container_{$contid}。每個container目錄中包含stderr, stdin, and syslogcontainer產生的文件

 

非常重要,建議配置多個磁盤

 

 

yarn.log-aggregation-enable=FALSE

 

是否允許日志匯聚功能。建議開啟

 

 

yarn.log-aggregation.retain-seconds=-1

 

保存匯聚日志時間,秒,超過會刪除,-1表示不刪除。 注意,設置的過小,將導致NN垃圾碎片。建議3-7= 7 * 86400 = 604800

 

 

yarn.nodemanager.log.retain-seconds=10800

 

保留用戶日志的時間,秒。在日志匯聚功能關閉時生效。

 

建議7

 

 

yarn.nodemanager.remote-app-log-dir=/tmp/logs

 

匯聚日志的地方,目錄路徑,HDFS系統。

 

對於開了權限檢查的系統,注意權限問題。HDFS上。

 

 

yarn.nodemanager.remote-app-log-dir-suffix=logs

 

匯聚日志目錄路徑后綴。匯聚目錄創建在{yarn.nodemanager.remote-app-log-dir}/${user}/{thisParam}

 

 

yarn.nodemanager.resource.memory-mb=8192

 

NM上可以用於container申請的物理內存大小,MB

 

 

yarn.nodemanager.vmem-pmem-ratio=2.1

 

在設置container的內存限制時,虛擬內存到物理內存的比率。Container申請的內存如果超過此物理內存,可以以此比率獲取虛擬內存用於滿足需求。虛擬地址的是物理地址的倍數上限。建議設置的大點,例如:4.18.1,此虛擬內存並非內存,而是占用的虛擬地址。

 

 

yarn.nodemanager.webapp.address=0.0.0.0:8042

 

NM的網頁界面地址和端口。

 

 

yarn.nodemanager.log-aggregation.compression-type=none

 

匯聚日志的壓縮類型。匯聚日志是TFile格式文件。Hadoop-3315。可以使用的值有none,lzo,gz等。

 

可以嘗試

 

 

yarn.nodemanager.aux-services=null

 

請配置為:mapreduce.shuffle,在Yarn上開啟MR的必須項

 

 

yarn.nodemanager.aux-services.mapreduce.shuffle.class=org.apache.hadoop.mapred.ShuffleHandler

 

對應參考yarn.nodemanager.aux-services

 

 

mapreduce.job.jar=null

 

Job客戶端參數。提交的jobjar文件。

 

 

mapreduce.job.hdfs-servers=${fs.defaultFS}

 

Job客戶端參數。

 

 

yarn.application.classpath=$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/,$HADOOP_COMMON_HOME/share/hadoop/common/lib/,$HADOOP_HDFS_HOME/share/hadoop/hdfs/,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/,$YARN_HOME/share/hadoop/yarn/*,$YARN_HOME/share/hadoop/yarn/lib/*

 

YARN應用的CLASSPATH,逗號分隔列表。

 

 

yarn.app.mapreduce.am.job.task.listener.thread-count=30

 

MR AM處理RPC調用的線程數。

 

 

yarn.app.mapreduce.am.job.client.port-range=null

 

MR AM能夠綁定使用的端口范圍。例如:50000-50050,50100-50200。 如果你先要全部的有用端口,可以留空(默認值null)。

 

 

yarn.app.mapreduce.am.job.committer.cancel-timeout=60000

 

毫秒,如果jobkill了,等待output committer取消操作的時間。

 

 

yarn.app.mapreduce.am.scheduler.heartbeat.interval-ms=1000

 

MR AM發送心跳到RM的時間間隔,毫秒

 

 

yarn.app.mapreduce.client-am.ipc.max-retries=3

 

在重新連接RM獲取Application狀態前,客戶端重試連接AM的次數。

 

 

yarn.app.mapreduce.client.max-retries=3

 

客戶端重連RM/HS/AM的次數。這是基於ipc接口上的規則

 

 

yarn.ipc.client.factory.class=null

 

創建客戶端IPC類的工廠類

 

 

yarn.ipc.serializer.type=protocolbuffers

 

使用哪種序列化類

 

 

yarn.ipc.server.factory.class=null

 

創建IPC服務類的工廠類

 

 

yarn.ipc.exception.factory.class=null

 

創建IPC異常的工廠類

 

 

yarn.ipc.record.factory.class=null

 

創建序列化記錄的工廠類

 

 

yarn.ipc.rpc.class=org.apache.hadoop.yarn.ipc.HadoopYarnProtoRPC

 

RPC類實現類

 

 

yarn.resourcemanager.client.thread-count=50

 

RM用來處理客戶端請求的線程數

 

 

yarn.am.liveness-monitor.expiry-interval-ms=600000

 

AM報告間隔,毫秒。?

 

 

yarn.resourcemanager.principal=null

 

安全選項

 

 

yarn.resourcemanager.scheduler.client.thread-count=50

 

調度器用於處理請求的線程數

 

 

yarn.resourcemanager.webapp.address=0.0.0.0:8088

 

RM的網頁接口地址:端口

 

 

yarn.resourcemanager.resource-tracker.address=0.0.0.0:8031

 

 

 

yarn.acl.enable=TRUE

 

開啟訪問控制

 

 

yarn.resourcemanager.admin.client.thread-count=1

 

RM管理端口處理事務的線程數

 

 

yarn.resourcemanager.amliveliness-monitor.interval-ms=1000

 

RM檢查AM存活的間隔

 

 

yarn.resourcemanager.container.liveness-monitor.interval-ms=600000

 

檢查container存活的時間間隔,毫秒。建議短一些,例如3分鍾

 

 

yarn.resourcemanager.keytab=/etc/krb5.keytab

 

安全選項

 

 

yarn.nm.liveness-monitor.expiry-interval-ms=600000

 

RM判斷NM死亡的時間間隔。
非主動檢查,被動等待,不連接時間超過此值
10分鍾無檢查到活動,判定NM死亡

 

 

yarn.resourcemanager.nm.liveness-monitor.interval-ms=1000

 

RM檢查NM存活的時間間隔。

 

 

yarn.resourcemanager.resource-tracker.client.thread-count=50

 

處理資源跟蹤調用的線程數。?

 

 

yarn.resourcemanager.delayed.delegation-token.removal-interval-ms=30000

 

安全選項

 

 

yarn.resourcemanager.application-tokens.master-key-rolling-interval-secs=86400

 

安全選項

 

 

yarn.resourcemanager.container-tokens.master-key-rolling-interval-secs=86400

 

安全選項

 

 

yarn.nodemanager.admin-env=MALLOC_ARENA_MAX=$MALLOC_ARENA_MAX

 

應該從NM傳送到container的環境變量

 

 

yarn.nodemanager.container-executor.class=org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor

 

啟動containers的類。

 

 

yarn.nodemanager.container-manager.thread-count=20

 

用於container管理的線程數

 

 

yarn.nodemanager.delete.thread-count=4

 

 

mapred-site.xml

 

 

 

mapreduce.job.maps

 

默認 每個jobmaptask數量,默認值是2

 

mapreduce.job.reduces

 

默認 每個jobreducetask數量,默認值是1

 

mapreduce.reduce.shuffle.parallelcopies

 

shuffle的並行數量,默認值是5

 

mapreduce.task.timeout

 

一個task 超時時間默認600000milliseconds

 

 

 

 

 

 

 

 



免責聲明!

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



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