Azure HDInsight'ta betik eylemleriyle ilgili sorunları giderme
Bu makalede, Azure HDInsight kümeleriyle etkileşim kurarken karşılaşılan sorunlara yönelik sorun giderme adımları ve olası çözümler açıklanmaktadır.
Günlükleri görüntüleme
Betik eylemleri tarafından günlüğe kaydedilen bilgileri görüntülemek için Apache Ambari web kullanıcı arabirimini kullanabilirsiniz. Betik küme oluşturma sırasında başarısız olursa günlükler varsayılan küme depolama hesabındadır. Bu bölümde, bu seçeneklerin her ikisi de kullanılarak günlüklerin nasıl alındığı hakkında bilgi sağlanır.
Apache Ambari web kullanıcı arabirimi
Bir web tarayıcısından adresine gidin
https://CLUSTERNAME.azurehdinsight.net
; buradaCLUSTERNAME
kümenizin adıdır.Sayfanın üst kısmındaki çubuktan ops girişini seçin. Liste, Ambari aracılığıyla kümede yapılan geçerli ve önceki işlemleri görüntüler.
İşlemler sütununda run_customscriptaction olan girişleri bulun. Bu girdiler, betik eylemleri çalıştırıldığında oluşturulur.
STDOUT ve STDERR çıkışını görüntülemek için run\customscriptaction girişini seçin ve bağlantılarda detaya gidin. Bu çıkış, betik çalıştırıldığında oluşturulur ve yararlı bilgilere sahip olabilir.
Varsayılan depolama hesabı
Bir betik hatası nedeniyle küme oluşturma işlemi başarısız olursa günlükler küme depolama hesabında tutulur.
Depolama günlüklerine adresinden
\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE
ulaşabilirsiniz.Bu dizin altında günlükler baş düğüm, çalışan düğümü ve zookeeper düğümü için ayrı ayrı düzenlenir. Aşağıdaki örneklere bakın:
Baş düğüm:
<ACTIVE-HEADNODE-NAME>.cloudapp.net
Çalışan düğümü:
<ACTIVE-WORKERNODE-NAME>.cloudapp.net
Zookeeper düğümü:
<ACTIVE-ZOOKEEPERNODE-NAME>.cloudapp.net
İlgili konağın tüm stdout ve stderr'ı depolama hesabına yüklenir. Her betik eylemi için bir çıkış*.txt ve errors-*.txt vardır. output-*.txt dosyası, konakta çalıştırılan betiğin URI'sine ilişkin bilgileri içerir. Aşağıdaki metin, bu bilgilere bir örnektir:
'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
Aynı ada sahip bir betik eylem kümesini tekrar tekrar oluşturmanız mümkündür. Bu durumda, ilgili günlükleri TARİh klasör adına göre ayırt edebilirsiniz. Örneğin, farklı tarihlerde oluşturulan mycluster adlı kümenin klasör yapısı aşağıdaki günlük girişlerine benzer şekilde görünür:
\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-04
\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-05
Aynı gün aynı ada sahip bir betik eylem kümesi oluşturursanız, ilgili günlük dosyalarını tanımlamak için benzersiz ön eki kullanabilirsiniz.
Gece yarısı saat 12:00'ye yakın bir küme oluşturursanız günlük dosyalarının iki güne yayılması mümkündür. Bu durumda, aynı küme için iki farklı tarih klasörü görürsünüz.
Günlük dosyalarının varsayılan kapsayıcıya yüklenmesi, özellikle büyük kümeler için beş dakikaya kadar sürebilir. Bu nedenle günlüklere erişmek istiyorsanız, bir betik eylemi başarısız olursa kümeyi hemen silmemeniz gerekir.
Ambari watchdog
Linux tabanlı HDInsight kümenizde Hdinsightwatchdog olan Ambari watchdog'un parolasını değiştirmeyin. Parola değişikliği, HDInsight kümesinde yeni betik eylemleri çalıştırma özelliğini bozar.
BlobService adı içeri aktarılamıyor
Belirtiler. Betik eylemi başarısız oluyor. Ambari'de işlemi görüntülediğinizde aşağıdaki hataya benzer bir metin görüntülenir:
Traceback (most recent call list):
File "/var/lib/ambari-agent/cache/custom_actions/scripts/run_customscriptaction.py", line 21, in <module>
from azure.storage.blob import BlobService
ImportError: cannot import name BlobService
Neden. HDInsight kümesine dahil olan Python Azure Depolama istemcisini yükselttiyseniz bu hata oluşur. HDInsight, Azure Depolama istemcisi 0.20.0'ı bekler.
Çözüm. Bu hatayı çözmek için kullanarak ssh
her küme düğümüne el ile bağlanın. Doğru depolama istemcisi sürümünü yeniden yüklemek için aşağıdaki komutu çalıştırın:
sudo pip install azure-storage==0.20.0
SSH ile kümeye bağlanma hakkında bilgi için bkz . SSH kullanarak HDInsight'a (Apache Hadoop) bağlanma.
Geçmiş, küme oluşturma sırasında kullanılan betikleri göstermiyor
Kümeniz 15 Mart 2016'da oluşturulduysa betik eylem geçmişinde bir girdi göremeyebilirsiniz. Kümeyi yeniden boyutlandırmak betiklerin betik eylem geçmişinde görünmesine neden olur.
İki istisna mevcuttur:
Kümeniz 1 Eylül 2015'e kadar oluşturulmuştur. Bu tarih, betik eylemlerinin tanıtıldığı tarihtir. Bu tarihten önce oluşturulan herhangi bir küme, küme oluşturma için betik eylemlerini kullanamadı.
Küme oluşturma sırasında birden çok betik eylemi kullandınız. Ya da birden çok betik için aynı adı veya aynı adı, aynı URI'yi ama birden çok betik için farklı parametreleri kullandınız. Bu gibi durumlarda aşağıdaki hatayı alırsınız:
No new script actions can be run on this cluster because of conflicting script names in existing scripts. Script names provided at cluster creation must be all unique. Existing scripts are run on resize.
Sonraki adımlar
Sorununuzu görmediyseniz veya sorununuzu çözemiyorsanız daha fazla destek için aşağıdaki kanallardan birini ziyaret edin:
Azure Topluluk Desteği aracılığıyla Azure uzmanlarından yanıt alın.
Müşteri deneyimini geliştirmek için resmi Microsoft Azure hesabı olan @AzureSupport ile bağlantı kurun. Azure topluluğunun doğru kaynaklara bağlanması: yanıtlar, destek ve uzmanlar.
Daha fazla yardıma ihtiyacınız varsa Azure portalından bir destek isteği gönderebilirsiniz. Menü çubuğundan Destek'i seçin veya Yardım + destek hub'ını açın. Daha ayrıntılı bilgi için bkz. Azure desteği isteği oluşturma. Abonelik Yönetimi’ne ve faturalandırma desteğine erişim Microsoft Azure aboneliğinize dahildir, Teknik Destek ise herhangi bir Azure Destek Planı üzerinden sağlanır.