Linux’ta HDInsight kullanma ile ilgili bilgiler

Azure HDInsight kümeleri, Azure bulutunda çalışan tanıdık bir Linux ortamında Apache Hadoop sağlar. Çoğu şey için, tam olarak diğer Hadoop-on-Linux yüklemeleri gibi çalışmalıdır. Bu belge, bilmeniz gereken belirli farkları ortaya çıkarır.

Önkoşullar

Bu belgedeki adımların çoğu, sisteminize yüklenmesi gerekebilecek aşağıdaki yardımcı programları kullanır.

Kullanıcılar

Etki alanına katılmadığı sürece HDInsight tek kullanıcılı bir sistem olarak kabul edilmelidir. Kümeyle, yönetici düzeyinde izinlere sahip tek bir SSH kullanıcı hesabı oluşturulur. Ek SSH hesapları oluşturulabilir, ancak kümeye yönetici erişimi de vardır.

Etki alanına katılmış HDInsight birden çok kullanıcıyı ve daha ayrıntılı izin ve rol ayarlarını destekler. Daha fazla bilgi için bkz . Etki alanına katılmış HDInsight kümelerini yönetme.

Etki alanı adları

İnternet'ten kümeye bağlanırken kullanılacak tam etki alanı adı (FQDN) veya CLUSTERNAME-ssh.azurehdinsight.net 'dir CLUSTERNAME.azurehdinsight.net (yalnızca SSH için).

Dahili olarak, kümedeki her düğümün, küme yapılandırması sırasında atanan bir adı vardır. Küme adlarını bulmak için Ambari Web kullanıcı arabirimindeki Konaklar sayfasına bakın. Ambari REST API'sinden konakların listesini döndürmek için de aşağıdakileri kullanabilirsiniz:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts" | jq '.items[].Hosts.host_name'

CLUSTERNAME değerini kümenizin adıyla değiştirin. İstendiğinde yönetici hesabının parolasını girin. Bu komut, kümedeki konakların listesini içeren bir JSON belgesi döndürür. jq , her konağın host_name öğe değerini ayıklamak için kullanılır.

Belirli bir hizmetin düğüm adını bulmanız gerekiyorsa, bu bileşen için Ambari'yi sorgulayabilirsiniz. Örneğin, HDFS ad düğümü için konakları bulmak için aşağıdaki komutu kullanın:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/HDFS/components/NAMENODE" | jq '.host_components[].HostRoles.host_name'

Bu komut hizmeti açıklayan bir JSON belgesi döndürür ve ardından jq yalnızca konakların host_name değerini çıkarır.

Hizmetlere uzaktan erişim

  • Ambari (web) - https://CLUSTERNAME.azurehdinsight.net

    Küme yöneticisi kullanıcı ve parolasını kullanarak kimlik doğrulaması yapın ve ambari'de oturum açın.

    Kimlik doğrulaması düz metindir- bağlantının güvenli olduğundan emin olmak için her zaman HTTPS kullanın.

    Önemli

    İç etki alanı adı kullanarak Ambari erişim düğümleri aracılığıyla kullanılabilen web URI'lerinden bazıları. İç etki alanı adlara İnternet üzerinden genel olarak erişilemez. İnternet üzerinden bazı özelliklere erişmeye çalışırken "sunucu bulunamadı" hataları alabilirsiniz.

    Ambari web kullanıcı arabiriminin tüm işlevlerini kullanmak için, küme baş düğümüne web trafiğine ara sunucu sağlamak için bir SSH tüneli kullanın. Bkz . Apache Ambari web kullanıcı arabirimine, ResourceManager'a, JobHistory'ye, NameNode'a, Oozie'ye ve diğer web URI'lerine erişmek için SSH Tüneli kullanma

  • Ambari (REST) - https://CLUSTERNAME.azurehdinsight.net/ambari

    Dekont

    Küme yöneticisi kullanıcı ve parolasını kullanarak kimlik doğrulaması.

    Kimlik doğrulaması düz metindir- bağlantının güvenli olduğundan emin olmak için her zaman HTTPS kullanın.

  • WebHCat (Templeton) - https://CLUSTERNAME.azurehdinsight.net/templeton

    Dekont

    Küme yöneticisi kullanıcı ve parolasını kullanarak kimlik doğrulaması.

    Kimlik doğrulaması düz metindir- bağlantının güvenli olduğundan emin olmak için her zaman HTTPS kullanın.

  • SSH - 22 veya 23 numaralı bağlantı noktasında CLUSTERNAME-ssh.azurehdinsight.net. 22 numaralı bağlantı noktası birincil baş düğüme bağlanmak için, 23 ise ikincil baş düğüme bağlanmak için kullanılır. Baş düğümler hakkında daha fazla bilgi için bkz . HDInsight'ta Apache Hadoop kümelerinin kullanılabilirliği ve güvenilirliği.

    Dekont

    Küme baş düğümlerine yalnızca bir istemci makinesinden SSH aracılığıyla erişebilirsiniz. Bağlandıktan sonra bir baş düğümden SSH kullanarak çalışan düğümlerine erişebilirsiniz.

