Tüm Ürünler
Search
Belge Merkezi

DataWorks:EMR Shell düğümü

Son Güncelleme:Oct 05, 2026

DataWorks içindeki EMR Shell düğümleri, veri işleme, Hadoop bileşenlerini çağırma ve dosya yönetimi gibi gelişmiş işlemler için özel Shell betiklerini çalıştırır.

Önkoşullar

  • Düğüm geliştirmeye başlamadan önce, özel bir bileşen ortamına ihtiyacınız varsa resmi dataworks_emr_base_task_pod görüntüsü temelinde özel bir görüntü oluşturun ve bunu Data Studio'da kullanın. Daha fazla bilgi için bkz. Özel görüntü oluşturma ve Veri geliştirmede görüntüleri kullanma.

    Örneğin, özel bir görüntü oluştururken Spark JAR paketlerini değiştirebilir veya belirli libraries, files ya da JAR packages bağımlılıkları ekleyebilirsiniz.

  • Bir Alibaba Cloud EMR kümesi oluşturun ve bunu DataWorks ile kaydedin. Daha fazla bilgi için bkz. Yeni Data Studio: EMR hesaplama kaynağını ekleme.

  • (İsteğe bağlı, RAM kullanıcıları için) Görev geliştirme amacıyla kullanılan Resource Access Management (RAM) kullanıcısının çalışma alanına eklenmesi ve Development veya Workspace Administrator rolünün atanması gerekir (bu rol geniş kapsamlı izinler içerir ve dikkatle verilmelidir). Daha fazla bilgi için bkz. Çalışma alanı üyelerini ekleme.

    Kök hesap kullanıyorsanız bu adımı atlayın.

Sınırlamalar

  • EMR Shell düğümleri yalnızca sunucusuz kaynak grubu (önerilen) veya zamanlama için ayrılmış bir kaynak grubunda çalışabilir. Veri geliştirmede özel görüntü kullanmak sunucusuz bir kaynak grubu gerektirir.

  • DataWorks'te bir DataLake kümesi veya özel bir küme için meta verileri yönetmek üzere öncelikle küme üzerinde EMR-HOOK'u yapılandırmanız gerekir. Daha fazla bilgi için bkz. Hive için EMR-HOOK'u yapılandırma.

    Not

    Küme üzerinde EMR-HOOK yapılandırılmamışsa DataWorks'te meta verileri gerçek zamanlı olarak görüntüleyemez, denetim günlükleri oluşturamaz, veri soy ağacını gösteremez veya EMR ile ilgili yönetim görevlerini yürütemezsiniz.

  • spark-submit ile gönderilen görevler için deploy-mode değerini cluster olarak ayarlayın. client modu önerilmez.

  • EMR Shell düğümleri EMR kümelerinde değil, DataWorks zamanlama kaynak gruplarında çalışır. Bazı EMR bileşeni komutlarını kullanabilirsiniz ancak kaynak durumunu doğrudan EMR kümesinden okuyamazsınız. Bu nedenle gerekli tüm kaynakları öncelikle DataWorks'e yüklemeniz gerekir. Daha fazla bilgi için bkz. Kaynak Yönetimi.

  • EMR Shell düğümleri Python dosyalarının çalıştırılmasını desteklemez. Bunları çalıştırmak için bir Shell düğümü kullanın.

