Topik ini menjelaskan cara menggunakan Flume untuk mengalirkan data dari kluster E-MapReduce (EMR) Kafka ke layanan OSS-HDFS Alibaba Cloud.
Prasyarat
-
Layanan OSS-HDFS telah diaktifkan dan Anda memiliki izin akses yang diperlukan. Untuk informasi selengkapnya, lihat Aktifkan layanan OSS-HDFS.
-
Anda telah membuat kluster DataLake dan memilih layanan Flume. Untuk informasi selengkapnya, lihat Buat kluster.
-
Anda telah membuat kluster DataFlow dan memilih layanan Kafka. Untuk informasi selengkapnya, lihat Buat kluster.
Prosedur
-
Konfigurasikan Flume.
-
Buka halaman konfigurasi Flume.
-
Masuk ke Konsol E-MapReduce.
-
Di bilah navigasi atas, pilih Wilayah dan kelompok sumber daya.
-
Di halaman EMR on ECS, temukan kluster target lalu klik Services di kolom Actions.
-
Di tab Services, klik Configure di area layanan FLUME.
-
-
Atur ukuran maksimum heap Java Virtual Machine (JVM) (Xmx).
Menulis data dari Flume ke layanan OSS-HDFS membutuhkan banyak memori. Kami menyarankan Anda menambah nilai Xmx untuk Agen Flume.
-
Klik tab flume-env.sh.
Topik ini menggunakan konfigurasi global. Untuk mengonfigurasi node tertentu, pilih Independent Node Configuration dari daftar drop-down di halaman Configure untuk layanan FLUME.
-
Ubah nilai parameter JAVA_OPTS.
Sebagai contoh, untuk mengatur ukuran maksimum heap JVM menjadi 1 GB, ubah nilai parameter menjadi
-Xmx1g. -
Klik Save.
-
-
Ubah konfigurasi flume-conf.properties.
-
Klik tab flume-conf.properties.
Topik ini menggunakan konfigurasi global. Untuk mengonfigurasi node tertentu, pilih Independent Node Configuration dari daftar drop-down di halaman Configure untuk layanan FLUME.
-
Di editor untuk flume-conf.properties, masukkan konfigurasi berikut.
CatatanNilai default-agent pada contoh berikut harus sesuai dengan nilai parameter agent_name di halaman Configure untuk layanan FLUME.
default-agent.sources = source1 default-agent.sinks = k1 default-agent.channels = c1 default-agent.sources.source1.type = org.apache.flume.source.kafka.KafkaSource default-agent.sources.source1.channels = c1 default-agent.sources.source1.kafka.bootstrap.servers = <kafka-host1:port1,kafka-host2:port2...> default-agent.sources.source1.kafka.topics = flume-test default-agent.sources.source1.kafka.consumer.group.id = flume-test-group default-agent.sinks.k1.type = hdfs default-agent.sinks.k1.hdfs.path = oss://{yourBucketName}.{yourBucketRegion}.oss-dls.aliyuncs.com/{path} default-agent.sinks.k1.hdfs.fileType=DataStream # Gunakan saluran memori untuk menyimpan sementara event default-agent.channels.c1.type = memory default-agent.channels.c1.capacity = 100 default-agent.channels.c1.transactionCapacity = 100 # Hubungkan source dan sink ke saluran default-agent.sources.source1.channels = c1 default-agent.sinks.k1.channel = c1Parameter
Deskripsi
default-agent.sources.source1.kafka.bootstrap.servers
Hostname dan nomor port broker di kluster Kafka Anda.
default-agent.sinks.k1.hdfs.path
Jalur untuk OSS-HDFS harus dalam format oss://{yourBucketName}.{yourBucketRegion}.oss-dls.aliyuncs.com/{path}. Contohnya: oss://flume-test.cn-hangzhou.oss-dls.aliyuncs.com/result.
Komponen jalur:
-
{yourBucketName}: Masukkan nama Bucket tempat layanan OSS-HDFS diaktifkan.
-
{yourBucketRegion}: Masukkan ID wilayah Bucket tersebut.
-
{path}: Masukkan nama direktori layanan OSS-HDFS.
default-agent.channels.c1.capacity
Jumlah maksimum event yang dapat disimpan di saluran. Sesuaikan nilai ini berdasarkan lingkungan Anda.
default-agent.channels.c1.transactionCapacity
Jumlah maksimum event yang dapat ditulis oleh source atau diambil oleh sink dari saluran per transaksi. Sesuaikan nilai ini berdasarkan lingkungan Anda.
-
-
Klik Save.
-
-
-
Uji sinkronisasi data.
- Sambungkan ke kluster EMR Dataflow menggunakan SSH. Untuk informasi selengkapnya, lihat Masuk ke kluster.
- Buat topik bernama flume-test.
kafka-topics.sh --partitions 10 --replication-factor 2 --zookeeper master-1-1:2181/emr-kafka --topic flume-test --create -
Hasilkan data uji.
kafka-console-producer.sh --topic flume-test --broker-list master-1-1:9092Sebagai contoh, masukkan
abclalu tekan Enter.Sebuah file akan dibuat di jalur oss://flume-test.cn-hangzhou.oss-dls.aliyuncs.com/result. File tersebut diberi nama dalam format FlumeData.xxxx, dengan stempel waktu saat ini dalam milidetik sebagai akhiran.