Daha fazla bilgi için HDInsight üzerinde Apache Hadoop hizmetleri tarafından kullanılan bağlantı noktaları belgesine bakın.

Dosya konumları

Hadoop ile ilgili dosyalar konumundaki /usr/hdpküme düğümlerinde bulunabilir. Bu dizin aşağıdaki alt dizinleri içerir:

  • 2.6.5.3009-43: Dizin adı, HDInsight tarafından kullanılan Hadoop platformunun sürümüdür. Kümenizdeki sayı burada listelenenden farklı olabilir.
  • current: Bu dizin, 2.6.5.3009-43 dizini altındaki alt dizinlere bağlantılar içerir. Sürüm numarasını hatırlamanız gerekmeyecek şekilde bu dizin var.

Örnek veriler ve JAR dosyaları ve /HdiSampleskonumundaki Hadoop Dağıtılmış Dosya Sistemi'nde /example bulunabilir.

HDFS, Azure Depolama ve Data Lake Depolama

Çoğu Hadoop dağıtımında veriler HDFS'de depolanır. HDFS, kümedeki makinelerde yerel depolama tarafından desteklenir. Yerel depolamayı kullanmak, saatlik veya işlem kaynakları için dakika başına ücretlendirildiğiniz bulut tabanlı bir çözüm için maliyetli olabilir.

HDInsight kullanırken, veri dosyaları Azure Blob Depolama ve isteğe bağlı olarak Azure Data Lake Storage 1. Nesil/2. Nesil kullanılarak bulutta uyarlanabilir ve dayanıklı bir şekilde depolanır. Bu hizmetler aşağıdaki avantajları sağlar:

  • Ucuz uzun süreli depolama.
  • Web siteleri, dosya yükleme/indirme yardımcı programları, çeşitli dil SDK'ları ve web tarayıcıları gibi dış hizmetlerden erişilebilirlik.
  • Büyük dosya kapasitesi ve büyük uyarlanabilir depolama alanı.

Daha fazla bilgi için bkz. Azure Blob depolama, Azure Data Lake Storage 1. Nesil veya Azure Data Lake Storage 2. Nesil.

Azure Blob depolama veya Data Lake Storage 1. Nesil/2. Nesil kullanırken verilere erişmek için HDInsight'tan özel bir şey yapmanız gerekmez. Örneğin, aşağıdaki komut, azure Depolama veya Data Lake Depolama'da depolanmış olan klasördeki dosyaları /example/data listeler:

hdfs dfs -ls /example/data

HDInsight'ta veri depolama kaynakları (Azure Blob Depolama ve Azure Data Lake Depolama) işlem kaynaklarından ayrılmıştır. gerektiği gibi hesaplama yapmak için HDInsight kümeleri oluşturabilir ve daha sonra iş bittiğinde kümeyi silebilirsiniz. Bu arada, ihtiyaç duyduğunuz sürece veri dosyalarınızın bulut depolama alanında güvenli bir şekilde kalıcı kalmasını sağlayın.

URI ve şema

Bazı komutlar, dosyaya erişirken düzeni URI'nin bir parçası olarak belirtmenizi gerektirebilir. Varsayılan olmayan depolama (kümeye "ek" depolama alanı olarak eklenen depolama alanı) kullanırken, düzeni her zaman URI'nin bir parçası olarak kullanmanız gerekir.

