離線數倉當中Sqoop采集MySQL中資料同步策略有:增量全量新增及變化特殊;Sqoop怎么處理?
where判斷日期:新增:where 創建時間 = 當天;全量:where 1 = 1;新增及變化:創建時間 or 修改時間等于今天;特殊只匯入一次
Flume
TailDirSource:
優點:斷點續傳,監控多目錄多檔案,實時監控
缺點:當檔案更名之后會更新讀取該檔案造成重復
注意:
1.要使用不更名列印日志框架(例如:logback)
hive.log-2022-01-02
hive.log-2022-02-03(log4j)日志名會滾動更新
2.修改原始碼,讓TailDirSource判斷檔案時只看iNode值
KafkaChannel:
優點:將資料寫入Kafka,省去一層sink
KafkaChannel:既可以時生產者也可以是消費者
用法:
1.Source-KafkaChannel-Sink
2.Source-KafkChannel(將資料寫入Kafka)
3.KafkaChannel-Sink(將Kafka資料寫入Sink)
Flume中的HDFSSink如何防止產生過多小檔案?
可以按照時間,事件,檔案大小滾動檔案,同時可以啟動檔案壓縮
Kafka學習線分析:
Producer:
發送流程、ACK、攔截器、序列化器、磁區器、sender與main執行緒、冪等性、事務
磁區規則:
有指定磁區發往指定磁區、沒有指定磁區根據key值Hash、既沒有指定磁區也沒有Key的時候整體采用輪詢規則(很小一段時間內采用粘性磁區)
Broker
Topic:
副本:高可用、LEO、HW
磁區:站在讀和寫角度有利于高并發、站在集群角度負載均衡防止熱點
Consumer
磁區分配規則
offset保存,默認保存在_consumer_offsets主題;其他:手動維護Offset(保存在Mysql)保存資料&保存offset寫到一個事務做到精準一次消費
先保存資料后保存offset會導致重復資料(下游可以具有冪等性 + 去重達到精準一次消費)
先保存offset后保存資料會導致丟失資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402688.html
標籤:其他
