Kafka 详细配置参数说明
生活随笔
收集整理的這篇文章主要介紹了
Kafka 详细配置参数说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| auto.create.topics.enable | server.properties | 【說明】是否允許自動創建Topic,若是false,就需要通過命令創建Topic。 【默認值】true 【取值范圍】true或false |
| log.cleaner.backoff.ms | server.properties | 【說明】檢查是否有日志需要清理的時間間隔。單位:毫秒。 【默認值】15000 【取值范圍】0~9223372036854775807 |
| log.cleaner.delete.retention.ms | server.properties | 【說明】保存壓縮日志的最長時間,與log.retention.minutes的區別在于一個控制未壓縮數據,一個控制壓縮后的數據。單位:毫秒。 【默認值】86400000 【取值范圍】1~9223372036854775807 |
| log.cleaner.enable | server.properties | 【說明】是否打開日志數據壓縮功能。 【默認值】true 【取值范圍】true或false |
| log.cleaner.io.buffer.load.factor | server.properties | 【說明】日志數據清理中Hash表的擴大因子,一般不需要修改。 【默認值】0.9 【取值范圍】0~1 |
| log.cleaner.io.buffer.size | server.properties | 【說明】日志數據清理過程中針對日志進行索引化以及精簡化所用到的緩存大小,一般不需要修改。單位:字節。 【默認值】512*1024 【取值范圍】0~2147483647 |
| log.cleaner.io.max.bytes.per.second | server.properties | 【說明】進行日志數據壓縮清理時,允許每秒I/O的數據量,以免日志數據壓縮清理影響正在執行的請求。單位:字節/秒。 【默認值】1.7976931348623157E308 【取值范圍】0~1.7976931348623157E308 |
| log.cleaner.min.cleanable.ratio | server.properties | 【說明】控制日志數據壓縮清理的頻率。默認情況下,當日志數據的50%已經被清理時,不需要再繼續清理。 【默認值】0.5 【取值范圍】0~1 |
| log.cleaner.threads | server.properties | 【說明】日志壓縮清理所使用的線程數。 【默認值】1 【取值范圍】1~2147483647 |
| log.cleanup.policy | server.properties | 【說明】當日志過期時(超過了要保存的時間),采用的清除策略,刪除或者壓縮。 【默認值】delete 【取值范圍】delete或compact |
| log.dirs | server.properties | 【說明】Kafka數據保存路徑,可以是多個目錄,以“,”分隔。每個新Partition會被創建在包含最少Partition的目錄下。 |
| log.flush.interval.messages | server.properties | 【說明】指定累積多少條消息強制進行落盤。例如,如果這個選項設置為5,那么Broker收到每5條消息后,就需要進行一次落盤。此參數的設置,需要在“數據可靠性”與“性能”之間做必要的權衡。 【默認值】9223372036854775807 【取值范圍】1~9223372036854775807 |
| log.flush.interval.ms | server.properties | 【說明】指定強制進行日志數據落盤的時間間隔。單位:毫秒。 【默認值】9223372036854775807 【取值范圍】0~9223372036854775807 |
| log.flush.offset.checkpoint.interval.ms | server.properties | 【說明】指定檢查上次日志數據刷新的頻率。一般不需要修改。單位:毫秒。 【默認值】60000 【取值范圍】1000~2147483647 |
| log.flush.scheduler.interval.ms | server.properties | 【說明】指定檢查是否需要將日志數據落盤的時間間隔。單位:毫秒。 【默認值】9223372036854775807 【取值范圍】1000~9223372036854775807 |
| log.index.interval.bytes | server.properties | 【說明】指定Kafka每隔多少字節創建一個消息索引。默認設置保證了每4096個字節就對消息添加一個索引,更多的索引使得消息的讀取更加高效,但是索引數量會由此增大。一般不需要修改。單位:字節。 |
| log.index.size.max.bytes | server.properties | 【說明】指定索引文件的大小,一般不需要修改。單位:字節。 【默認值】10 * 1024 z* 1024 【取值范圍】4~2147483647 |
| log.message.timestamp.difference.max.ms | server.properties | 【說明】消息時間戳差別最大值,僅當message.timestamp.type設置為CreateTime時有效,若收到的消息中攜帶的時間戳與當前時間的差值大于該值時,該消息會被拒絕。 【默認值】9223372036854775807 【取值范圍】1~922337203685477580 |
| log.message.timestamp.type | server.properties | 【說明】設置消息時間戳記錄的內容,可記錄消息創建的時間,或者消息數據寫入時間。 【默認值】CreateTime 【取值范圍】CreateTime或LogAppendTime |
| log.retention.bytes | server.properties | 【說明】指定每個Partition上的日志數據所能達到的最大字節。默認情況下無限制。單位:字節。 【默認值】-1 【取值范圍】-1~9223372036854775807 |
| log.retention.hours | server.properties | 【說明】日志數據文件保留的最長時間。單位:小時。 【默認值】24*7 【取值范圍】1~2147483647 |
| log.roll.hours | server.properties | 【說明】指定創建新日志數據分段文件的時間間隔,即使文件大小沒有達到log.segment.bytes,也會創建。單位:小時。 【默認值】24*7 【取值范圍】1~2147483647 |
| log.segment.bytes | server.properties | 【說明】指定日志數據中分段文件的最大字節數。單位:字節。 【默認值】1073741824 【取值范圍】1048576~2147483647 |
| log.segment.delete.delay.ms | server.properties | 【說明】指定從文件系統中刪除一個文件的超時時間。單位:毫秒。 【默認值】60000 【取值范圍】0~9223372036854775807 |
| min.insync.replicas | server.properties | 【說明】當Producer設置request.required.acks為-1時,指定需要寫入成功的副本的最小數目。 【默認值】1 【取值范圍】1~2147483647 |
| num.partitions | server.properties | 【說明】指定Topic的默認分區數。如果創建Topic時沒有指定Partition個數,此配置為Topic下Partitions的數目。 【默認值】2 【取值范圍】1~2147483647 |
| num.recovery.threads.per.data.dir | server.properties | 【說明】每個數據目錄用來數據恢復的線程數目。 【默認值】10 【取值范圍】1~2147483647 |
| background.threads | server.properties | 【說明】Broker后臺任務處理的線程數目,例如過期數據文件的刪除線程。一般不需要修改。 【默認值】10 【取值范圍】1~512 |
| message.max.bytes | server.properties | 【說明】Broker允許接收單條消息的最大字節數。單位:字節。 【默認值】1000012 【取值范圍】0~2147483647 |
| num.io.threads | server.properties | 【說明】Broker用來處理磁盤I/O的線程數目,這個線程數目建議至少等于硬盤的個數。 【默認值】8 【取值范圍】1~256 |
| num.network.threads | server.properties | 【說明】Broker用來處理網絡請求的線程數目。一般不需要修改。 【默認值】3 【取值范圍】1~128 |
| queued.max.requests | server.properties | 【說明】在網絡請求處理線程停止讀取新請求之前,可以排隊等待I/O線程處理的最大請求個數. 【默認值】500 【取值范圍】1~10000 |
| request.timeout.ms | server.properties | 【說明】設置客戶端發送連接請求后,等待響應的超時時間。如果在超時時間內沒有接收到響應,那么客戶端重新發送,并在達到重試次數后返回請求失敗。單位:毫秒。 【默認值】30000 【取值范圍】10~600000 |
| ssl.mode.enable | server.properties | 【說明】如果設置為true,那么Broker啟動過程中會啟動SSL的相關服務。 【默認值】false 【取值范圍】true或false |
| group.max.session.timeout.ms | server.properties | 【說明】Consumer注冊時允許的最大會話超時時間。單位:毫秒。 【默認值】300000 【取值范圍】1~2147483647 |
| group.min.session.timeout.ms | server.properties | 【說明】Consumer注冊時允許的最小會話超時時間。單位:毫秒。 【默認值】6000 【取值范圍】1~2147483647 |
| auto.leader.rebalance.enable | server.properties | 【說明】是否使用Leader自動均衡功能。如果設為true,Controller會周期性的為所有Broker的每個Partition均衡Leadership,將Leadership分配給更優先(preferred)的副本。 【默認值】true 【取值范圍】true或false |
| controller.socket.timeout.ms | server.properties | 【說明】Partition的Leader與副本之間通訊時,Socket的超時時間。單位:毫秒。 【默認值】30000 【取值范圍】0~2147483647 |
| default.replication.factor | server.properties | 【說明】自動創建Topic時的缺省副本數。該值必須小于等于Broker實例數。 【默認值】2 【取值范圍】1~2147483647 |
| fetch.purgatory.purge.interval.requests | server.properties | 【說明】同步請求的清除間隔。 【默認值】1000 【取值范圍】1~2147483647 |
| leader.imbalance.check.interval.seconds | server.properties | 【說明】Leader均衡檢測的時間間隔。單位:秒。 【默認值】300 【取值范圍】1~2147483647 |
| leader.imbalance.per.broker.percentage | server.properties | 【說明】每個Broker允許的不均衡的Leader的百分比。如果每個Broker超過了這個百分比,Controller就會重新均衡Leadership。單位:百分比。 【默認值】10 【取值范圍】0~100 |
| num.replica.fetchers | server.properties | 【說明】副本向Leader請求同步數據的線程數,增大這個數值會增加副本的I/O并發度。 【默認值】1 【取值范圍】1~2147483647 |
| producer.purgatory.purge.interval.requests | server.properties | 【說明】Producer請求的清除間隔次數。 【默認值】1000 【取值范圍】1~2147483647 |
| replica.fetch.backoff.ms | server.properties | 【說明】數據同步出錯時的等待時間。單位:毫秒。 【默認值】1000 【取值范圍】0~2147483647 |
| replica.fetch.max.bytes | server.properties | 【說明】副本與Leader之間數據同步請求中每次請求消息的最大字節數。單位:字節。 【默認值】1024*1024 【取值范圍】message.max.bytes~2147483647 |
| replica.fetch.min.bytes | server.properties | 【說明】副本與Leader之間數據同步請求中每次請求消息的最小字節數。單位:字節。 【默認值】1 【取值范圍】1~2147483647 |
| replica.fetch.wait.max.ms | server.properties | 【說明】副本與Leader之間通信的最大等待時間,配置值不得大于replica.lag.time.max.ms。單位:毫秒。 【默認值】500 【取值范圍】1~2147483647 |
| replica.high.watermark.checkpoint.interval.ms | server.properties | 【說明】副本將Hight Watermark信息寫入磁盤的時間間隔。單位:毫秒。 【默認值】5000 【取值范圍】1~9223372036854775807 |
| replica.lag.max.messages | server.properties | 【說明】如果一個副本中沒有同步的消息條數超過這個數值,Leader會認為該副本已經失效,并將其從ISR中移除。 【默認值】4000 【取值范圍】0~9223372036854775807 |
| replica.lag.time.max.ms | server.properties | 【說明】如果一個副本在這個時間內沒有發送數據同步請求,Leader會認為該副本已經失效,并將其從ISR中移除。單位:毫秒。 【默認值】10000 【取值范圍】0~9223372036854775807 |
| replica.socket.receive.buffer.bytes | server.properties | 【說明】副本同步數據時,接收Leader消息的緩存大小。單位:字節。 【默認值】64*1024 【取值范圍】0~2147483647 |
| replica.socket.timeout.ms | server.properties | 【說明】副本數據同步請求的超時時間,配置值不得小于replica.fetch.wait.max.ms。單位:毫秒。 【默認值】30*1000 【取值范圍】0~2147483647 |
| unclean.leader.election.enable | server.properties | 【說明】是否允許不在ISR中的副本被選舉為Leader,若設置為true,可能會造成數據丟失。 【默認值】true 【取值范圍】true或false |
| compression.type | server.properties | 【說明】指定topic最終的數據壓縮方式,如果這是為producer,那么將保留Producer的壓縮方式。 【默認值】producer 【取值范圍】producer, uncompressed, gzip, snappy, lz4 |
| connections.max.idle.ms | server.properties | 【說明】空閑鏈接的超時時間。服務端的Socket處理線程會將超過該時間的空閑鏈接關閉。單位:毫秒。 【默認值】600000 【取值范圍】1~9223372036854775807 |
| delete.topic.enable | server.properties | 【說明】指定是否允許刪除Topic。如果設置為false,通過管理工具無法刪除Topic。 【默認值】true 【取值范圍】true或false |
| max.connections.per.ip | server.properties | 【說明】Broker允許每個IP的最大連接數。 【默認值】2147483647 【取值范圍】1~2147483647 |
| max.connections.per.ip.overrides | server.properties | 【說明】每個IP或者主機名允許的最大連接數。配置舉例:hostname1:num1,hostname2:num2或者IP1:num1,IP2:num2,IP3:num3,中間用英文逗號分隔。 |
| auto.commit.interval.ms | ConsumerConfig | 【說明】自動提交的時間間隔 |
| enable.auto.commit | ConsumerConfig | 【說明】是否自動提交offset 【默認】true |
| max.poll.records | ConsumerConfig | 【說明】最大消費數 【默認】 【提示】kafka在0.9版本無max.poll.records參數,默認拉取記錄是500,直到0.10版本才引入該參數,所以在0.9版本配置是無效的。 |
| group.id | ConsumerConfig | 【說明】消費組 |
| zookeeper.session.timeout.ms | ConsumerConfig | 【說明】ZooKeeper的最大超時時間,就是心跳的間隔,若是沒有反映,那么認為已經死了,不易過大 【默認值】6000 |
| bootstrap.servers | ConsumerConfig | 【說明】連接kafka節點信息 host1:port1,host2,port2 |
| partition.assignment.strategy | ConsumerConfig | 【說明】Kafka消費時分區分配策略 【參數】 range 或 roundrobin。 【默認值】range 【參考】https://mp.weixin.qq.com/s/WjJ4DcUhD0TTiBWj-wTWXg |
| auto.offset.reset | ConsumerConfig | 【說明】earliest: 當各分區下有已提交的offset時,從提交的offset開始消費;無提交的offset時,從頭開始消費 latest : 當各分區下有已提交的offset時,從提交的offset開始消費;無提交的offset時,消費新產生的該分區下的數據 none: topic各分區都存在已提交的offset時,從offset后開始消費;只要有一個分區不存在已提交的offset,則拋出異常 |
| fetch.min.bytes | ConsumerConfig | 【說明】server發送到消費端的最小數據,若是不滿足這個數值則會等待直到滿足指定大小。默認為1表示立即接收 |
| fetch.wait.max.ms | ConsumerConfig | 若是不滿足fetch.min.bytes時,等待消費端請求的最長等待時間 |
| metadata.max.age.ms | ConsumerConfig | 【說明】在毫秒數的時間內,即使我們沒有看到任何分區leader更改,也會強制刷新元數據,以便主動發現任何新的代理或分區。 |
| max.partition.fetch.bytes | ConsumerConfig | 【說明】每次從單個分區中拉取的消息最大尺寸(byte) 【默認】為1M |
| client.id | ConsumerConfig | 【說明】這個client id是用戶特定的字符串,在每次請求中包含用來追蹤調用,他應該邏輯上可以確認是那個應用發出了這個請求。 |
| reconnect.backoff.ms | ConsumerConfig | 【默認值】50ms【說明】用于設置重新嘗試連接的等待時間。 |
| check.crcs | ConsumerConfig | 【說明】自動檢查CRC32記錄的消耗。這樣可以確保消息發生時不會在線或磁盤損壞。此檢查增加了一些開銷,因此在尋求極致性能的情況下可能會被禁用。 |
| key.deserializer | ConsumerConfig | 【說明】key的解析序列化接口實現類(Deserializer) |
| value.deserializer | ConsumerConfig | 【說明】value的解析序列化接口實現類(Deserializer) |
| connections.max.idle.ms | ConsumerConfig | 【說明】空連接的超時限制 【默認值】600000 |
| request.timeout.ms | ConsumerConfig | 【說明】配置控制客戶端等待請求響應的最長時間。如果在超時之前未收到響應,客戶端將在必要時重新發送請求,如果重試耗盡則客戶端將重新發送請求。 |
| exclude.internal.topics | ConsumerConfig | 【說明】內部topic的記錄(如偏移量)是否應向消費者公開。如果設置為true,則從內部topic接受記錄的唯一方法是訂閱它。 |
| metadata.max.age.ms | ProducerConfig | 同consumer |
| batch.size | ProducerConfig | 【說明】kafka會默認將發送到一個partiton的數據進行整合,這個大小是處理請求數據大小batch發送的,如果太小,可能就只能單獨請求發送消息給kafka。 |
| linger.ms | ProducerConfig | 【說明】如果達不到batch.size大小,每隔固定時間發送一次 |
| acks | ProducerConfig | producer需要server接收到數據之后發出的確認接收的信號,此項配置就是指procuder需要多少個這樣的確認信號。此配置實際上代表了數據備份的可用性。以下設置為常用選項: (1)acks=0: 設置為0表示producer不需要等待任何確認收到的信息。副本將立即加到socket buffer并認為已經發送。沒有任何保障可以保證此種情況下server已經成功接收數據,同時重試配置不會發生作用(因為客戶端不知道是否失敗)回饋的offset會總是設置為-1; (2)acks=1: 這意味著至少要等待leader已經成功將數據寫入本地log,但是并沒有等待所有follower是否成功寫入。這種情況下,如果follower沒有成功備份數據,而此時leader又掛掉,則消息會丟失。 (3)acks=all: 這意味著leader需要等待所有備份都成功寫入日志,這種策略會保證只要有一個備份存活就不會丟失數據。這是最強的保證。 (4)其他的設置,例如acks=2也是可以的,這將需要給定的acks數量,但是這種策略一般很少用。 |
| client.id | ProducerConfig | 同consumer |
| buffer.memory | ProducerConfig | 【說明】producer可以用來緩存數據的內存大小。如果數據產生速度大于向broker發送的速度,producer會阻塞或者拋出異常,以“block.on.buffer.full”來表明。這項設置將和producer能夠使用的總內存相關,但并不是一個硬性的限制,因為不是producer使用的所有內存都是用于緩存。一些額外的內存會用于壓縮(如果引入壓縮機制),同樣還有一些用于維護請求。 【默認值】33554432 |
| retries | ProducerConfig | 【說明】設置大于0的值將使客戶端重新發送任何數據,一旦這些數據發送失敗。注意,這些重試與客戶端接收到發送錯誤時的重試沒有什么不同。允許重試將潛在的改變數據的順序,如果這兩個消息記錄都是發送到同一個partition,則第一個消息失敗第二個發送成功,則第二條消息會比第一條消息出現要早。 【默認值】0 |
| retry.backoff.ms | ProducerConfig | 【說明】在試圖重試失敗的produce請求之前的等待時間。避免陷入發送-失敗的死循環中。 【默認值】100 |
| key.serializer | ProducerConfig | 同consumer |
| value.serializer | ProducerConfig | 同consumer |
| connections.max.idle.ms | ProducerConfig | 【說明】關閉空閑連接 【默認值】9 * 60 * 1000 |
| partitioner.class | ProducerConfig | 【說明】分區類,實現Partitioner 的class |
| request.timeout.ms | ProducerConfig | 同consumer |
公眾號:hadoopwiki
總結
以上是生活随笔為你收集整理的Kafka 详细配置参数说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cloudera-Manager-age
- 下一篇: Hbase Compaction 源码分