Azure Depolama kullanırken aşağıdaki URI şemalarından birini kullanın:

  • wasb:///: Şifrelenmemiş iletişimi kullanarak varsayılan depolamaya erişin.

  • wasbs:///: Şifrelenmiş iletişimi kullanarak varsayılan depolamaya erişin. Wasbs şeması yalnızca HDInsight sürüm 3.6'dan itibaren desteklenir.

  • wasb://<container-name>@<account-name>.blob.core.windows.net/: Varsayılan olmayan bir depolama hesabıyla iletişim kurarken kullanılır. Örneğin, ek bir depolama hesabınız olduğunda veya genel olarak erişilebilen bir depolama hesabında depolanan verilere erişirken.

Azure Data Lake Storage 2. Nesil kullanırken aşağıdaki URI düzenini kullanın:

  • abfs://: Şifrelenmiş iletişimi kullanarak varsayılan depolamaya erişin.

  • abfs://<container-name>@<account-name>.dfs.core.windows.net/: Varsayılan olmayan bir depolama hesabıyla iletişim kurarken kullanılır. Örneğin, ek bir depolama hesabınız olduğunda veya genel olarak erişilebilen bir depolama hesabında depolanan verilere erişirken.

Azure Data Lake Storage 1. Nesil kullanırken aşağıdaki URI şemalarından birini kullanın:

  • adl:///: Küme için varsayılan Data Lake Depolama erişin.

  • adl://<storage-name>.azuredatalakestore.net/: Varsayılan olmayan bir Data Lake Depolama ile iletişim kurarken kullanılır. Ayrıca HDInsight kümenizin kök dizini dışındaki verilere erişmek için de kullanılır.

Önemli

HDInsight için varsayılan depo olarak Data Lake Depolama kullanırken, HDInsight depolamanın kökü olarak kullanılacak depo içinde bir yol belirtmeniz gerekir. Varsayılan yol şeklindedir /clusters/<cluster-name>/.

Veya adl:/// kullanarak / verilere erişirken, yalnızca kümenin kökünde (örneğin, /clusters/<cluster-name>/) depolanan verilere erişebilirsiniz. Mağazanın herhangi bir yerindeki verilere erişmek için biçimini kullanın adl://<storage-name>.azuredatalakestore.net/ .

Küme hangi depolama alanını kullanıyor?

Ambari'yi kullanarak küme için varsayılan depolama yapılandırmasını alabilirsiniz. Curl kullanarak HDFS yapılandırma bilgilerini almak ve jq kullanarak filtrelemek için aşağıdaki komutu kullanın:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["fs.defaultFS"] | select(. != null)'

Dekont

Bu komut, bu bilgileri içeren sunucuya ()service_config_version=1 uygulanan ilk yapılandırmayı döndürür. En son sürümü bulmak için tüm yapılandırma sürümlerini listelemeniz gerekebilir.

Bu komut aşağıdaki URI'lere benzer bir değer döndürür:

  • wasb://<container-name>@<account-name>.blob.core.windows.netazure Depolama hesabı kullanıyorsanız.

    Hesap adı, Azure Depolama hesabının adıdır. Kapsayıcı adı, küme depolamanın kökü olan blob kapsayıcısıdır.

  • adl://homeAzure Data Lake Depolama kullanıyorsanız. Data Lake Depolama adını almak için aşağıdaki REST çağrısını kullanın:

    curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.hostname"] | select(. != null)'
    

    Bu komut şu ana bilgisayar adını döndürür: <data-lake-store-account-name>.azuredatalakestore.net.

    Depoda HDInsight'ın kökü olan dizini almak için aşağıdaki REST çağrısını kullanın:

    curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.mountpoint"] | select(. != null)'
    

    Bu komut, aşağıdaki yola benzer bir yol döndürür: /clusters/<hdinsight-cluster-name>/.

Aşağıdaki adımları kullanarak Azure portalını kullanarak depolama bilgilerini de bulabilirsiniz:

  1. Azure portalından HDInsight kümenizi seçin.

  2. Özellikler bölümünden Depolama Hesapları'nı seçin. Kümenin depolama bilgileri görüntülenir.

HDInsight dışından dosyalara erişim Nasıl yaparım?

HDInsight kümesinin dışından verilere erişmenin çeşitli yolları vardır. Verilerinizle çalışmak için kullanılabilecek yardımcı programlara ve SDK'lara birkaç bağlantı aşağıdadır:

