DataWorks, kabuk düğümlerinde Python betikleri çalıştırmanıza olanak tanır. Bu konuda, ortak kabuk düğümleri ve EMR Shell düğümlerinde Python 2 ile Python 3 betiklerinin nasıl çalıştırılacağı açıklanmaktadır.
Arka Plan
DataWorks, Python betiklerini kaynak olarak yüklemenize olanak tanır. Ardından, ortak bir kabuk düğümünde veya EMR Shell düğümünde Python 2 ya da Python 3 için yorumlayıcı yolunu belirterek yüklenen kaynağa referans verip betiği çalıştırabilirsiniz.
Ön Koşullar
EMR Shell düğümü kullanmak için ön koşulları karşılayın. Daha fazla bilgi için bkz. EMR Shell düğümü kullanmaya yönelik ön koşullar.
Ortak kabuk düğümü kullanmak için ön koşulları karşılayın. Daha fazla bilgi için bkz. Ortak kabuk düğümü kullanmaya yönelik ön koşullar.
-
Python betiğiniz üçüncü taraf paketler gerektiriyorsa, kaynak grubunda ortamı hazırlamanız gerekir. Yöntem, kaynak grubu türüne bağlıdır:
Sunucusuz kaynak grubu (Önerilen): Üçüncü taraf paketleri görüntü yönetimi kullanarak yükleyin. Daha fazla bilgi için bkz. Özel görüntüler.
Zamanlama için özel kaynak grubu: Üçüncü taraf paketleri O&M Assistant kullanarak yükleyin. Daha fazla bilgi için bkz. O&M Assistant.
NotÜçüncü taraf bir paket oluştururken paket türünün hem
Python 2hem dePython 3sürümlerini desteklediğinden emin olun.
Sınırlamalar
EMR Shell düğümlerine ilişkin sınırlamalar için bkz. EMR Shell düğümlerine ilişkin sınırlamalar.
Ortak kabuk düğümlerine ilişkin sınırlamalar için bkz. Ortak kabuk düğümlerine ilişkin sınırlamalar.
Kabuk düğümlerinde Python betikleri çalıştırma
DataWorks, ortak bir kabuk düğümünden veya EMR Shell düğümünden kaynaklara referans vererek Python betikleri çalıştırmanıza olanak tanır. Yorumlayıcı yolları Python sürümüne göre değişir. Örneğin:
Python 2:
python xx.pyPython 3:
/home/tops/bin/python3 xx.py
Ortak kabuk düğümü
-
Kaynak oluşturun.
-
DataStudio sayfasına gidin.
DataWorks konsolu üzerinde oturum açın. Hedef bölgeye geçin ve sol gezinme bölmesinde seçeneğini tıklayın. Açılan listeden hedef çalışma alanını seçin ve Go to DataStudio seçeneğini tıklayın.
-
MaxCompute Python kaynağı oluşturun.
DataStudio sayfasında hedef iş akışına sağ tıklayın ve Create Resource seçeneğini seçin. MaxCompute dizininde Python kaynak türünü seçin ve
mc.pyadlı bir kaynak oluşturun.Notmc.pykaynak adı bir örnektir. İş gereksinimlerinize göre farklı bir ad belirtebilirsiniz. -
MaxCompute Python kaynağını düzenleyin.
Kaynağın yapılandırma sayfasında kodu düzenleyin. Örnek kod:
Python 3
print('This is a test text')Python 2
print "This is a test text" Kaynağı kaydetmek ve göndermek için
ve
simgelerini tıklayın.
-
-
Kaynağa referans verin.
-
Ortak bir kabuk düğümü oluşturun.
DataStudio sayfasında hedef iş akışına sağ tıklayın ve Create Node seçeneğini seçin. General dizininde Shell seçeneğini belirleyin.
-
Kaynağa referans verin.
Ortak bir kabuk düğümünün düzenleme sayfasında, düğümü altında bekleyen Insert Resource Path
mc.pyöğesini bulun ve sağ tıklayarak Insert Resource Path seçeneğini belirleyin.Kaynak artık kod düzenleyicide referans verilmiştir:
##@resource_reference{"mc.py"} mc.py
-
-
Sonucu doğrulayın.
Python 3
-
Ortak kabuk düğümünü düzenleyin.
Ortak kabuk düğümünde Python 3 yorumlayıcı yolunu ekleyin:
##@resource_reference{"mc.py"} /home/tops/bin/python3 mc.py -
simgesini tıklayın, bir kaynak grubu ve özel görüntü seçin, ardından görevi çalıştırın.################################# End run custom-script. ################################## This is a test text 2024-10-21 17:33:18 INFO ====================================================================== 2024-10-21 17:33:18 INFO Exit code of the Shell command 0 2024-10-21 17:33:18 INFO --- Invocation of Shell command completed --- 2024-10-21 17:33:18 INFO Shell run successfully! 2024-10-21 17:33:18 INFO Current task status: FINISH 2024-10-21 17:33:18 INFO Cost time is: 2.628s
Python 2
-
Ortak kabuk düğümünü düzenleyin.
Ortak kabuk düğümünde Python 2 yorumlayıcı yolunu ekleyin:
##@resource_reference{"mc.py"} python mc.py -
simgesini tıklayın, bir kaynak grubu ve özel görüntü seçin, ardından görevi çalıştırın.
-
EMR Shell düğümü
-
Kaynak oluşturun.
-
DataStudio sayfasına gidin.
DataWorks konsolu üzerinde oturum açın. Hedef bölgeye geçin ve sol gezinme bölmesinde seçeneğini tıklayın. Açılan listeden hedef çalışma alanını seçin ve Go to DataStudio seçeneğini tıklayın.
-
EMR File kaynağı oluşturun.
DataStudio sayfasında hedef iş akışına sağ tıklayın ve Create Resource seçeneğini seçin. EMR dizininde File seçeneğini belirleyin. Bir Storage path seçin ve yerel
emr.pybetiğini yüklemek için Click Upload seçeneğini tıklayın. Örnek betik içeriği:Python 3
print('This is a test text')Python 2
print "This is a test text"Notemr.pykaynak adı bir örnektir. İş gereksinimlerinize göre farklı bir ad belirtebilirsiniz. Kaynağı göndermek için
simgesini tıklayın.
-
-
Kaynağa referans verin.
-
EMR Shell düğümü oluşturun.
DataStudio sayfasında hedef iş akışına sağ tıklayın ve Create Node seçeneğini seçin. EMR dizininde EMR Shell seçeneğini belirleyin.
-
EMR File kaynağına referans verin.
EMR Shell düğümünün yapılandırma sayfasında, altındaki
emr.pykaynağını bulun. Kaynağa sağ tıklayın ve Insert Resource Path seçeneğini belirleyin.Kaynak artık kod düzenleyicide referans verilmiştir:
##@resource_reference{"emr.py"} emr.py
-
-
Sonucu doğrulayın.
Python 3
-
EMR Shell düğümünü düzenleyin.
EMR Shell düğümünde Python 3 komut yürütme yolu olan
/home/tops/bin/python3yolunu ekleyin.##@resource_reference{"emr.py"} /home/tops/bin/python3 emr.py -
simgesini tıklayın, bir kaynak grubu ve özel görüntü seçin, ardından görevi çalıştırın.>>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Process start to execute... Process Output>>> This is a test text >>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Process is exited with exit value 0 >>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Command state update to COMPLETED >>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Process execute finished >>> [2024-10-21 17:51:29][INFO ][EmrDccJobSubmitter ]: Job Completed, status=0 2024-10-21 17:51:29 INFO ============================================================ 2024-10-21 17:51:29 INFO Exit code of the Shell command 0 2024-10-21 17:51:29 INFO --- Invocation of Shell command completed --- 2024-10-21 17:51:29 INFO Shell run successfully! 2024-10-21 17:51:29 INFO Current task status: FINISH 2024-10-21 17:51:29 INFO Cost time is: 17.667s
Python 2
-
EMR Shell düğümünü düzenleyin.
EMR Shell düğümünde Python 2 komutu için
pythonyürütme yolunu ekleyin.##@resource_reference{"emr.py"} python emr.py -
simgesini tıklayın, bir kaynak grubu ve özel görüntü seçin, ardından görevi çalıştırın.
-