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.
- cURL - web tabanlı hizmetlerle iletişim kurmak için kullanılır.
- jq, bir komut satırı JSON işlemcisi. Bkz. https://stedolan.github.io/jq/.
- Azure CLI - Azure hizmetlerini uzaktan yönetmek için kullanılır.
- Bir SSH istemcisi. Daha fazla bilgi için bkz. SSH kullanarak HDInsight'a (Apache Hadoop) bağlanma.
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
Not
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
Not
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.
Not
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/hdp
kü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 /HdiSamples
konumundaki Hadoop Dağıtılmış Dosya Sistemi'nde /example
bulunabilir.
HDFS, Azure Depolama ve Data Lake Storage
Ç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 kullandığınızda, veri dosyaları Azure Blob Depolama kullanılarak bulutta uyarlanabilir ve dayanıklı bir şekilde depolanır ve isteğe bağlı olarak Azure Data Lake Storage 2. Nesil. 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 veya Azure Data Lake Storage 2. Nesil.
Azure Blob depolama veya Data Lake Storage 2. Nesil kullanırken verilere erişmek için HDInsight'tan özel bir şey yapmanız gerekmez. Örneğin, aşağıdaki komut ister Azure Depolama'da ister Data Lake Storage'da /example/data
depolanmış olsun klasördeki dosyaları listeler:
hdfs dfs -ls /example/data
HDInsight'ta veri depolama kaynakları (Azure Blob Depolama ve Azure Data Lake Storage) 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) kullanırken, düzeni her zaman URI'nin bir parçası olarak kullanmanız gerekir.
Azure Depolama'yı 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/
: Bilinmeyen 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/
: Bilinmeyen 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.
Önemli
HDInsight için varsayılan depo olarak Data Lake Storage 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)'
Not
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.net
azure 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://home
Azure Data Lake Storage kullanıyorsanız. Data Lake Storage 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:
Özellikler bölümünde 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'da 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:
- Web tarayıcısı
- PowerShell
- Azure CLI
- WebHDFS REST API
- Visual Studio için Data Lake Araçları
- .NET
- Java
- Python
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.