Azure Blob depolama kullanıyorsanız, verilerinize erişmenin yolları için aşağıdaki bağlantılara bakın:

  • Azure CLI: Azure ile çalışmaya yönelik Komut Satırı arabirimi komutları. Yükledikten sonra, depolamayı kullanma konusunda yardım için veya az storage blob bloba özgü komutlar için komutunu kullanınaz storage.

  • blobxfer.py: Azure Depolama'de bloblarla çalışmaya yönelik bir Python betiği.

  • Çeşitli SDK'lar:

Azure Data Lake Storage 1. Nesil kullanıyorsanız, verilerinize erişmenin yolları için aşağıdaki bağlantılara bakın:

Kümenizi ölçeklendirme

Küme ölçeklendirme özelliği, küme tarafından kullanılan veri düğümlerinin sayısını dinamik olarak değiştirmenize olanak tanır. Diğer işler veya işlemler bir kümede çalışırken ölçeklendirme işlemleri yapabilirsiniz. Bkz. HDInsight kümelerini ölçeklendirme

Hue'yu (veya diğer Hadoop bileşenini) Nasıl yaparım? yükleyin?

HDInsight yönetilen bir hizmettir. Azure kümeyle ilgili bir sorun algılarsa, başarısız olan düğümü silebilir ve bunu değiştirmek için bir düğüm oluşturabilir. Kümeye öğeleri el ile yüklediğinizde, bu işlem gerçekleştiğinde kalıcı olmazlar. Bunun yerine HDInsight Betik Eylemleri'ni kullanın. Aşağıdaki değişiklikleri yapmak için bir betik eylemi kullanılabilir:

  • Bir hizmeti veya web sitesini yükleme ve yapılandırma.
  • Kümedeki birden çok düğümde yapılandırma değişiklikleri gerektiren bir bileşeni yükleyin ve yapılandırın.

Betik Eylemleri Bash betikleridir. Betikler küme oluşturma sırasında çalışır ve ek bileşenleri yüklemek ve yapılandırmak için kullanılır. Kendi Betik Eylemlerinizi geliştirme hakkında daha fazla bilgi için bkz. HDInsight ile Betik Eylemi geliştirme.

Jar dosyaları

Bazı Hadoop teknolojileri, bağımsız jar dosyaları sağlar. Bu dosyalar, MapReduce işinin parçası olarak ya da Pig veya Hive içinden kullanılan işlevleri içerir. Genellikle herhangi bir kurulum gerektirmezler ve oluşturma işleminden sonra kümeye yüklenip doğrudan kullanılabilirler. Bileşenin kümenin yeniden boyutlandırılmasının devamını sağlamak istiyorsanız jar dosyasını küme varsayılan depolama alanında depolayın.

Örneğin, Apache DataFu'nun en son sürümünü kullanmak istiyorsanız projeyi içeren bir jar dosyasını indirip HDInsight kümesine yükleyebilirsiniz. Ardından Bunu Pig veya Hive'dan nasıl kullanacağınıza ilişkin DataFu belgelerini izleyin.

Önemli

Tek başına jar dosyaları olan bazı bileşenler HDInsight ile sağlanır, ancak yolda değildir. Belirli bir bileşeni arıyorsanız, kümenizde aramak için aşağıdakini kullanabilirsiniz:

find / -name *componentname*.jar 2>/dev/null

Bu komut eşleşen jar dosyalarının yolunu döndürür.

Bir bileşenin farklı bir sürümünü kullanmak için ihtiyacınız olan sürümü karşıya yükleyin ve işlerinizde kullanın.

Önemli

HDInsight kümesiyle sağlanan bileşenler tam olarak desteklenir ve Microsoft Desteği bu bileşenlerle ilgili sorunları yalıtmaya ve çözmeye yardımcı olur.

Özel bileşenler, sorunu daha fazla gidermenize yardımcı olmak için ticari olarak makul bir destek alır. Bu, sorunun çözülmesine veya bu teknolojiye ilişkin derin uzmanlığın bulunduğu açık kaynak teknolojileri için kullanılabilir kanallarla etkileşim kurmanızı istemenize neden olabilir. Örneğin, kullanılabilecek birçok topluluk sitesi vardır: HDInsight için Microsoft Soru-Cevap soru sayfası, https://stackoverflow.com. Ayrıca Apache projelerinin üzerinde https://apache.orgproje siteleri vardır, örneğin: Hadoop, Spark.

Sonraki adımlar