全部產品
Search
文件中心

E-MapReduce:同步HDFS Audit日誌至HDFS

更新時間:Jul 01, 2024

EMR Flume支援多種服務啟動方式,本文介紹通過E-MapReduce(簡稱EMR)控制台修改Flume配置並啟動Flume Agent,繼而即時同步HDFS Audit日誌至HDFS。

前提條件

已建立DataLake叢集,並且選擇了Flume服務,詳情請參見建立叢集

操作步驟

  1. 進入叢集服務頁面。

    1. 在頂部功能表列處,根據實際情況選擇地區和資源群組
    2. 叢集管理頁面,單擊目的地組群操作列的叢集服務
  2. 叢集服務頁面,單擊FLUME服務地區的配置
  3. 配置core-1-1節點的Flume Agent並儲存配置。
    以下配置項請遵循開源Flume內容,詳情請參見Flume
    1. 配置頁面,單擊flume-conf.properties頁簽。
    2. 在上方的下拉式清單中選擇獨立節點配置core-1-1
    3. 請根據實際情況修改參數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.pathHDFS路徑。
      • 高可用叢集:例如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.transactionCapacityChannel在一次事務中傳遞Event的最大數量。預設值為10000。
      default-agent.channels.default-channel.dataDirsChannel儲存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。

    4. 儲存配置。
      1. 單擊下方的儲存
      2. 在彈出的對話方塊中,輸入執行原因,單擊確定
  4. 請參見步驟3配置core-1-2節點的Flume Agent並儲存配置。
  5. 配置Master節點群組的Flume Agent並儲存配置。
    以下配置項請遵循開源Flume內容,詳情請參見Flume
    1. 在上方的下拉式清單中選擇獨立節點配置master-1-1
    2. 請根據實際情況修改參數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.ignoreRenameWhenMultiMatchingFlume的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.hostnamecore-1-1節點的IP地址。
      default-agent.sinks.default-sink.portcore-1-1節點Flume Agent的Port。
      default-agent.sinks.k1.hostnamecore-1-2節點的IP地址。
      default-agent.sinks.k1.portcore-1-2節點Flume Agent的Port。
      default-agent.sinks.default-sink.batch-sizedefault-sink每次批量發送的Event數。例如,2000。
      default-agent.sinks.k1.batch-sizek1每次批量發送的Event數。例如,2000。
      default-agent.sinks.k1.type指定Sink類型。例如,avro。
      default-agent.sinks.k1.channel配置Sink。例如,default-channel。
    3. 儲存配置。
      1. 單擊下方的儲存
      2. 在彈出的對話方塊中,輸入執行原因,單擊確定
  6. 啟動Flume Agent。
    1. 在右上方選擇更多操作 > 重啟
    2. 在彈出的對話方塊中,輸入執行原因,單擊確定
    3. 確認對話方塊中,單擊確定
      執行完成後,日誌就從HDFS Audit同步至HDFS了。

      Flume Agent日誌的存放路徑為/var/log/emr/flume/default-agent/flume.log