全部产品
Search
文档中心

E-MapReduce:Sinkronkan log audit ke HDFS

更新时间:Jun 24, 2025

E-MapReduce (EMR) Flume dapat dijalankan dengan berbagai cara. Topik ini menjelaskan cara memodifikasi konfigurasi Flume dan memulai Agen Flume di konsol EMR untuk menyinkronkan log audit ke HDFS secara real-time.

Prasyarat

Sebuah kluster data lake EMR telah dibuat, dan Flume dipilih dari layanan opsional selama pembuatan kluster. Untuk informasi lebih lanjut tentang cara membuat kluster, lihat Buat sebuah kluster.

Prosedur

  1. Pergi ke tab Layanan.

    1. Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih grup sumber daya sesuai kebutuhan bisnis Anda.
    2. Di halaman EMR on ECS, klik Services di kolom Tindakan kluster yang ingin Anda kelola.
  2. Di tab Services, klik Configure di bagian layanan Flume.
  3. Konfigurasikan Agen Flume node core-1-1 dan simpan konfigurasinya.
    Atur parameter berdasarkan konfigurasi di Flume open source. Untuk informasi lebih lanjut, lihat Apache Flume.
    1. Di tab Configure, klik subtab flume-conf.properties.
    2. Pilih Independent Node Configuration dan core-1-1 dari daftar drop-down.
    3. Ubah nilai parameter flume-conf.properties sesuai kebutuhan.
      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
      ParameterDeskripsi
      default-agent.sinksMenentukan nama semua sink. Contoh: default-sink.
      default-agent.sourcesMenentukan nama semua sumber. Contoh: default-source.
      default-agent.channelsMenentukan nama semua saluran. Contoh: default-channel.
      default-agent.sinks.default-sink.hdfs.pathJalur HDFS.
      • Contoh untuk kluster high-availability (HA): hdfs://emr-cluster/path
      • Contoh untuk kluster non-HA: hdfs://master-1-1:9000/path
      default-agent.sinks.default-sink.hdfs.fileTypeSetel nilainya menjadi DataStream.
      default-agent.sinks.default-sink.hdfs.rollSizeMenentukan ukuran file untuk memicu rolling. Saat ukuran file sementara mencapai nilai parameter ini, file baru akan dibuat berdasarkan rolling. Satuan: byte.

      Jika Anda menyetel parameter ini ke 0, file sementara tidak akan digulung berdasarkan ukuran file.

      default-agent.sinks.default-sink.hdfs.rollCountMenentukan jumlah event untuk memicu rolling. Saat jumlah event mencapai nilai parameter ini, file sementara akan digulung untuk menghasilkan file baru.

      Jika Anda menyetel parameter ini ke 0, file sementara tidak akan digulung berdasarkan jumlah event.

      default-agent.sinks.default-sink.hdfs.rollIntervalMenentukan interval untuk menghasilkan file baru. Satuan: detik. Contoh: 86400.
      default-agent.sinks.default-sink.hdfs.batchSizeMenentukan jumlah event yang ditulis ke file sebelum disimpan ke HDFS. Contoh: 51200.
      default-agent.sinks.default-sink.channelMenentukan nama saluran default-sink.
      default-agent.sources.default-source.bindAlamat IP terkait. Jika Anda menyetel parameter ini ke 0.0.0.0, semua alamat IP mesin tersebut akan terkait.
      default-agent.sources.default-source.portPort mendengarkan. Setel parameter ini sesuai kebutuhan.
      default-agent.sources.default-source.channelsNama saluran default-source.
      default-agent.channels.default-channel.transactionCapacityJumlah maksimum event yang dilewatkan oleh saluran dalam satu transaksi. Nilai default: 10000.
      default-agent.channels.default-channel.dataDirsOpsional. Jalur tempat event disimpan.

      Nilai default: ~/.flume/file-channel/data.

      default-agent.channels.default-channel.checkpointDirOpsional. Jalur tempat file checkpoint disimpan.

      Nilai default: ~/.flume/file-channel/checkpoint.

      default-agent.channels.default-channel.capacityOpsional. Setel parameter ini berdasarkan pengaturan parameter rolling HDFS sebelumnya.

      Nilai default: 1000000.

    4. Simpan konfigurasi.
      1. Klik Save di pojok kiri bawah.
      2. Di kotak dialog yang muncul, masukkan alasan eksekusi dan klik Save.
  4. Konfigurasikan Agen Flume node core-1-2 dan simpan konfigurasi dengan merujuk pada Langkah 3.
  5. Konfigurasikan Agen Flume grup node master dan simpan konfigurasi.
    Atur parameter berdasarkan konfigurasi di Flume open source. Untuk informasi lebih lanjut, lihat Apache Flume.
    1. Di tab Konfigurasikan, pilih Independent Node Configuration dan master-1-1 dari daftar drop-down.
    2. Ubah nilai parameter flume-conf.properties sesuai kebutuhan.
      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
      ParameterDeskripsi
      default-agent.sinksMenentukan nama semua sink. Contoh: default-sink k1.
      default-agent.sourcesMenentukan nama semua sumber. Contoh: default-source.
      default-agent.channelsMenentukan nama semua saluran. Contoh: default-channel.
      default-agent.sources.default-source.filegroups.f1Jalur log yang dihasilkan. Nilai default: /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.*.
      default-agent.sources.default-source.positionFileOpsional. Jalur tempat file posisi disimpan.

      Nilai default: ~/.flume/taildir_position.json.

      default-agent.channels.default-channel.checkpointDirOpsional. Jalur tempat file checkpoint disimpan.
      default-agent.channels.default-channel.dataDirsJalur tempat event disimpan.
      default-agent.channels.default-channel.capacityOpsional. Setel parameter ini berdasarkan pengaturan parameter rolling HDFS sebelumnya.
      default-agent.sources.default-source.batchSizeJumlah maksimum event yang ditulis ke saluran dalam satu waktu. Contoh: 2000.
      default-agent.channels.default-channel.transactionCapacityJumlah maksimum event yang diambil setiap saluran dari sumber atau didorong ke sink. Contoh: 2000.
      default-agent.sources.default-source.ignoreRenameWhenMultiMatchingSaat sumber Flume taildir menggunakan wildcard untuk mencocokkan file log4j yang dirotasi dalam grup file, terjadi duplikasi data. Anda dapat menyetel parameter ini ke true untuk mencegah masalah ini.
      default-agent.sinkgroupsMenentukan nama semua grup sink. Contoh: g1.
      default-agent.sinkgroups.g1.sinksMenentukan nama semua sink dalam grup sink g1. Contoh: default-sink k1.
      default-agent.sinkgroups.g1.processor.typeMenentukan tipe logika pemrosesan grup sink g1. Nilai valid:
      • default: Hanya satu sink digunakan.
      • failover: Failover diperbolehkan.
      • load_balance: Load balancing diperbolehkan.
      default-agent.sinkgroups.g1.processor.priority.default-sinkMenentukan bobot sink bernama default-sink dalam grup sink g1. Jika Anda menyetel parameter ini ke nilai yang lebih tinggi, default-sink akan diprioritaskan. Misalnya, Anda dapat menyetel parameter ini ke 10.
      default-agent.sinkgroups.g1.processor.priority.k1Menentukan bobot sink k1 dalam grup sink g1. Jika Anda menyetel parameter ini ke nilai yang lebih tinggi, sink k1 akan diprioritaskan. Misalnya, Anda dapat menyetel parameter ini ke 5.
      default-agent.sinks.default-sink.hostnameAlamat IP node core-1-1.
      default-agent.sinks.default-sink.portNomor port agen Flume pada node core-1-1.
      default-agent.sinks.k1.hostnameAlamat IP node core-1-2.
      default-agent.sinks.k1.portNomor port agen Flume pada node core-1-2.
      default-agent.sinks.default-sink.batch-sizeJumlah event yang dikirim oleh default-sink dalam satu waktu. Contoh: 2000.
      default-agent.sinks.k1.batch-sizeJumlah event yang dikirim oleh sink k1 dalam satu waktu. Contoh: 2000.
      default-agent.sinks.k1.typeMenentukan tipe sink. Contoh: avro.
      default-agent.sinks.k1.channelMengonfigurasi saluran untuk sink. Contoh: default-channel.
    3. Simpan konfigurasi.
      1. Klik Save di pojok kiri bawah.
      2. Di kotak dialog yang muncul, masukkan alasan eksekusi dan klik Save.
  6. Mulai Agen Flume.
    1. Di pojok kanan atas, pilih More > Restart.
    2. Di kotak dialog yang muncul, atur parameter Execution Reason dan klik OK.
    3. Di pesan Confirm, klik OK.
      Log audit disinkronkan ke HDFS.

      Log Agen Flume disimpan dalam file flume.log di direktori /var/log/emr/flume/default-agent/flume.log.