Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Batch'te görev, bir hesaplama birimini temsil eder. İş, bu görevlerin bir koleksiyonudur. İşler ve görevler ve bunların Azure Batch iş akışında nasıl kullanıldığı hakkında daha fazla bilgi aşağıda açıklanmıştır.
İşler
İş bir görev koleksiyonudur. Görevleri aracılığıyla, bir havuzdaki işlem düğümlerinde hesaplamanın nasıl yapıldığını yönetir.
İş, çalışmanın yürütüleceği havuzu belirtir. Her iş için yeni havuz oluşturabilir veya çok sayıda iş için bir havuz kullanabilirsiniz. Bir iş zamanlaması ile ilişkili her iş için bir havuz veya bir iş zamanlaması ile ilişkili tüm işler için bir havuz oluşturabilirsiniz.
İş önceliği
Oluşturduğunuz işlere isteğe bağlı bir iş önceliği atayabilirsiniz. Batch hizmeti, her havuzda zamanlama sırasını belirlemek için işin öncelik değerini (iş içindeki tüm görevler için) kullanır.
İşin önceliğini güncelleştirmek için İş işleminin özelliklerini güncelleştirme (Batch REST) çağrısı yapabilir veya CloudJob.Priority'yi (Batch .NET) değiştirebilirsiniz. Öncelik değerleri -1000 (en düşük öncelik) ile +1000 (en yüksek öncelik) arasında değişir.
Aynı havuz içinde, yüksek öncelikli işler daha düşük öncelikli işlere göre zamanlama önceliğine sahiptir. Zaten çalışmakta olan düşük öncelikli işlerdeki görevler, daha yüksek öncelikli bir işteki görevler tarafından ön plana çıkarılamaz. Aynı öncelik düzeyine sahip işlerin zamanlanma şansı eşit olur ve görev yürütme sırası tanımlanmamıştır.
Bir havuzda çalışan yüksek öncelikli bir iş, farklı bir havuzda veya başka bir Batch hesabında çalışan işlerin zamanlamasını etkilemez. İş önceliği, iş gönderildiğinde oluşturulan otomatik havuzlara uygulanmaz.
İş kısıtlamaları
İşleriniz için bazı sınırlar belirtmek üzere iş kısıtlamaları kullanabilirsiniz:
- Bir duvar saati zamanı üst sınırı ayarlayabilirsiniz; böylece bir iş belirtilen duvar saati zamanı üst sınırından daha uzun süre çalışırsa iş ve tüm görevleri sonlandırılır.
- Bir görevin her zaman yeniden denenip denenmediği veya hiçbir zaman yeniden denenmediği de dahil olmak üzere, kısıtlama olarak en fazla görev yeniden deneme sayısını belirtebilirsiniz. Görevi yeniden denemek, görev başarısız olursa tekrar çalıştırılmak üzere tekrar kuyruğa alındığı anlamına gelir.
İş yöneticisi görevleri ve otomatik sonlandırma
İstemci uygulamanız bir işe görevler ekleyebilir ya da bir iş yöneticisi görevi belirtebilirsiniz. İş yöneticisi görevi, havuzdaki işlem düğümlerinden birinde çalıştırılır ve bu görev, bir iş için gereken görevleri oluşturmak üzere gerekli bilgileri içerir. İş yönetimi görevi, özellikle Batch tarafından ele alınır; iş oluşturulur oluşturulmaz sıraya alınır ve başarısız olursa yeniden başlatılır. Bir iş zamanlaması tarafından oluşturulan işler için bir iş yöneticisi görevi gereklidir, çünkü bu görevler, iş örneklemesi yapılmadan önce tanımlanabilecek tek yöntemdir.
Varsayılan olarak, işteki tüm görevler tamamlandığında iş etkin durumda kalır. Bu davranışı, işteki tüm görevler tamamlandığında işin otomatik olarak sonlandırılacağı şekilde değiştirebilirsiniz. Tüm görevleri tamamlanmış durumdayken işi otomatik olarak sonlandırmak için işin onAllTasksComplete özelliğini (Batch .NET'te OnAllTasksComplete ) *' olarak terminatejobayarlayın.
Batch hizmeti, hiç görevi olmayan bir işin tüm görevlerini tamamlanmış olarak kabul eder. Bu nedenle, bu seçenek genellikle iş yöneticisi görevi ile kullanılır. otomatik iş sonlandırmayı iş yöneticisi olmadan kullanmak istiyorsanız, başlangıçta yeni bir işin onAllTasksComplete özelliğini olarak noactionayarlamanız ve ardından yalnızca terminatejobişe görev eklemeyi tamamladıktan sonra bunu *' olarak ayarlamanız gerekir.
Zamanlanan işler
İş zamanlamaları Batch hizmetinde yinelenen işler oluşturmanızı sağlar. Bir iş zamanlaması işlerin ne zaman çalıştırılacağını belirtir ve çalıştırılacak işlerin özelliklerini içerir. Zamanlamanın süresini (zamanlamanın ne kadar süreyle ve ne zaman geçerli olduğunu) ve zamanlanan dönemde işlerin ne sıklıkta oluşturulacağını belirtebilirsiniz.
Görevler
Görev bir işle ilişkili hesaplama birimidir. Bir düğüm üzerinde çalışır. Görevler, yürütülmesi için bir düğüme atanır veya bir düğüm serbest kalana kadar sıraya alınır. Kısacası görev, bitmesi gereken çalışmayı gerçekleştirmek üzere bir veya daha fazla program ya da komut dosyasını bir işlem düğümü üzerinde çalıştırır.
Bir görev oluşturduğunuzda aşağıdakileri belirtebilirsiniz:
Görevin komut satırı. Uygulamanızı veya komut dosyanızı işlem düğümü üzerinde çalıştıran komut satırıdır.
Şunu unutmayın, komut satırı bir kabuk altında çalışmaz. Bu nedenle, ortam değişkeni genişletmesi gibi kabuk özelliklerinden yerel olarak yararlanamaz (buna dahildir
PATH). Bu tür özelliklerden yararlanmak için, komut satırında kabuğu çağırmanız gerekir; örneğin, Windows düğümlerindecmd.exeveya Linux'ta/bin/shbaşlatarak:cmd /c MyTaskApplication.exe %MY_ENV_VAR%/bin/sh -c MyTaskApplication $MY_ENV_VARGörevlerinizin düğümdeki
PATHveya ortam değişkenlerine referans vermeyen bir uygulama veya betik çalıştırması gerekiyorsa, görev komut satırında kabuğu net bir şekilde çağırın.İşlenecek verileri içeren kaynak dosyalar. Görevin komut satırı yürütülmeden önce, bu dosyalar bir Azure Depolama hesabındaki Blob depolamadan düğüme otomatik olarak kopyalanır. Daha fazla bilgi için bkz . Görevi başlatma ve Dosyalar ve dizinler.
Uygulamanızın gerektirdiği ortam değişkenleri. Daha fazla bilgi için bkz . Görevler için ortam ayarları.
Görev yürütülürken tabi olunan kısıtlamalar. Örneğin, görevin çalışmasına izin verilen en uzun süre, başarısız olan bir görevin en fazla yeniden deneme sayısı ve görevin çalışma dizinindeki dosyaların elde tutulduğu en uzun süre kısıtlamalardan bazılarıdır.
Görevin çalışmasının planlandığı işlem düğümüne dağıtılacak uygulama paketleri. Uygulama paketleri, görevlerinizin çalıştırdığı uygulamaların dağıtımını ve sürüm oluşturma işlemlerini basitleştirir. Görev düzeyi uygulama paketleri, özellikle farklı işlerin bir havuzda çalıştırıldığı ve iş tamamlandığında havuzun silinmediği paylaşılan havuz ortamlarında kullanışlıdır. Havuzdaki düğüm sayısından daha az göreviniz varsa, uygulamanız yalnızca görevleri çalıştıran düğümlere dağıtıldığı için görev uygulama paketleri veri aktarımını en aza indirebilir.
Düğümdeki görevin çalıştığı Docker kapsayıcısını oluşturmak için Docker Hub ya da özel bir kayıt defterinde bulunan bir kapsayıcı görüntüsü başvurusu ve ek ayarlar. Havuz yalnızca kapsayıcı yapılandırmasıyla ayarlanmışsa bu bilgileri belirtmeniz gerekir.
Not
Görevin işe eklendiği zaman ile tamamlandığındaki en uzun yaşam süresi 180 gündür. Tamamlanan görevler 7 gün boyunca kalır; maksimum yaşam süresi içinde tamamlanmamış görevlerin verilerine erişilemez.
Bir düğümde hesaplama gerçekleştirmek için tanımladığınız görevlere ek olarak, Batch hizmeti tarafından çeşitli özel görevler de sağlanır:
- Başlangıç görevi
- İş yöneticisi görevi
- İş hazırlama ve bırakma görevleri
- Çok örnekli görevler
- Görev bağımlılıkları
Görevi başlat
Başlangıç görevini bir havuz ile ilişkilendirerek düğümlerinin işletim sistemi ortamını hazırlayabilirsiniz. Örneğin, görevlerinizin çalıştıracağı uygulamaları yükleme veya arka plan işlemlerini başlatma gibi eylemleri gerçekleştirebilirsiniz. Bir düğüm her başlatıldığında ve havuzda kaldığı sürece, başlangıç görevi çalışır. Bu, düğümün havuza ilk eklendiği, yeniden başlatıldığı veya yeniden görüntülendiği zamanları içerir.
Başlangıç görevinin birincil avantajı, bir işlem düğümünü yapılandırmak ve görev yürütmede gereken uygulamaları yüklemek için gerekli tüm bilgileri içerebilmesidir. Bu nedenle bir havuzdaki düğüm sayısını artırmak, yeni bir hedef düğüm sayısı belirtmek kadar kolaydır. Başlangıç görevi, Batch hizmetinin yeni düğümleri yapılandırması ve görevleri kabul etmeye hazır hale getirmesi için gereken bilgileri sağlar.
Tüm Azure Batch görevlerinde olduğu gibi, yürütülecek komut satırına ek olarak Azure Depolama'daki kaynak dosyalarının listesini belirtebilirsiniz. Batch hizmeti ilk olarak kaynak dosyaları düğümden Azure Depolama’ya kopyalar ve ardından komut satırını çalıştırır. Bir havuz başlangıç görevinde dosya listesi genellikle görev uygulamasını ve onun bağımlılıklarını içerir.
Ancak başlangıç görevi, işlem düğümü üzerinde çalışan tüm görevler tarafından kullanılacak başvuru verilerini de içerebilir. Örneğin, bir başlangıç görevinin komut satırı, uygulama dosyalarını (kaynak dosya olarak belirtilir ve düğüme indirilir) başlangıç görevinin robocopypaylaşılan klasöre kopyalamak üzere bir işlemi gerçekleştirebilir ve ardından bir MSI ya da setup.exe çalıştırabilir.
Genellikle, düğümün görevlere atanmak için hazır kabul edilmesinden önce başlangıç görevinin tamamlanmasını beklemesi için Batch hizmetini istersiniz. Ancak, bunu gerektiği gibi farklı yapılandırabilirsiniz.
İşlem düğümünde bir başlangıç görevi başarısız olursa düğümün durumu hatayı yansıtacak şekilde güncelleştirilir ve düğüme herhangi bir görev atanmamış olur. Kaynak dosyalarını depolama alanından kopyalarken bir sorun oluşursa veya komut satırı tarafından yürütülen işlem sıfır olmayan bir çıkış kodu döndürürse başlangıç görevi başarısız olabilir.
Mevcut bir havuz için başlangıç görevi ekler veya güncelleştirirseniz, başlangıç görevinin düğümlere uygulanması için işlem düğümlerini yeniden başlatmanız gerekir.
Not
Batch, kaynak dosyalarını ve ortam değişkenlerini içeren başlangıç görevinin toplam boyutunu sınırlar. Bir başlangıç görevinin boyutunu azaltmanız gerekirse aşağıdaki iki yaklaşımdan birini kullanabilirsiniz:
Uygulamaları veya verileri Batch havuzunuzdaki tüm düğümlere dağıtmak için uygulama paketlerini kullanabilirsiniz. Uygulama paketleri hakkında daha fazla bilgi için bkz. Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtımı.
El ile uygulama dosyalarınızı içeren bir sıkıştırılmış arşiv oluşturabilirsiniz. Sıkıştırılmış arşivinizi Azure Depolama'ya blob olarak yükleyin. Sıkıştırılmış arşivi başlangıç göreviniz için kaynak dosyası olarak belirleyin. Başlangıç göreviniz için komut satırını çalıştırmadan önce sıkıştırılmış arşivi komut satırından açın.
Sıkıştırılmış arşivi açmak için istediğiniz arşivleme aracını kullanabilirsiniz. Arşiv sıkıştırmasını açmak için kullandığınız aracı başlangıç görevi için kaynak dosyası olarak eklemeniz gerekir.
İş yöneticisi görevi
Genellikle iş yürütmeyi denetlemek ve/veya izlemek için bir iş yöneticisi görevi kullanırsınız. Örneğin, iş yöneticisi görevleri genellikle bir işin görevlerini oluşturmak ve göndermek, çalıştırılacak ek görevleri belirlemek ve işin ne zaman tamamlanıp tamamlanmadığını belirlemek için kullanılır.
Ancak, iş yöneticisi görevi bu etkinliklerle sınırlı değildir. bu, iş için gereken tüm eylemleri gerçekleştirebilen tam teşekküllü bir görevdir. Örneğin, bir iş yöneticisi görevi parametre olarak belirtilen bir dosyayı indirebilir, dosyanın içeriğini çözümleyebilir ve bu içeriğe göre ek görevler gönderebilir.
Bir iş yöneticisi görevi diğer tüm görevlerden önce başlatılır. Aşağıdaki özellikleri sağlar:
- Batch hizmeti tarafından iş oluşturulduğunda otomatik olarak görev olarak iletilir.
- Diğer görevlerden önce yürütülecek şekilde zamanlanmıştır.
- Havuzun boyutu küçültülürken ilişkili düğüm, havuzdan en son kaldırılacak düğümdür.
- Görevin sonlandırılması, işteki tüm görevlerin sonlandırılmasına bağlıdır.
- Yeniden başlatılması gerektiğinde iş yöneticisi görevi en yüksek öncelik olarak verilir. Eğer boşta bir düğüm yoksa, Batch hizmeti iş yöneticisi görevinin çalışmasına yer açmak için havuzdaki diğer çalışan görevlerden birini durdurabilir.
- Bir işteki iş yöneticisi görevinin diğer işlerin görevlerine göre önceliği yoktur. İşlerde, yalnızca iş düzeyinde öncelikler gözetilir.
İş hazırlama ve bırakma görevleri
Batch, iş öncesi yürütme kurulumu için iş hazırlama görevleri ve iş sonrası bakım veya temizlik için görev bırakma görevleri sağlar.
İş hazırlama görevi, diğer iş görevlerinden herhangi biri yürütülmeden önce görevleri çalıştırmak üzere zamanlanmış tüm işlem düğümlerinde çalışır. Örneğin, tüm görevler tarafından paylaşılan ancak iş için benzersiz olan verileri kopyalamak için bir iş hazırlama görevi kullanabilirsiniz.
Bir iş tamamlandığında, havuzda en az bir görev yürütülen her düğümde bir görev bırakma işlemi çalıştırılır. Örneğin, bir iş bitirme görevi, iş hazırlama görevi tarafından kopyalanan verileri silebilir veya tanılama günlüğü verilerini sıkıştırabilir ve yükleyebilir.
Hem iş hazırlama hem de bırakma görevleri, görev çağrıldığında çalıştırılacak bir komut satırı belirtmenize imkan tanır. Bunlar dosya indirme, yükseltilmiş yürütme, özel ortam değişkenleri, en uzun yürütme süresi, yeniden deneme sayısı ve dosyayı elde tutma süresi gibi özellikler sağlar.
İş hazırlama ve bırakma görevleri hakkında daha fazla bilgi için bkz. Azure Batch işlem düğümlerinde iş hazırlama ve tamamlama görevlerini çalıştırma.
Çok örnekli görev
Çok örnekli görev aynı anda birden fazla işlem düğümü üzerinde çalışacak şekilde yapılandırılmış bir görevdir. Çok örnekli görevlerle, İleti Geçirme Arabirimi (MPI) gibi tek bir iş yükünü işlemek için birlikte ayrılmış bir işlem düğümü grubu gerektiren yüksek performanslı bilgi işlem senaryolarını etkinleştirebilirsiniz.
Batch .NET kitaplığını kullanarak MPI işlerini Batch’de çalıştırma hakkında ayrıntılı bilgi için bkz. Azure Batch’de İleti Geçirme Arabirimi (MPI) uygulamalarını çalıştırmak için çok örnekli görevleri kullanma.
Görev bağımlılıkları
Adından da anlaşılacağı gibi görev bağımlılıkları, bir görevin yürütülmesinin diğer görevlerin tamamlanmasına bağlı olduğunu belirtmenizi sağlar. Bu özellik, bir "ön akış" görevinin çıktısını kullanan bir "art akış" görev durumlarında ya da bir ön akış görevi, bir art akış görevi tarafından istenen bazı başlatma işlemlerini gerçekleştirdiğinde destek sağlar.
Bu özelliği kullanmak için önce Batch işinizde görev bağımlılıklarını etkinleştirmeniz gerekir. Ardından, bir başka göreve (ya da birçok başka göreve) bağlı her görev için, görevin bağımlı olduğu görevleri belirtirsiniz.
Görev bağımlılıkları ile aşağıdaki gibi senaryoları yapılandırabilirsiniz:
- görevBgörevA’ya bağlıdır (görevB, görevA tamamlanana kadar yürütülmeye başlamaz).
- görevC hem görevA hem de görevB ’ye bağlıdır.
- görevD yürütülmeden önce bir dizi göreve (örneğin görev 1 ile 10 arası) bağlıdır.
Daha fazla bilgi için bkz. Azure Batch'teki görev bağımlılıkları ve azure-batch-samples GitHub deposundaki TaskDependencies kod örneği.
Görevler için ortam ayarları
Batch hizmeti tarafından yürütülen her görevin, işlem düğümleri üzerinde ayarladığı ortam değişkenlerine erişimi vardır. Bu, Batch hizmeti tarafından tanımlanan ortam değişkenlerini ve görevleriniz için tanımlayabileceğiniz özel ortam değişkenlerini içerir. Görevlerinizin yürüttüğü uygulamalar ve betikler yürütme sırasında bu ortam değişkenlerine erişebilir.
Bu varlıkların ortam ayarları özelliğini doldurarak görev ya da iş düzeyinde özel ortam değişkenleri ayarlayabilirsiniz. Daha fazla bilgi için bkz: Bir işe görev ekleme işlemi (Batch REST) veya Batch .NET'teki CloudTask.EnvironmentSettings ve CloudJob.CommonEnvironmentSettings özellikleri.
Bir görev hakkında bilgi alma işlemini (Batch REST) kullanarak veya CloudTask.EnvironmentSettings özelliğine (Batch .NET) erişerek istemci uygulamanız ya da hizmetiniz bir görevin hem hizmet tanımlı hem de özel ortam değişkenlerini elde edebilir. Bir işlem düğümünde yürütülen işlemler bu ve düğümdeki diğer ortam değişkenlerine erişebilir, örneğin bilinen bir %VARIABLE_NAME% (Windows) veya $VARIABLE_NAME (Linux) söz dizimini kullanarak.
İşlem düğümü ortam değişkenlerinde tüm hizmet tanımlı ortam değişkenlerinin listesini bulabilirsiniz.
Bilinen sınırlamalar
- Görev çalışma durumunda takıldı: Batch hizmeti, görev yaşam döngüsünü yönetmek için işlem düğümleriyle birlikte çalışır. Bir görev, yürütme için bir işlem düğümüne zamanlandığında, işlem düğümü görevin durumunu "çalışıyor"dan "tamamlandı"ya güncellemekten sorumludur. Bir işlem düğümü önceden yüklenmişse veya Batch hizmetine bağlantısı kesilirse, Batch hizmeti başka bir işlem düğümüyle çalışacak şekilde yeniden zamanlayabilene kadar görevleri çalışır durumda kalır. Başka işlem düğümü yoksa, bu görevler sonsuza kadar çalışır durumda kalabilir. Bir görevin çalışma durumunda takılıp takılmadığını belirlemek için, görevi sorgulayabilir ve ilişkili düğümlerinin kullanılamaz olup olmadığını veya havuzdan silinip silinmediğini de kontrol edebilirsiniz.
- Bir görev sonlandırıldığında, Batch hizmeti yalnızca çalışmakta olan görevlerini erişilebilir işlem düğümleriyle sonlandırır. Mevcut tüm etkin görevler ve kullanılamayan düğümlerle çalışan görevler geçerli durumda kalır.
- Bir görev yeniden sorgulandığında (örneğin, önceden yüklenmiş düğüm veya seçenekli
Requeuehavuz yeniden boyutlandırma işlemi nedeniyle), işinin kuyruğunun sonuna geri gönderiliyor. Başka etkin görevler aynı işte bekliyorsa, görevin yeniden zamanlanması için ertelenmesi mümkündür.
Sonraki adımlar
- Dosyalar ve dizinler hakkında bilgi edinin.