Tüm Ürünler
Search
Belge Merkezi

E-MapReduce:Get started with JAR development

Son Güncelleme:Oct 05, 2026

İş mantığınızı içeren bir JAR paketi oluşturun ve Spark JAR işlerini geliştirmek üzere bu paketi yükleyin. Bu işlerin nasıl geliştirilip dağıtılacağını gösteren iki örnek sunulur.

Ön koşullar

  • Bir çalışma alanı oluşturmuş olmanız gerekir. Daha fazla bilgi için bkz. Çalışma alanlarını yönetme.

  • İş uygulamanızı geliştirmiş ve bir JAR paketi halinde derlemiş olmanız gerekir.

Yordam

1. Adım: JAR paketini geliştirin

EMR Serverless Spark, entegre bir JAR geliştirme ortamı sunmaz. Spark uygulamanızı yerel veya bağımsız bir ortamda kodlayın ve bir JAR dosyası olarak paketleyin.

Maven projenizin pom.xml dosyasına gerekli Spark bağımlılıklarını ekleyin. EMR Serverless Spark çalışma zamanı bu bağımlılıkları zaten içerdiğinden, derleme ve test aşamalarında erişilebilir kalmasını sağlarken çift paketleme ve sürüm çakışmalarını önlemek için scope değerini provided olarak ayarlayın.

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>3.5.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.12</artifactId>
    <version>3.5.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-hive_2.12</artifactId>
    <version>3.5.2</version>
    <scope>provided</scope>
</dependency>

DLF tablosunu sorgulama

public class HiveTableAccess {
    public static void main(String[] args) {
        SparkSession spark = SparkSession.builder()
                .appName("DlfTableAccessExample")
                .enableHiveSupport()
                .getOrCreate();
        spark.sql("SELECT * FROM test_table").show();
        spark.stop();
    }
}

Pi (π) değerini hesaplama

import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import java.util.ArrayList;
import java.util.List;
/**
 * Computes an approximation to pi
 * Usage: JavaSparkPi [partitions]
 */
public final class JavaSparkPi {
  public static void main(String[] args) throws Exception {
    SparkSession spark = SparkSession
      .builder()
      .appName("JavaSparkPi")
      .getOrCreate();
    JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
    int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
    int n = 100000 * slices;
    List<Integer> l = new ArrayList<>(n);
    for (int i = 0; i < n; i++) {
      l.add(i);
    }
    JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);
    int count = dataSet.map(integer -> {
      double x = Math.random() * 2 - 1;
      double y = Math.random() * 2 - 1;
      return (x * x + y * y <= 1) ? 1 : 0;
    }).reduce((integer, integer2) -> integer + integer2);
    System.out.println("Pi is roughly " + 4.0 * count / n);
    spark.stop();
  }
}

Test JAR paketini indirmek için SparkExample-1.0-SNAPSHOT.jar bağlantısına tıklayın.

2. Adım: JAR paketini yükleyin

  1. Yapıt yükleme sayfasına gidin.

    1. EMR konsolu üzerinde oturum açın.

    2. Sol gezinme bölmesinde EMR Serverless > Spark seçeneğini belirleyin.

    3. Spark sayfasında hedef çalışma alanınızın adına tıklayın.

    4. EMR Serverless Spark sayfasının sol gezinme bölmesinde Artifacts seçeneğine tıklayın.

  2. Artifacts sayfasında Upload File seçeneğine tıklayın.

  3. Upload File iletişim kutusunda yerel JAR paketinizi seçmek için yükleme alanına tıklayın veya paketi yükleme alanına sürükleyip bırakın.

    Bu örnekte SparkExample-1.0-SNAPSHOT.jar kullanılır.

3. Adım: İşi geliştirin ve çalıştırın

  1. EMR Serverless Spark sayfasının sol gezinme bölmesinde Development seçeneğine tıklayın.

  2. Development sekmesinde image simgesine tıklayın.

  3. Bir ad girin, tür olarak Application > JAR seçeneğini belirleyin ve ardından OK seçeneğine tıklayın.

  4. Sağ üst köşeden bir kaynak kuyruğu seçin.

    Kuyruk ekleme hakkında daha fazla bilgi için bkz. Kaynak kuyruklarını yönetme.

  5. Yeni iş düzenleyicide aşağıdaki parametreleri yapılandırın. Diğer ayarları varsayılan değerlerinde bırakın ve Run seçeneğine tıklayın.

    Parametre

    Açıklama

    Main JAR Resource

    Yüklediğiniz JAR paketini seçin. Bu örnekte SparkExample-1.0-SNAPSHOT.jar kullanılır.

    Main Class

    Spark işi için ana sınıf.

    • Pi değerinin yaklaşık hesaplaması için org.example.JavaSparkPi girin.

    • Hive tablosunu sorgulamak için org.example.HiveTableAccess girin.

  6. İş tamamlandıktan sonra alt kısımdaki Execution Records bölümüne gidin ve İşlemler sütununda Logs seçeneğine tıklayın.

    Logs panelinde Driver log > Stdout seçeneğini belirleyin. Pi is roughly 3.1403 çıktısı, Spark işinin başarıyla çalıştığını doğrular.

    Tablo sorgusu için örnek çıktı, tek bir kayıt içeren biçimlendirilmiş bir tablodur: id=1, name=jay.

4. Adım: İşi yayımlayın

Önemli

Yayımlanan işler, bir iş akışında görev olarak kullanılabilir.

  1. İş tamamlandıktan sonra sağ taraftaki Publish seçeneğine tıklayın.

  2. Görüntülenen iletişim kutusunda yayımlama bilgilerini girin ve OK seçeneğine tıklayın.

(İsteğe bağlı) 5. Adım: Spark kullanıcı arayüzünü görüntüleyin

Bir iş çalıştırıldıktan sonra yürütme ayrıntılarını Spark kullanıcı arayüzünde görüntüleyebilirsiniz.

  1. Sol gezinme bölmesinde Job History seçeneğine tıklayın.

  2. Application sayfasında hedef işi bulun ve İşlemler sütununda Spark UI seçeneğine tıklayın.

  3. Sayfada User: root, Scheduling Mode: FIFO ve Completed Jobs: 1 gibi ayrıntılar gösterilir. İş girişi 0 kimliğini, reduce at SparkPi.scala:38 açıklamasını, 4 sn süreyi ve aşamalar (1/1) ile görevler (2/2) için ilerleme durumunu görüntüler. Bu ayrıntılar, Spark Pi işinin başarıyla yürütüldüğünü doğrular.

İlgili belgeler

İşi yayımladıktan sonra bunu bir iş akışında görev olarak kullanabilirsiniz. Daha fazla bilgi için bkz. İş akışlarını yönetme. Tam bir iş orkestrasyonu örneği için bkz. SparkSQL Geliştirmeye Giriş.