MaxCompute MapReduce işleri aşağıdaki sınırlamalara tabidir. Bir sınırın aşılması işin başarısız olmasına neden olur.
Sınırlamalar beş kategoriye ayrılır:
Bellek — tek bir map veya reduce örneğinin kullanabileceği maksimum bellek miktarı
Adet — örnekler, girişler, çıkışlar, kaynaklar, sayaçlar ve yeniden denemeler için üst sınırlar
Uzunluk — kaynaklar, veri bölümleri ve dize sütunları için boyut sınırları
Zaman — bir çalışanın veri okumadan, yazmadan veya heartbeat göndermeden ne kadar süre çalışabileceği
Veri türü — tablo kaynaklarında desteklenen alan türleri
Sınır tablosu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sınır ayrıntıları
Örnek başına bellek
Her map veya reduce örneğinin iki bellek havuzu vardır: çerçeve belleği (varsayılan 2.048 MB) ve Java Virtual Machine (JVM) yığın belleği (varsayılan 1.024 MB). Toplam bellek miktarı 256 MB–12 GB aralığında olmalıdır. Bellek tahsisini ayarlarken hem odps.stage.mapper.mem hem de odps.stage.mapper.jvm.mem (veya bunların reducer eşdeğerlerini) ayarlayın.
İş başına kaynak
Tek bir iş en fazla 256 kaynağa referans verebilir. Her tablo ve her arşiv dosyası bir kaynak olarak sayılır. Referans verilen tüm kaynakların toplam boyutu 2 GB'ı aşamaz.
Girişler ve çıkışlar
Tek bir bölüm bir giriş olarak sayılır. Toplam giriş sayısı 1.024'ü aşamaz.
Tüm girişlerdeki farklı tabloların toplam sayısı 64'ü aşamaz.
Toplam çıkış sayısı 256'yı aşamaz.
Özel sayaçlar
Bir iş en fazla 64 özel sayaç tanımlayabilir. Hem Grup Adı hem de Sayaç Adı kare işareti (#) içermemelidir ve bunların toplam uzunluğu 100 karakteri aşamaz.
Map ve reduce örnekleri
Çerçeve, map örneklerinin sayısını bölüm boyutuna göre hesaplar. Bu varsayılan davranıştır; çerçeve sayıyı otomatik olarak belirler. Bu davranışı geçersiz kılmak için odps.stage.mapper.num parametresini 1–100.000 aralığında bir değere ayarlayın. Giriş tablosu belirtilmemişse bu parametreyi açıkça ayarlamanız gerekir.
Varsayılan olarak reduce örneklerinin sayısı, map örneklerinin sayısının dörtte biridir. Bu durumu geçersiz kılmak için odps.stage.reducer.num parametresini 0–2.000 aralığında herhangi bir değere ayarlayın. Bir reduce örneği, bir map örneğine kıyasla önemli ölçüde daha fazla veri işleyebilir; bu durum reduce aşamasını yavaşlatabilir.
Yeniden denemeler
Başarısız olan bir map veya reduce örneği en fazla üç kez yeniden denenir. Bazı yeniden denenemeyen özel durumlar, işin yeniden deneme yapılmadan hemen başarısız olmasına neden olur.
Yerel hata ayıklama modu
Yerel hata ayıklama modunda:
Map örnekleri: varsayılan 2, maks. 100
Reduce örnekleri: varsayılan 1, maks. 100
Giriş başına indirilen kayıt: varsayılan 100, maks. 10.000
Çalışan çalıştırma zaman aşımı
Bir çalışan, zaman aşımı süresinden daha uzun süre veri okumaz, yazmaz veya context.progress() aracılığıyla heartbeat göndermezse zaman aşımına uğrar. Varsayılan zaman aşımı 600 saniyedir (aralık: 1–3.600 saniye). G/Ç işlemleri arasında uzun işlem aralıkları olan işler için odps.function.timeout değerini daha yüksek bir değere ayarlayın.
Özellik sınırlamaları
|
|
|
|
|
|
|
|
|
|
|
|
Bir MapReduce görevi bir tablo kaynağına referans verdiğinde, tablo desteklenmeyen veri türlerinde alanlar içeriyorsa hata bildirilir.
Bir projeyi şemaları destekleyecek şekilde yükseltirseniz, bu projedeki mevcut MapReduce işleri artık çalışmaz.