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。
-