Bu konu, E-MapReduce (EMR) Kafka kümesinden Alibaba Cloud OSS-HDFS hizmetine Flume kullanarak nasıl veri akışı yapılacağını açıklar.
Önkoşullar
OSS-HDFS hizmeti etkinleştirilmiş ve gerekli erişim izinlerine sahipsiniz. Daha fazla bilgi için bkz. OSS-HDFS hizmetini etkinleştirme.
Bir DataLake kümesi oluşturdunuz ve Flume hizmetini seçtiniz. Daha fazla bilgi için bkz. Küme oluşturma.
Bir DataFlow kümesi oluşturdunuz ve Kafka hizmetini seçtiniz. Daha fazla bilgi için bkz. Küme oluşturma.
Yordam
-
Flume'u yapılandırın.
-
Flume yapılandırma sayfasına gidin.
E-MapReduce konsolu üzerinden oturum açın.
Üst gezinme çubuğunda bir bölge ve kaynak grubu seçin.
EMR on ECS sayfasında hedef kümeyi bulun ve İşlemler sütunundaki Services seçeneğine tıklayın.
Services sekmesinde, FLUME hizmet alanındaki Configure seçeneğine tıklayın.
-
Maksimum Java Sanal Makinesi (JVM) yığın boyutunu (Xmx) ayarlayın.
Flume'dan OSS-HDFS hizmetine veri yazmak yoğun bellek kullanımı gerektirir. Flume aracı için Xmx değerini artırmanızı öneririz.
-
flume-env.sh sekmesine tıklayın.
Bu konuda genel yapılandırma kullanılmaktadır. Belirli bir düğümü yapılandırmak için FLUME hizmetinin Configure sayfasındaki açılır listeden Independent Node Configuration seçeneğini belirleyin.
-
JAVA_OPTS parametresinin değerini değiştirin.
Örneğin, maksimum JVM yığın boyutunu 1 GB olarak ayarlamak için parametre değerini
-Xmx1golarak değiştirin. Kaydedin.
-
-
flume-conf.properties yapılandırmasını değiştirin.
-
flume-conf.properties sekmesine tıklayın.
Bu konuda genel yapılandırma kullanılmaktadır. Belirli bir düğümü yapılandırmak için FLUME hizmetinin Configure sayfasındaki açılır listeden Independent Node Configuration seçeneğini belirleyin.
-
flume-conf.properties düzenleyicisine aşağıdaki yapılandırmayı girin.
NotAşağıdaki örnekteki default-agent değeri, FLUME hizmetinin Configure sayfasındaki agent_name parametresinin değeriyle eşleşmelidir.
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 # Use a memory channel to buffer events default-agent.channels.c1.type = memory default-agent.channels.c1.capacity = 100 default-agent.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel default-agent.sources.source1.channels = c1 default-agent.sinks.k1.channel = c1Parametre
Açıklama
default-agent.sources.source1.kafka.bootstrap.servers
Kafka kümenizdeki broker'ların ana bilgisayar adları ve bağlantı noktası numaraları.
default-agent.sinks.k1.hdfs.path
OSS-HDFS yolu oss://{yourBucketName}.{yourBucketRegion}.oss-dls.aliyuncs.com/{path} biçiminde olmalıdır. Örneğin: oss://flume-test.cn-hangzhou.oss-dls.aliyuncs.com/result.
Yol bileşenleri:
-
{yourBucketName}: OSS-HDFS hizmetinin etkinleştirildiği paketin adını girin.
-
{yourBucketRegion}: Paketin bölge kimliğini girin.
-
{path}: OSS-HDFS hizmetinin dizin adını girin.
default-agent.channels.c1.capacity
Kanalda depolanabilecek maksimum olay sayısı. Bu değeri ortamınıza göre ayarlayın.
default-agent.channels.c1.transactionCapacity
Bir işlem başına bir kaynağın kanala yazabileceği veya bir havuzun kanaldan alabileceği maksimum olay sayısı. Bu değeri ortamınıza göre ayarlayın.
-
Kaydedin.
-
-
-
Veri senkronizasyonunu test edin.
SSH kullanarak EMR Dataflow kümesine bağlanın. Daha fazla bilgi için bkz. Kümeye oturum açma.
-
flume-test adlı bir konu oluşturun.
kafka-topics.sh --partitions 10 --replication-factor 2 --zookeeper master-1-1:2181/emr-kafka --topic flume-test --create -
Test verisi üretin.
kafka-console-producer.sh --topic flume-test --broker-list master-1-1:9092Örneğin,
abcgirin ve Enter tuşuna basın.oss://flume-test.cn-hangzhou.oss-dls.aliyuncs.com/result yolunda bir dosya oluşturulur. Dosya adı FlumeData.xxxx biçimindedir ve sonek olarak milisaniye cinsinden geçerli zaman damgasını içerir.