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
- Pergi ke tab Layanan.
- Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih grup sumber daya sesuai kebutuhan bisnis Anda.
- Di halaman EMR on ECS, klik Services di kolom Tindakan kluster yang ingin Anda kelola.
- Di tab Services, klik Configure di bagian layanan Flume.
- 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.
- Di tab Configure, klik subtab flume-conf.properties.
- Pilih Independent Node Configuration dan core-1-1 dari daftar drop-down.
- 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 = 1000000Parameter Deskripsi default-agent.sinks Menentukan nama semua sink. Contoh: default-sink. default-agent.sources Menentukan nama semua sumber. Contoh: default-source. default-agent.channels Menentukan nama semua saluran. Contoh: default-channel. default-agent.sinks.default-sink.hdfs.path Jalur 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.fileType Setel nilainya menjadi DataStream. default-agent.sinks.default-sink.hdfs.rollSize Menentukan 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.rollCount Menentukan 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.rollInterval Menentukan interval untuk menghasilkan file baru. Satuan: detik. Contoh: 86400. default-agent.sinks.default-sink.hdfs.batchSize Menentukan jumlah event yang ditulis ke file sebelum disimpan ke HDFS. Contoh: 51200. default-agent.sinks.default-sink.channel Menentukan nama saluran default-sink. default-agent.sources.default-source.bind Alamat IP terkait. Jika Anda menyetel parameter ini ke 0.0.0.0, semua alamat IP mesin tersebut akan terkait. default-agent.sources.default-source.port Port mendengarkan. Setel parameter ini sesuai kebutuhan. default-agent.sources.default-source.channels Nama saluran default-source. default-agent.channels.default-channel.transactionCapacity Jumlah maksimum event yang dilewatkan oleh saluran dalam satu transaksi. Nilai default: 10000. default-agent.channels.default-channel.dataDirs Opsional. Jalur tempat event disimpan. Nilai default: ~/.flume/file-channel/data.
default-agent.channels.default-channel.checkpointDir Opsional. Jalur tempat file checkpoint disimpan. Nilai default: ~/.flume/file-channel/checkpoint.
default-agent.channels.default-channel.capacity Opsional. Setel parameter ini berdasarkan pengaturan parameter rolling HDFS sebelumnya. Nilai default: 1000000.
- Simpan konfigurasi.
- Klik Save di pojok kiri bawah.
- Di kotak dialog yang muncul, masukkan alasan eksekusi dan klik Save.
- Konfigurasikan Agen Flume node core-1-2 dan simpan konfigurasi dengan merujuk pada Langkah 3.
- Konfigurasikan Agen Flume grup node master dan simpan konfigurasi.Atur parameter berdasarkan konfigurasi di Flume open source. Untuk informasi lebih lanjut, lihat Apache Flume.
- Di tab Konfigurasikan, pilih Independent Node Configuration dan master-1-1 dari daftar drop-down.
- 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-channelParameter Deskripsi default-agent.sinks Menentukan nama semua sink. Contoh: default-sink k1. default-agent.sources Menentukan nama semua sumber. Contoh: default-source. default-agent.channels Menentukan nama semua saluran. Contoh: default-channel. default-agent.sources.default-source.filegroups.f1 Jalur log yang dihasilkan. Nilai default: /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.*. default-agent.sources.default-source.positionFile Opsional. Jalur tempat file posisi disimpan. Nilai default: ~/.flume/taildir_position.json.
default-agent.channels.default-channel.checkpointDir Opsional. Jalur tempat file checkpoint disimpan. default-agent.channels.default-channel.dataDirs Jalur tempat event disimpan. default-agent.channels.default-channel.capacity Opsional. Setel parameter ini berdasarkan pengaturan parameter rolling HDFS sebelumnya. default-agent.sources.default-source.batchSize Jumlah maksimum event yang ditulis ke saluran dalam satu waktu. Contoh: 2000. default-agent.channels.default-channel.transactionCapacity Jumlah maksimum event yang diambil setiap saluran dari sumber atau didorong ke sink. Contoh: 2000. default-agent.sources.default-source.ignoreRenameWhenMultiMatching Saat 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.sinkgroups Menentukan nama semua grup sink. Contoh: g1. default-agent.sinkgroups.g1.sinks Menentukan nama semua sink dalam grup sink g1. Contoh: default-sink k1. default-agent.sinkgroups.g1.processor.type Menentukan 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-sink Menentukan 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.k1 Menentukan 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.hostname Alamat IP node core-1-1. default-agent.sinks.default-sink.port Nomor port agen Flume pada node core-1-1. default-agent.sinks.k1.hostname Alamat IP node core-1-2. default-agent.sinks.k1.port Nomor port agen Flume pada node core-1-2. default-agent.sinks.default-sink.batch-size Jumlah event yang dikirim oleh default-sink dalam satu waktu. Contoh: 2000. default-agent.sinks.k1.batch-size Jumlah event yang dikirim oleh sink k1 dalam satu waktu. Contoh: 2000. default-agent.sinks.k1.type Menentukan tipe sink. Contoh: avro. default-agent.sinks.k1.channel Mengonfigurasi saluran untuk sink. Contoh: default-channel. - Simpan konfigurasi.
- Klik Save di pojok kiri bawah.
- Di kotak dialog yang muncul, masukkan alasan eksekusi dan klik Save.
- Mulai Agen Flume.
- Di pojok kanan atas, pilih .
- Di kotak dialog yang muncul, atur parameter Execution Reason dan klik OK.
- 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.