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_podgö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,filesya daJAR packagesbağı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.
NotKü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-submitile gönderilen görevler içindeploy-modedeğeriniclusterolarak ayarlayın.clientmodu ö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
-
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.
-
Bir EMR JAR kaynağı oluşturun.
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/jarsJAR kaynak dizininde saklayın. Click Upload seçeneğine tıklayın.Bir Storage Path, Data Sources ve Resource Group seçin.
Save seçeneğine tıklayın.
Storage Path için HDFS seçeneğini belirleyin.
-
EMR JAR kaynağına referans verin.
Oluşturduğunuz EMR Shell düğümünü açın ve kod düzenleyici sayfasına gidin.
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.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/outputsNotEMR 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
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};NotBir DataLake kümesi kullanıyorsanız aşağıdaki komut satırı araçları da desteklenir.
Shell komutları:
/usr/binve/biniçindeki Shell komutları; örneğin ls ve echo.YARN bileşenleri:
hadoop,hdfsveyarn.Spark bileşenleri:
spark-submit.Sqoop bileşenleri:
sqoop-export,sqoop-import,sqoop-import-all-tablesve 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
-
Run Configuration bölümünde Compute Resource ve Resource Group öğelerini yapılandırın.
NotGörev yürütme için gereken kaynaklara göre CUs for Scheduling da ayarlayabilirsiniz. Varsayılan CU değeri
0.25değ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.
Araç çubuğunda Shell görevini çalıştırmak için Run seçeneğine tıklayın.
-
-
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.
NotBileşen ortamını özelleştirmeniz gerekiyorsa resmi
dataworks_emr_base_task_podgö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,filesya daJAR packagesbağımlılıklarına başvurabilirsiniz. Düğümü dağıtın. Daha fazla bilgi için bkz. Düğümleri ve iş akışlarını dağıtma.
Ç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
EMR Shell düğümünde Python 2 veya Python 3 kullanarak Python betiklerini çalıştırmak için bkz. Shell türü düğümlerde Python betiklerini çalıştırma.
EMR Shell düğümünde ossutil kullanmak için bkz. Shell türü düğümlerde ossutil kullanma.