Yordam

  1. EMR Shell düğümü düzenleyicisinde aşağıdaki adımları uygulayın.

    Shell kodu geliştirme

    Gereksinimlerinize göre bir seçenek belirleyin:

    Seçenek 1: EMR JAR'ı yükleme ve referans verme

    Kaynakları yerel makinenizden Data Studio'ya yükleyin ve bunlara referans verin. Bir DataLake kümesi için bir EMR JAR kaynağına referans vermek üzere şu adımları izleyin. Bir kaynak DataWorks kullanıcı arayüzü üzerinden yüklemek için çok büyükse bunu HDFS'de depolayın ve kodunuzda buna referans verin.

    1. Bir EMR JAR kaynağı oluşturun.

      1. Daha fazla bilgi için bkz. Kaynak Yönetimi. Başlangıç verilerini ve JAR paketini hazırlama bölümünde oluşturulan JAR paketini emr/jars JAR kaynak dizininde saklayın. Click Upload seçeneğine tıklayın.

      2. Bir Storage Path, Data Sources ve Resource Group seçin.

      3. Save seçeneğine tıklayın.

      Storage Path için HDFS seçeneğini belirleyin.

    2. EMR JAR kaynağına referans verin.

      1. Oluşturduğunuz EMR Shell düğümünü açın ve kod düzenleyici sayfasına gidin.

      2. Sol gezinme bölmesinde Kaynak Yönetimi altında referans vermek istediğiniz kaynağı bulun (örneğin, onaliyun_mr_wordcount-1.0-SNAPSHOT.jar). Kaynağa sağ tıklayın ve Insert Resource Path seçeneğini seçin.

      3. Bir referans seçtikten sonra EMR Shell düğümünün kod düzenleme sayfasında başarı mesajı görünür; bu, kaynağın başarıyla referans alındığını gösterir. Aşağıdaki komutu çalıştırın ve kaynak paketini, paket adını ile yolu kendi değerlerinizle değiştirin.

      ##@resource_reference{"onaliyun_mr_wordcount-1.0-SNAPSHOT.jar"}
      onaliyun_mr_wordcount-1.0-SNAPSHOT.jar cn.apache.hadoop.onaliyun.examples.EmrWordCount oss://onaliyun-bucket-2/emr/datas/wordcount02/inputs oss://onaliyun-bucket-2/emr/datas/wordcount02/outputs
      Not

      EMR Shell düğümünde kod düzenlerken yorum satırları desteklenmez.

    Seçenek 2: OSS kaynağını doğrudan referans verme

    OSS kaynaklarını doğrudan OSS REF kullanarak referans verin. EMR düğümü çalıştırıldığında DataWorks, OSS kaynaklarını otomatik olarak yerel makineye yükler.

    ossref://{endpoint}/{bucket}/{object}
    • Endpoint: OSS için genel erişim uç noktası. Bu parametreyi boş bırakırsanız OSS paketi EMR kümesiyle aynı bölgede olmalıdır.

    • bucket: OSS'de nesneleri depolayan bir kapsayıcı olan paketin adıdır. Her paket benzersiz bir ada sahiptir. Mevcut hesap altındaki tüm paketleri görüntülemek için OSS konsolunda oturum açabilirsiniz.

    • object: Pakette depolanan belirli nesne; örneğin, bir dosya adı veya yol.

    Örnek

    1. Bir OSS paketinde örnek bir dosya yükleyin. Bu örnekte içeriği aşağıdaki gibi olan emr_shell_test.sh dosyasını kullanıyoruz:

      #!/bin/sh
      echo "Hello, DataWorks!"
    2. OSS kaynağını EMR Shell düğümünde doğrudan referans verin.

      sh ossref://oss-cn-shanghai.aliyuncs.com/test-oss-of-dataworks/emr_shell_test.sh
      Not

      Bu komutta oss-cn-shanghai.aliyuncs.com uç nokta, test-oss-of-dataworks paket adı ve emr_shell_test.sh ise nesne dosya adıdır.

      Komut, emr_shell_test.sh dosyasından aşağıdaki çıktıyı döndürür:

      ...
      >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Process ready to execute. command: sh ./emr_shell_test.sh
      >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Command state update to RUNNING
      >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Process start to execute...
      Process Output>>> Hello, DataWorks!
      ...

    EMR Shell zamanlama parametrelerini yapılandırma

    Değişkenleri Shell düzenleyicisinde ${değişken_adı} biçimini kullanarak tanımlayın, ardından düğüm düzenleyicisinin sağ tarafındaki Scheduling Parameters bölümünde Scheduling Settings altındaki değerler atayın. Bu işlem, zamanlanmış çalıştırmalar sırasında parametreleri dinamik olarak iletir. Daha fazla bilgi için bkz. Zamanlama parametrelerinin kaynakları ve ifadeleri. Örnek:

    DD=`date`;
    echo "hello world, $DD"
    ## Can be used with scheduling parameters
    echo ${var};
    Not

    Bir DataLake kümesi kullanıyorsanız aşağıdaki komut satırı araçları da desteklenir.

    • Shell komutları: /usr/bin ve /bin içindeki Shell komutları; örneğin ls ve echo.

    • YARN bileşenleri: hadoop, hdfs ve yarn.

    • Spark bileşenleri: spark-submit.

    • Sqoop bileşenleri: sqoop-export, sqoop-import, sqoop-import-all-tables ve daha fazlası.

    Bu bileşenleri bir RDS örneğine erişmek için kullanırsanız kaynak grubunun IP adresini RDS izin listesine eklemeniz gerekir.

    Shell görevini çalıştırma

    1. Run Configuration bölümünde Compute Resource ve Resource Group öğelerini yapılandırın.

      Not
      • Görev yürütme için gereken kaynaklara göre CUs for Scheduling da ayarlayabilirsiniz. Varsayılan CU değeri 0.25 değeridir.

      • Görev gereksinimlerinize göre bir Image seçebilirsiniz.

      • Genel ağda veya bir VPC ortamındaki bir veri kaynağına erişmek için veri kaynağına bağlanabilen bir zamanlama kaynak grubu kullanmanız gerekir. Daha fazla bilgi için bkz. Ağ bağlantısı çözümleri.

    2. Araç çubuğunda Shell görevini çalıştırmak için Run seçeneğine tıklayın.

  2. Düğümü periyodik olarak çalıştırmak için zamanlama özelliklerini yapılandırın. Daha fazla bilgi için bkz. Düğüm için zamanlama özelliklerini yapılandırma.

    Not

    Bileşen ortamını özelleştirmeniz gerekiyorsa resmi dataworks_emr_base_task_pod görüntüsü temelinde bir custom image oluşturabilir ve görüntüyü Veri Geliştirmede kullanabilirsiniz.

    Örneğin, özel bir görüntü oluştururken Spark JAR paketlerini değiştirebilir veya belirli libraries, files ya da JAR packages bağımlılıklarına başvurabilirsiniz.

  3. Düğümü dağıtın. Daha fazla bilgi için bkz. Düğümleri ve iş akışlarını dağıtma.

  4. Çalışma durumunu Operation Center'da görüntüleyin. Daha fazla bilgi için bkz. Operation Center'a giriş.

SSS

S: Eski zamanlama kaynak grubunda bir hosts eşlemesi yapılandırılmış ancak EMR Shell düğümü yine de çözümleme hatası bildiriyor. Bu sorunu nasıl çözebilirim?

C: Yapılandırılmış kaynak grubunu kullanarak EMR kümesini yeniden başlatın; böylece EMR Shell betiği yeni hosts eşlemesini tanır. Hesaplama kaynakları listesi sayfasına gidin, Kaynakları Başlat seçeneğine tıklayın ve ardından iletişim kutusunda Re-initialize seçeneğine tıklayın.

İlgili belgeler