EMR Flume支援多種服務啟動方式,本文介紹通過E-MapReduce(簡稱EMR)控制台修改Flume配置並啟動Flume Agent,繼而即時同步HDFS Audit日誌至HDFS。
前提條件
已建立DataLake叢集,並且選擇了Flume服務,詳情請參見建立叢集。
操作步驟
- 進入叢集服務頁面。
- 在頂部功能表列處,根據實際情況選擇地區和資源群組。
- 在叢集管理頁面,單擊目的地組群操作列的叢集服務。
- 在叢集服務頁面,單擊FLUME服務地區的配置。
- 配置core-1-1節點的Flume Agent並儲存配置。以下配置項請遵循開源Flume內容,詳情請參見Flume。
- 在配置頁面,單擊flume-conf.properties頁簽。
- 在上方的下拉式清單中選擇獨立節點配置和core-1-1。
- 請根據實際情況修改參數flume-conf.properties中的值。
default-agent.sinks = default-sink default-agent.sources = default-source default-agent.channels = default-channel default-agent.sinks.default-sink.type = hdfs default-agent.sinks.default-sink.channel = default-channel default-agent.channels.default-channel.type = file default-agent.sources.default-source.type = avro default-agent.sinks.default-sink.hdfs.path = hdfs://master-1-1:9000/path default-agent.sinks.default-sink.hdfs.fileType = DataStream default-agent.sinks.default-sink.hdfs.rollSize = 0 default-agent.sinks.default-sink.hdfs.rollCount = 0 default-agent.sinks.default-sink.hdfs.rollInterval = 86400 default-agent.sinks.default-sink.hdfs.batchSize = 51200 default-agent.sources.default-source.bind = 0.0.0.0 default-agent.sources.default-source.port = **** default-agent.sources.default-source.channels = default-channel default-agent.channels.default-channel.transactionCapacity = 10000 default-agent.channels.default-channel.dataDirs = **** default-agent.channels.default-channel.checkpointDir = **** default-agent.channels.default-channel.capacity = 1000000參數 描述 default-agent.sinks 指定所有Sinks名稱。例如,default-sink。 default-agent.sources 指定所有Sources名稱。例如,default-source。 default-agent.channels 指定所有Channels名稱。例如,default-channel。 default-agent.sinks.default-sink.hdfs.path HDFS路徑。 - 高可用叢集:例如hdfs://emr-cluster/path。
- 非高可用叢集:例如hdfs://master-1-1:9000/path。
default-agent.sinks.default-sink.hdfs.fileType 固定值為DataStream。 default-agent.sinks.default-sink.hdfs.rollSize 當臨時檔案達到該參數值時,滾動成目標檔案,單位:byte。 該值設定為0,則表示檔案不根據檔案大小滾動產生。
default-agent.sinks.default-sink.hdfs.rollCount 當Event資料達到該數量時,將臨時檔案滾動產生目標檔案。 該值設定為0,則表示檔案不根據Event數滾動產生。
default-agent.sinks.default-sink.hdfs.rollInterval 設定多久產生一個新的檔案,單位為秒。例如,86400。 default-agent.sinks.default-sink.hdfs.batchSize 設定每滿多少Event,重新整理一次到HDFS。例如,51200。 default-agent.sinks.default-sink.channel 指定default-sink的Channel名稱。 default-agent.sources.default-source.bind 綁定的連接埠。設定為0.0.0.0表示綁定機器所有的介面。 default-agent.sources.default-source.port 監聽的連接埠。根據實際情況設定。 default-agent.sources.default-source.channels 指定default-source的Channel名稱。 default-agent.channels.default-channel.transactionCapacity Channel在一次事務中傳遞Event的最大數量。預設值為10000。 default-agent.channels.default-channel.dataDirs Channel儲存Event資料的路徑。 選擇性參數,預設路徑~/.flume/file-channel/data。
default-agent.channels.default-channel.checkpointDir 儲存Checkpoint的路徑。 選擇性參數,預設路徑~/.flume/file-channel/checkpoint。
default-agent.channels.default-channel.capacity 根據HDFS Roll設定。 選擇性參數,預設值為1000000。
- 儲存配置。
- 單擊下方的儲存。
- 在彈出的對話方塊中,輸入執行原因,單擊確定。
- 請參見步驟3配置core-1-2節點的Flume Agent並儲存配置。
- 配置Master節點群組的Flume Agent並儲存配置。以下配置項請遵循開源Flume內容,詳情請參見Flume。
- 在上方的下拉式清單中選擇獨立節點配置和master-1-1。
- 請根據實際情況修改參數flume-conf.properties中的值。
default-agent.sinks = default-sink k1 default-agent.sources = default-source default-agent.channels = default-channel default-agent.sources.default-source.type = taildir default-agent.sinks.default-sink.type = avro default-agent.sinks.default-sink.channel = default-channel default-agent.channels.default-channel.type = file default-agent.sources.default-source.filegroups = f1 default-agent.sources.default-source.filegroups.f1 = /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.* default-agent.sources.default-source.positionFile = ~/.flume/taildir_position.json default-agent.sources.default-source.channels = default-channel default-agent.sources.default-source.batchSize = 2000 default-agent.sources.default-source.ignoreRenameWhenMultiMatching = true default-agent.channels.default-channel.checkpointDir = **** default-agent.channels.default-channel.dataDirs = **** default-agent.channels.default-channel.capacity = **** default-agent.channels.default-channel.transactionCapacity = 2000 default-agent.sinkgroups = g1 default-agent.sinkgroups.g1.sinks = default-sink k1 default-agent.sinkgroups.g1.processor.type = failover default-agent.sinkgroups.g1.processor.priority.default-sink = 10 default-agent.sinkgroups.g1.processor.priority.k1 = 5 default-agent.sinks.default-sink.hostname = **** default-agent.sinks.default-sink.port = **** default-agent.sinks.k1.hostname = **** default-agent.sinks.k1.port = **** default-agent.sinks.default-sink.batch-size = 2000 default-agent.sinks.k1.batch-size = 2000 default-agent.sinks.k1.type = avro default-agent.sinks.k1.channel = default-channel參數 描述 default-agent.sinks 指定所有Sinks名稱。例如,default-sink k1。 default-agent.sources 指定所有Sources名稱。例如,default-source。 default-agent.channels 指定所有Channels名稱。例如,default-channel。 default-agent.sources.default-source.filegroups.f1 組建記錄檔的路徑。預設路徑為/mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.*。 default-agent.sources.default-source.positionFile 儲存Position File的路徑。 選擇性參數,預設路徑為~/.flume/taildir_position.json。
default-agent.channels.default-channel.checkpointDir 儲存Checkpoint的路徑。 default-agent.channels.default-channel.dataDirs 儲存Event資料的路徑。 default-agent.channels.default-channel.capacity 根據HDFS Roll設定。 default-agent.sources.default-source.batchSize 在一個批處理中寫入通道的最大訊息數。例如,2000。 default-agent.channels.default-channel.transactionCapacity 每次Channel從Source擷取事件或推送給Sink的最大事件數目。例如,2000。 default-agent.sources.default-source.ignoreRenameWhenMultiMatching Flume的taildir source在filegroups使用萬用字元匹配log4j的滾動日誌時會有資料重複的問題,設定為true可以避免該問題。 default-agent.sinkgroups 指定所有sinkgroups名稱。例如,g1。 default-agent.sinkgroups.g1.sinks 指定sinkgroup g1中所有sink名稱。例如,default-sink k1。 default-agent.sinkgroups.g1.processor.type 指定sinkgroup g1的sink組邏輯處理類型,取值為: - default:預設一對一。
- failover:容錯移轉。
- load_balance:負載平衡。
default-agent.sinkgroups.g1.processor.priority.default-sink 指定sinkgroup g1組內sink,default-sink的權重值,數值越大會被優先使用。例如,設定為10。 default-agent.sinkgroups.g1.processor.priority.k1 指定sinkgroup g1組內sink,k1的權重值,數值越大會被優先使用。例如,設定為5。 default-agent.sinks.default-sink.hostname core-1-1節點的IP地址。 default-agent.sinks.default-sink.port core-1-1節點Flume Agent的Port。 default-agent.sinks.k1.hostname core-1-2節點的IP地址。 default-agent.sinks.k1.port core-1-2節點Flume Agent的Port。 default-agent.sinks.default-sink.batch-size default-sink每次批量發送的Event數。例如,2000。 default-agent.sinks.k1.batch-size k1每次批量發送的Event數。例如,2000。 default-agent.sinks.k1.type 指定Sink類型。例如,avro。 default-agent.sinks.k1.channel 配置Sink。例如,default-channel。 - 儲存配置。
- 單擊下方的儲存。
- 在彈出的對話方塊中,輸入執行原因,單擊確定。
- 啟動Flume Agent。
- 在右上方選擇。
- 在彈出的對話方塊中,輸入執行原因,單擊確定。
- 在確認對話方塊中,單擊確定。執行完成後,日誌就從HDFS Audit同步至HDFS了。
Flume Agent日誌的存放路徑為/var/log/emr/flume/default-agent/flume.log。