Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Use Flink on an EMR cluster to write data to the OSS-HDFS service

Son Güncelleme:Oct 01, 2026

Kaldığı yerden devam ederek yazma özelliği, verilerin EXACTLY_ONCE semantiği kullanılarak depolama ortamına yazılmasını sağlar. Bu konuda, bir E-MapReduce (EMR) kümesinde Apache Flink kullanarak verilerin OSS-HDFS hizmetine kaldığı yerden devam ederek nasıl yazılacağı açıklanmaktadır.

Örnek

  1. Genel yapılandırmalar

    EXACTLY_ONCE semantiğini kullanarak verileri OSS-HDFS hizmetine yazmak için aşağıdaki yapılandırmaları tamamlamanız gerekir:

    1. Flink için kontrol noktalarını etkinleştirin.

      Örnek:

      1. Aşağıdaki gibi bir StreamExecutionEnvironment nesnesi oluşturun.

        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
      2. Kontrol noktalarını etkinleştirmek için aşağıdaki komutu çalıştırın.

        env.enableCheckpointing(<userDefinedCheckpointInterval>, CheckpointingMode.EXACTLY_ONCE);
    2. Kafka gibi yeniden oynatılabilen bir veri kaynağı kullanın.

  2. Basit kullanım

    Ek bağımlılıklar gerekmez. Veri yazmak için oss:// önekiyle başlayan ve OSS-HDFS hizmetinin paketi ile uç noktasını belirten bir yol kullanın.

    1. Bir havuz ekleyin.

      Aşağıdaki örnek, bir DataStream<String> nesnesinin OSS-HDFS hizmetine nasıl yazılacağını göstermektedir.

      String outputPath = "oss://{user-defined-oss-hdfs-bucket.oss-hdfs-endpoint}/{user-defined-dir}";
      StreamingFileSink<String> sink = StreamingFileSink.forRowFormat(
              new Path(outputPath),
              new SimpleStringEncoder<String>("UTF-8")
      ).build();
      outputStream.addSink(sink);
      Önemli

      Yoldaki .{oss-hdfs-endpoint} bölümü isteğe bağlıdır. Bu bölümü atlarsanız, Flink veya Hadoop bileşeninde OSS-HDFS hizmetinin uç noktasını doğru şekilde yapılandırmanız gerekir.

    2. Flink işini yürütmek için env.execute() kullanın.

(İsteğe bağlı) Özel ayarları yapılandırın

Belirli özellikleri etkinleştirmek amacıyla Flink işlerini gönderirken özel parametreler yapılandırabilirsiniz.

YARN tabanlı Flink iş gönderimlerini yapılandırmak için -yD kullanın:

<flink_home>/bin/flink run -m yarn-cluster -yD key1=value1 -yD key2=value2 ...

Entropi enjeksiyonu, hedef yoldaki belirtilen bir dizeyi rastgele bir dizeyle değiştirerek yazmaları bölümler arasında dağıtır ve performansı artırır.

OSS-HDFS yazmaları için aşağıdaki parametreleri yapılandırın:

oss.entropy.key=<user-defined-key>
oss.entropy.length=<user-defined-length>

Yazma işlemi sırasında, yoldaki <user-defined-key> dizesi, uzunluğu <user-defined-length> değerine eşit olan rastgele bir dizeyle değiştirilir. <user-defined-length> değeri 0'dan büyük olmalıdır.