E-MapReduce mendukung beberapa cara menjalankan Flume. Topik ini menjelaskan cara memodifikasi konfigurasi Flume di Konsol E-MapReduce untuk menjalankan agen Flume yang menyinkronkan log audit HDFS ke HDFS secara real time.
Prasyarat
Kluster data lake harus dibuat dengan layanan Flume yang dipilih. Untuk informasi selengkapnya, lihat Buat kluster.
Prosedur
Buka halaman Services.
Masuk ke Konsol E-MapReduce.
Pada bilah navigasi atas, pilih Wilayah dan kelompok sumber daya.
Pada halaman EMR on ECS, klik Services di kolom Actions kluster target.
Pada halaman Services, klik Configure di bagian layanan Flume.
Konfigurasikan agen Flume pada node core-1-1 dan simpan konfigurasi tersebut.
Konfigurasi ini berdasarkan Flume open-source. Untuk informasi selengkapnya, lihat dokumentasi resmi Flume.
Pada halaman Configure, klik tab flume-conf.properties.
Dari daftar drop-down di bagian atas, pilih Independent Node Configuration dan core-1-1.
Modifikasi parameter dalam 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
Nama sink agen. Contohnya, default-sink.
default-agent.sources
Nama source agen. Contohnya, default-source.
default-agent.channels
Nama channel agen. Contohnya, default-channel.
default-agent.sinks.default-sink.hdfs.path
Jalur tujuan di HDFS.
Untuk kluster high-availability (HA): Contohnya, hdfs://emr-cluster/path.
Untuk kluster non-HA: Contohnya, hdfs://master-1-1:9000/path.
default-agent.sinks.default-sink.hdfs.fileType
Tipe file. Nilai ini harus diatur ke DataStream.
default-agent.sinks.default-sink.hdfs.rollSize
Ukuran file dalam byte yang memicu roll. Ketika file temporary mencapai ukuran ini, file tersebut akan diganti nama dan dipindahkan ke lokasi tujuan akhirnya.
Atur ke 0 untuk menonaktifkan rolling berdasarkan ukuran.
default-agent.sinks.default-sink.hdfs.rollCount
Jumlah event yang memicu roll file. Ketika sebuah file berisi sejumlah event ini, file tersebut akan di-rolled.
Atur ke 0 untuk menonaktifkan rolling berdasarkan jumlah event.
default-agent.sinks.default-sink.hdfs.rollInterval
Interval dalam detik untuk melakukan roll file, terlepas dari ukuran atau jumlah event-nya. Contohnya, 86400.
default-agent.sinks.default-sink.hdfs.batchSize
Jumlah event yang ditulis ke HDFS dalam satu batch. Contohnya, 51200.
default-agent.sinks.default-sink.channel
Nama channel untuk default-sink.
default-agent.sources.default-source.bind
Alamat IP atau hostname tempat source melakukan bind. Atur ke 0.0.0.0 untuk melakukan bind ke semua antarmuka jaringan.
default-agent.sources.default-source.port
Port tempat source mendengarkan event. Konfigurasikan port ini sesuai kebutuhan.
default-agent.sources.default-source.channels
Nama channel untuk default-source.
default-agent.channels.default-channel.transactionCapacity
Jumlah maksimum event yang dapat ditangani channel dalam satu transaksi. Nilai default-nya adalah 10000.
default-agent.channels.default-channel.dataDirs
Jalur tempat channel menyimpan data event.
Parameter ini opsional. Jalur default-nya adalah ~/.flume/file-channel/data.
default-agent.channels.default-channel.checkpointDir
Jalur tempat file titik pemeriksaan disimpan.
Parameter ini opsional. Jalur default-nya adalah ~/.flume/file-channel/checkpoint.
default-agent.channels.default-channel.capacity
Jumlah maksimum event yang dapat disimpan oleh channel. Atur nilai ini berdasarkan pengaturan roll HDFS Anda.
Parameter ini opsional. Nilai default-nya adalah 1000000.
- Simpan konfigurasi.
- Di bagian bawah halaman, klik Save.
- Pada kotak dialog, masukkan alasan perubahan lalu klik OK.
Ulangi Langkah 3 untuk mengonfigurasi agen Flume pada node core-1-2.
Konfigurasikan agen Flume untuk kelompok node master dan simpan konfigurasinya.
Konfigurasi ini berdasarkan Flume open-source. Untuk informasi selengkapnya, lihat dokumentasi resmi Flume.
Dari daftar drop-down di bagian atas, pilih Independent Node Configuration dan master-1-1.
Modifikasi parameter dalam 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
Nama sink agen. Contohnya, default-sink k1.
default-agent.sources
Nama source agen. Contohnya, default-source.
default-agent.channels
Nama channel agen. Contohnya, default-channel.
default-agent.sources.default-source.filegroups.f1
Jalur ke file log yang akan dikumpulkan. Jalur default-nya adalah /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.*.
default-agent.sources.default-source.positionFile
Jalur ke file posisi yang melacak progres pembacaan.
Parameter ini opsional. Jalur default-nya adalah ~/.flume/taildir_position.json.
default-agent.channels.default-channel.checkpointDir
Jalur tempat file titik pemeriksaan disimpan.
default-agent.channels.default-channel.dataDirs
Jalur tempat channel menyimpan data event.
default-agent.channels.default-channel.capacity
Atur nilai ini berdasarkan pengaturan roll HDFS Anda.
default-agent.sources.default-source.batchSize
Jumlah maksimum pesan yang ditulis ke channel dalam satu batch. Contoh: 2000.
default-agent.channels.default-channel.transactionCapacity
Jumlah maksimum event yang diambil channel dari source atau didorong ke sink dalam setiap transaksi. Contoh: 2000.
default-agent.sources.default-source.ignoreRenameWhenMultiMatching
Duplikasi data dapat terjadi ketika source taildir Flume menggunakan wildcard dalam filegroups untuk mencocokkan file Log4j yang telah dirotasi. Atur parameter ini ke true untuk mencegah masalah ini.
default-agent.sinkgroups
Nama kelompok sink agen. Contohnya, g1.
default-agent.sinkgroups.g1.sinks
Nama sink dalam kelompok sink g1. Contohnya, default-sink k1.
default-agent.sinkgroups.g1.processor.type
Logika pemrosesan untuk kelompok sink g1. Nilai yang valid adalah:
default: Prosesor sink default.
failover: Menerapkan failover untuk kelompok sink.
load_balance: Menerapkan load balancing untuk kelompok sink.
default-agent.sinkgroups.g1.processor.priority.default-sink
Prioritas default-sink dalam kelompok sink g1. Nilai yang lebih tinggi memberikan prioritas lebih tinggi pada sink tersebut. Contoh: 10.
default-agent.sinkgroups.g1.processor.priority.k1
Prioritas sink k1 dalam kelompok sink g1. Nilai yang lebih tinggi memberikan prioritas lebih tinggi pada sink tersebut. Contoh: 5.
default-agent.sinks.default-sink.hostname
Alamat IP node core-1-1.
default-agent.sinks.default-sink.port
Port agen Flume pada node core-1-1.
default-agent.sinks.k1.hostname
Alamat IP node core-1-2.
default-agent.sinks.k1.port
Port agen Flume pada node core-1-2.
default-agent.sinks.default-sink.batch-size
Jumlah event yang dikirim dalam setiap batch oleh default-sink. Contoh: 2000.
default-agent.sinks.k1.batch-size
Jumlah event yang dikirim dalam setiap batch oleh sink k1. Contoh: 2000.
default-agent.sinks.k1.type
Tipe sink. Contohnya, avro.
default-agent.sinks.k1.channel
Channel yang digunakan oleh sink. Contohnya, default-channel.
- Simpan konfigurasi.
- Di bagian bawah halaman, klik Save.
- Pada kotak dialog, masukkan alasan perubahan lalu klik OK.
Jalankan agen Flume.
Di pojok kanan atas, pilih .
Pada kotak dialog yang muncul, masukkan Execution Reason lalu klik OK.
Pada kotak dialog Confirm, klik OK.
Setelah restart, agen Flume mulai menyinkronkan log audit HDFS ke HDFS.
Log agen Flume disimpan di /var/log/emr/flume/default-agent/flume.log.