Çalıştırma verimliliğini artırmak amacıyla yapılandırılmış verileri dağıtık bir SQL sorgu motoruyla işlemek için bir E-MapReduce (EMR) Spark SQL düğümü oluşturun.
Ö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ünü temel alarak ö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 için kullanılan Resource Access Management (RAM) kullanıcısının çalışma alanına eklenmiş ve Development veya Workspace Administrator rolüne atanmış olması 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.
Göreviniz için belirli bir geliştirme ortamı oluşturmak üzere bir Custom image özel görüntüsü kullanabilirsiniz.
Sınırlamalar
EMR Shell düğümleri yalnızca bir serverless kaynak grubu (önerilen) veya zamanlama için ayrılmış bir kaynak grubunda çalıştırılabilir. Veri geliştirmede özel görüntü kullanmak için serverless resource group gereklidir.
-
DataWorks'te bir DataLake veya özel kümenin meta verilerini yönetmek için öncelikle kümede EMR-HOOK'u yapılandırmanız gerekir. Daha fazla bilgi için bkz. Spark SQL için EMR-HOOK yapılandırma.
NotKümede EMR-HOOK yapılandırılmamışsa DataWorks'te gerçek zamanlı meta verileri görüntüleyemez, denetim günlükleri oluşturamaz, veri soyunu görüntüleyemez veya EMR ile ilgili yönetişim görevlerini yürütemezsiniz.
ACK üzerinde EMR Spark kümeleri veri soyunun görüntülenmesini desteklemez. EMR Serverless Spark kümeleri veri soyunun görüntülenmesini destekler.
Kullanıcı arayüzü üzerinden işlev kaydı DataLake ve özel kümelerde desteklenir ancak ACK üzerinde EMR Spark veya EMR Serverless Spark kümelerinde desteklenmez.
Notlar
Mevcut çalışma alanıyla ilişkili EMR kümesinde Spark için Ranger erişim kontrolünü etkinleştirdiyseniz:
Varsayılan görüntüyü kullanan Spark görevleri bu özelliği otomatik olarak destekler.
Özel bir görüntüyle Spark görevi çalıştırmak için teknik desteğe destek talebi gönderin ve görüntü yükseltmesi talep edin.
Yordam
-
EMR Spark SQL düğümü yapılandırma sekmesinde aşağıdaki geliştirme işlemlerini gerçekleştirin.
SQL kodu geliştirme
SQL düzenleyicisinde görev kodunuzu yazın. Değişkenleri ${değişken_adı} biçimini kullanarak tanımlayın ve değerlerini düğüm yapılandırma sekmesinin sağ tarafındaki Scheduling Settings > Scheduling Parameters bölümünde atayarak zamanlanmış görevlere parametreleri dinamik olarak iletin. Daha fazla bilgi için bkz. Zamanlama parametrelerinin kaynakları ve ifadeleri. Örnek:
SHOW TABLES; -- ${var} kullanarak var adında bir değişken tanımlayın. Bu değişkeni ${yyyymmdd} olarak ayarlarsanız, iş tarihi son ekine sahip bir tablo oluşturabilirsiniz. CREATE TABLE IF NOT EXISTS userinfo_new_${var} ( ip STRING COMMENT'IP address', uid STRING COMMENT'User ID' )PARTITIONED BY( dt STRING ); -- Zamanlama parametreleriyle birlikte kullanılabilir.
(İsteğe bağlı) EMR düğüm parametrelerini yapılandırma
Run Configuration bölmesinin bölümünde aşağıdaki parametreleri yapılandırın:
Spark parameter: Spark yerleşik özellik parametreleri. Daha fazla bilgi için bkz. açık kaynak Spark yapılandırması. Yapılandırmayı basitleştirmek ve tutarlılığı sağlamak amacıyla doğrudan Serverless Spark'tan bir Spark yapılandırma şablonu yükleyebilirsiniz.
DataWorks parameters: Kullanılabilir gelişmiş parametreler, aşağıdaki tabloda açıklandığı gibi EMR küme türüne göre değişir.
DataLake kümesi/Özel küme: ECS üzerinde EMR
Gelişmiş parametre
Açıklama
queue
Görev gönderimi için zamanlama kuyruğu. Varsayılan değer default'tur. EMR YARN hakkında daha fazla bilgi için bkz. Temel kuyruk yapılandırmaları.
priority
Öncelik. Varsayılan değer: 1.
FLOW_SKIP_SQL_ANALYZE
SQL deyimi yürütme modu. Geçerli değerler:
-
true: Birden çok SQL deyimi aynı anda yürütülür. -
false(varsayılan): Tek bir SQL deyimi aynı anda yürütülür.
NotBu parametre yalnızca veri geliştirme ortamındaki test çalıştırmaları için desteklenir.
ENABLE_SPARKSQL_JDBC
SQL kodunun gönderilme yöntemi. Geçerli değerler:
-
true: SQL kodu JDBC üzerinden gönderilir. EMR kümesinde Kyuubi hizmeti yoksa SQL kodu Spark Thrift-Server'a gönderilir. EMR kümesinde Kyuubi hizmeti varsa SQL kodu JDBC aracılığıyla Kyuubi'ye gönderilir ve özel Spark parametreleri desteklenir.Her iki yöntem de meta veri soyunu destekler. Ancak Thrift-Server'a gönderilen görevlerde, meta verideki ilgili düğüm görevleri için çıkış bilgisi eksiktir.
-
false(varsayılan): SQL kodu Spark-submit küme yöntemi kullanılarak gönderilir. Bu modda hem Spark2 hem de Spark3 meta veri soyunu ve çıkış bilgilerini destekler. Özel Spark parametreleri de desteklenir.Not-
Spark-submit küme yöntemi, varsayılan olarak EMR kümesinin HDFS'sindeki
/tmpdizininde geçici dosyalar ve dizinler oluşturur. Dizinin okuma ve yazma izinlerine sahip olduğundan emin olun. -
Spark-submit küme yöntemini kullanırken, gelişmiş yapılandırmalara doğrudan özel SparkConf parametreleri ekleyebilirsiniz. DataWorks, kodu gönderirken yeni parametreleri komuta otomatik olarak ekler. Örnek:
"spark.driver.memory" : "2g".
-
DATAWORKS_SESSION_DISABLE
Bu parametre geliştirme ortamındaki test çalıştırmaları için geçerlidir. Geçerli değerler:
-
true: Her SQL deyimi çalıştırıldığında yeni bir JDBC bağlantısı oluşturulur. -
false(varsayılan): Tek bir düğüm içinde farklı SQL deyimleri çalıştırılırken aynı JDBC bağlantısı yeniden kullanılır.
NotBu parametre
falseolarak ayarlandığında Hiveyarn applicationIdyazdırılmaz.yarn applicationIddeğerini yazdırmak için bu parametreyitrueolarak ayarlayın.Others
Özel Spark Configuration parametreleri. Spark'a özel özellik parametreleri ekleyin.
Yapılandırma biçimi:
"spark.eventLog.enabled" : false,"spark.eventLog.memory" : "12g". DataWorks, parametreleri EMR kümesine gönderilen koda otomatik olarak--conf key=valuebiçiminde ekler. Parametre yapılandırmaları hakkında daha fazla bilgi için bkz. Genel Spark parametrelerini yapılandırma.Not-
DataWorks, her DataWorks modülü için çalışma alanı düzeyinde genel Spark parametrelerini yapılandırmanıza olanak tanır. Genel Spark parametrelerinin önceliğinin belirli bir modül içinde yapılandırılan Spark parametrelerinden daha yüksek olup olmadığını belirtebilirsiniz.
-
Ranger erişim kontrolünü etkinleştirmek için, Ranger erişim kontrolünün etkili olmasını sağlamak üzere genel Spark parametre yapılandırmalarına
spark.hadoop.fs.oss.authorization.method=rangerekleyin.
EMR Serverless Spark kümesi
İlgili parametre ayarları için bkz. Spark görevi parametre ayarları.
Gelişmiş parametre
Açıklama
FLOW_SKIP_SQL_ANALYZE
SQL deyimi yürütme modu. Geçerli değerler:
-
true: Birden çok SQL deyimi aynı anda yürütülür. -
false(varsayılan): Tek bir SQL deyimi aynı anda yürütülür.
NotBu parametre yalnızca veri geliştirme ortamındaki test çalıştırmaları için desteklenir.
DATAWORKS_SESSION_DISABLE
Görev gönderme yöntemi. Veri geliştirme sırasında görevler varsayılan olarak yürütme için SQL Compute'a gönderilir. Görevin SQL Compute üzerinden mi yoksa yürütme için bir kuyruğa mı gönderileceğini belirtmek için bu parametreyi kullanabilirsiniz.
-
true: Görev yürütme için bir kuyruğa gönderilir. Varsayılan olarak, hesaplama kaynağı ilişkilendirilirken belirtilen varsayılan kuyruk kullanılır. DATAWORKS_SESSION_DISABLE true olarak ayarlandığında, veri geliştirme sırasında görevlerin gönderileceği kuyruğu belirtmek içinSERVERLESS_QUEUE_NAMEparametresini yapılandırabilirsiniz. -
false(varsayılan): Görev yürütme için SQL Compute'a gönderilir.NotBu parametre yalnızca veri geliştirme yürütmesi sırasında etkilidir, zamanlanmış çalıştırmalar sırasında değil.
SERVERLESS_RELEASE_VERSION
Spark motor sürümü. Varsayılan olarak, Management Center altındaki Compute Resource bölümündeki küme ayarlarında yapılandırılan Default Engine Version kullanılır. Belirli bir görev için farklı bir motor sürümü ayarlamak üzere bu parametreyi yapılandırın.
NotGelişmiş yapılandırmalardaki
SERVERLESS_RELEASE_VERSIONparametresi yalnızca kayıtlı küme için belirtilen SQL Compute (oturum) EMR Serverless Spark konsolunda durdurulmuş durumdayken etkili olur.SERVERLESS_QUEUE_NAME
Görevlerin gönderildiği kaynak kuyruğu. Bir görev yürütme için bir kuyruğa gönderilmek üzere yapılandırıldığında, varsayılan olarak Management Center altındaki Clusters bölümündeki küme ayarlarında yapılandırılan Default Resource Queue kullanılır. Kaynak yalıtımı ve yönetimi gereksinimleriniz varsa kuyruklar ekleyebilirsiniz. Daha fazla bilgi için bkz. Kaynak kuyruklarını yönetme.
Yapılandırma yöntemleri:
-
Düğüm parametrelerini yapılandırarak görev gönderimi için kaynak kuyruğunu belirtin.
-
Genel Spark parametrelerini yapılandırarak görev gönderimi için kaynak kuyruğunu belirtin.
Not-
Gelişmiş yapılandırmalardaki
SERVERLESS_QUEUE_NAMEparametresi yalnızca kayıtlı küme için belirtilen SQL Compute (oturum) EMR Serverless Spark konsolunda durdurulmuş durumdayken etkili olur. -
Veri geliştirme yürütmesi sırasında: Görevlerin yürütme için bir kuyruğa gönderilmesi amacıyla önce
DATAWORKS_SESSION_DISABLEdeğerinitrueolarak ayarlamanız gerekir. Ancak bu durumda görev kuyruğunu belirtmek içinSERVERLESS_QUEUE_NAMEparametresi etkili olur. -
Operation Center zamanlanmış yürütmesi sırasında: Görevler zorunlu olarak yürütme için bir kuyruğa gönderilir ve SQL Compute'a gönderilemez.
SERVERLESS_SQL_COMPUTE
Kullanılacak SQL Compute (SQL oturumu). Varsayılan olarak, Management Center altındaki Compute Resource bölümündeki küme ayarlarında yapılandırılan Default SQL Compute kullanılır. Belirli bir görev için farklı bir SQL oturumu ayarlamak üzere bu parametreyi yapılandırın. SQL oturumlarını oluşturma ve yönetme hakkında bilgi için bkz. SQL Compute oturumlarını yönetme.
Others
Özel Spark Configuration parametreleri. Spark'a özel özellik parametreleri ekleyin.
Yapılandırma biçimi:
"spark.eventLog.enabled": false. DataWorks, parametreleri EMR kümesine gönderilen koda otomatik olarak--conf key=valuebiçiminde ekler.NotDataWorks, her DataWorks modülü için çalışma alanı düzeyinde genel Spark parametrelerini yapılandırmanıza olanak tanır. Genel Spark parametrelerinin önceliğinin belirli bir modül içinde yapılandırılan Spark parametrelerinden daha yüksek olup olmadığını belirtebilirsiniz. Genel Spark parametrelerini yapılandırma hakkında daha fazla bilgi için bkz. Genel Spark parametrelerini yapılandırma.
Spark kümesi: ACK üzerinde EMR
Gelişmiş parametre
Açıklama
FLOW_SKIP_SQL_ANALYZE
SQL deyimi yürütme modu. Geçerli değerler:
-
true: Birden çok SQL deyimi aynı anda yürütülür. -
false(varsayılan): Tek bir SQL deyimi aynı anda yürütülür.
NotBu parametre yalnızca veri geliştirme ortamındaki test çalıştırmaları için desteklenir.
Others
Özel Spark Configuration parametreleri. Spark'a özel özellik parametreleri ekleyin.
Yapılandırma biçimi:
"spark.eventLog.enabled": false. DataWorks, parametreleri EMR kümesine gönderilen koda otomatik olarak--conf key=valuebiçiminde ekler.NotDataWorks, her DataWorks modülü için çalışma alanı düzeyinde genel Spark parametrelerini yapılandırmanıza olanak tanır. Genel Spark parametrelerinin önceliğinin belirli bir modül içinde yapılandırılan Spark parametrelerinden daha yüksek olup olmadığını belirtebilirsiniz. Genel Spark parametrelerini yapılandırma hakkında daha fazla bilgi için bkz. Genel Spark parametrelerini yapılandırma.
Hadoop kümesi: ECS üzerinde EMR
Gelişmiş parametre
Açıklama
queue
Görev gönderimi için zamanlama kuyruğu. Varsayılan değer
default'tur. EMR YARN hakkında daha fazla bilgi için bkz. Temel kuyruk yapılandırmaları.priority
Öncelik. Varsayılan değer: 1.
FLOW_SKIP_SQL_ANALYZE
SQL deyimi yürütme modu. Geçerli değerler:
-
true: Birden çok SQL deyimi aynı anda yürütülür. -
false(varsayılan): Tek bir SQL deyimi aynı anda yürütülür.
NotBu parametre yalnızca veri geliştirme ortamındaki test çalıştırmaları için desteklenir.
USE_GATEWAY
Görevlerin Gateway kümesi üzerinden gönderilip gönderilmeyeceğini belirtir. Geçerli değerler:
-
true: Görevler Gateway kümesi üzerinden gönderilir. -
false(varsayılan): Görevler Gateway kümesi üzerinden gönderilmez. Bunun yerine görevler varsayılan olarak başlık düğümüne gönderilir.
NotMevcut düğümün kümesi bir Gateway kümesiyle ilişkilendirilmemişse bu parametreyi manuel olarak
trueolarak ayarlamak, sonraki EMR görev gönderimlerinin başarısız olmasına neden olur.Others
Özel Spark Configuration parametreleri. Spark'a özel özellik parametreleri ekleyin.
Yapılandırma biçimi:
"spark.eventLog.enabled": false. DataWorks, parametreleri EMR kümesine gönderilen koda otomatik olarak--conf key=valuebiçiminde ekler. Parametre yapılandırmaları hakkında daha fazla bilgi için bkz. Genel Spark parametrelerini yapılandırma.Not-
DataWorks, her DataWorks modülü için çalışma alanı düzeyinde genel Spark parametrelerini yapılandırmanıza olanak tanır. Genel Spark parametrelerinin önceliğinin belirli bir modül içinde yapılandırılan Spark parametrelerinden daha yüksek olup olmadığını belirtebilirsiniz.
-
Ranger erişim kontrolünü etkinleştirmek için, Ranger erişim kontrolünün etkili olmasını sağlamak üzere genel Spark parametre yapılandırmalarına
spark.hadoop.fs.oss.authorization.method=rangerekleyin.
SQL görevi çalıştırma
-
Run Configuration bölümünde Compute Resource ve Resource Group öğelerini seçin ve yapılandırın.
NotGörev yürütmesi için gereken kaynaklara göre CUs for Scheduling değerini de yapılandırabilirsiniz. Varsayılan CU değeri
0.25şeklindedir.Veri kaynaklarına İnternet veya VPC üzerinden erişmek için veri kaynağıyla bağlantı testinden geçmiş bir zamanlama kaynak grubu kullanın. Daha fazla bilgi için bkz. Ağ bağlantısını yapılandırma.
Araç çubuğu parametre iletişim kutusunda ilgili veri kaynağını seçin ve SQL görevini çalıştırmak için Run öğesini tıklayın.
(İsteğe bağlı) Atama parametrelerini yapılandırma
Bu düğümün sorgu sonuçlarını aşağı akış düğümlere iletmek için sağ taraftaki Scheduling Settings bölmesindeki Node Context Parameters bölümüne gidin ve Add Assignment Parameter öğesini tıklayın. Sistem,
outputsadlı bir çıkış parametresi otomatik olarak ekler. Bu parametrenin değeri, bu düğümdeki son kod satırının sorgu sonucudur. Daha fazla bilgi için bkz. Düğüm bağlam parametrelerini kullanma. -
Düğüm görevini periyodik olarak çalıştırmak için iş gereksinimlerinize göre zamanlama bilgilerini yapılandırın. Daha fazla bilgi için bkz. Zamanlama ayarlarını yapılandırma.
NotBileşen ortamını özelleştirmeniz gerekiyorsa resmi
dataworks_emr_base_task_podgörüntüsünü temel alarak bir özel görüntü oluşturabilir ve bu görüntüyü Veri Geliştirme'de 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ı ekleyebilirsiniz. Düğüm görevi yapılandırıldıktan sonra düğümü dağıtmanız gerekir. Daha fazla bilgi için bkz. Düğüm dağıtma.
Görev dağıtıldıktan sonra Operation Center'da zamanlanmış görevlerin çalışma durumunu görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Zamanlanmış görevleri görüntüleme.
SSS
Veri geliştirme sırasında bir EMR Spark SQL düğüm görevi çalıştırırken ve görevi yürütme için SQL Compute'a göndermek istediğinizde SQL Compute'un Running durumunda olduğundan emin olun. Aksi takdirde görev başarısız olur. SQL Compute durumunu kontrol etmek için bkz. SQL Compute oturumlarını yönetme.