Azure HDInsight'da ML Hizmetleri için Azure depolama Azure HDInsight

Önemli

Bu içerik kullanımdan kalkmışsa ve gelecekte güncelleştirilmeyecek. Azure HDInsight 3,6 ML Hizmetleri (Machine Learning Server) küme türü 31 Aralık 2020 itibariyle kullanımdan kaldırıldı.

HDInsight'ta ML Hizmetleri verileri, kodu veya analiz sonuçlarını içeren nesneleri kalıcı yapmak için farklı depolama çözümleri kullanabilir. Bu çözümler aşağıdaki seçenekleri içerir:

HdInsight kümeniz ile birden çok Azure depolama hesabına veya kapsayıcıya erişme seçeneğiniz de vardır. Azure Dosyalar, Azure dosya paylaşımını örneğin Linux dosya sistemine bağlamaya olanak sağlayan kenar düğümünde kullanmak için kullanışlı bir veri depolama seçeneğidir. Ancak Azure dosya paylaşımları, Windows veya Linux gibi desteklenen işletim sistemine sahip herhangi bir sistem tarafından Windows kullanılabilir.

HDInsight'ta bir Apache Hadoop kümesi 1. Nesil'de bir Azure Blob depolama hesabı veya Data Lake Depolama belirtirsiniz. Bu hesaptan gelen belirli bir depolama kapsayıcısı, sizin oluşturmakta olduğu küme için dosya sistemini tutar (örneğin, Hadoop Dağıtılmış Dosya Sistemi). Daha fazla bilgi ve rehberlik için bkz:

ML Services kümesiyle Azure Blob depolama hesaplarını kullanma

ML Services kümenizi oluştururken birden fazla depolama hesabı belirttiyebilirsiniz. Aşağıdaki yönergelerde, ML Services kümesinde veri erişimi ve işlemleri için ikincil bir hesabın nasıl ML açıklanması gerekir. Şu depolama hesaplarını ve kapsayıcıyı varsayın: storage1 ve container1 adlı varsayılan kapsayıcı ve container2 ile storage2.

Uyarı

Performans amacıyla HDInsight kümesi, belirttiğiniz birincil depolama hesabıyla aynı veri merkezinde oluşturulur. HDInsight kümesinden farklı bir konumda depolama hesabı kullanma desteklenmiyor.

HDInsight'ta ML Hizmetleri ile varsayılan depolamayı kullanma

  1. SSH istemcisi kullanarak kümenizin kenar düğümüne bağlanın. HDInsight kümeleri ile SSH kullanma hakkında bilgi için bkz. HDInsight ile SSH kullanma.

  2. Bir örnek dosyayı mysamplefile.csv /share dizinine kopyalayın.

    hadoop fs –mkdir /share
    hadoop fs –copyFromLocal mycsv.scv /share
    
  3. R Studio'ya veya başka bir R konsoluna geçişin ve ad düğümünü varsayılan olarak ve erişmek istediğiniz dosyanın konumunu ayarlamak için R kodu yazın.

    myNameNode <- "default"
    myPort <- 0
    
    #Location of the data:  
    bigDataDirRoot <- "/share"  
    
    #Define Spark compute context:
    mySparkCluster <- RxSpark(nameNode=myNameNode, consoleOutput=TRUE)
    
    #Set compute context:
    rxSetComputeContext(mySparkCluster)
    
    #Define the Hadoop Distributed File System (HDFS) file system:
    hdfsFS <- RxHdfsFileSystem(hostName=myNameNode, port=myPort)
    
    #Specify the input file to analyze in HDFS:
    inputFile <-file.path(bigDataDirRoot,"mysamplefile.csv")
    

Tüm dizin ve dosya başvuruları depolama hesabına işaret wasbs://container1@storage1.blob.core.windows.net ediyor. Bu, HDInsight kümesiyle ilişkili varsayılan depolama hesabıdır.

HDInsight'ta ML Hizmetleri ile ek depolamayı kullanma

Şimdi, storage2'de kapsayıcı2'nin/private dizininde bulunan mysamplefile1.csv adlı bir dosyayı işlemeyi düşünün.

R kodunda, ad düğümü başvurusünü storage2 depolama hesabına işaret etmek.

myNameNode <- "wasbs://container2@storage2.blob.core.windows.net"
myPort <- 0

#Location of the data:
bigDataDirRoot <- "/private"

#Define Spark compute context:
mySparkCluster <- RxSpark(consoleOutput=TRUE, nameNode=myNameNode, port=myPort)

#Set compute context:
rxSetComputeContext(mySparkCluster)

#Define HDFS file system:
hdfsFS <- RxHdfsFileSystem(hostName=myNameNode, port=myPort)

#Specify the input file to analyze in HDFS:
inputFile <-file.path(bigDataDirRoot,"mysamplefile1.csv")

Tüm dizin ve dosya başvuruları artık depolama hesabına işaret wasbs://container2@storage2.blob.core.windows.net ediyor. Bu, belirttiğiniz Ad Düğümü'leridir.

/user/RevoShare/<SSH username>Storage2'de dizini aşağıdaki gibi yapılandırabilirsiniz:

hadoop fs -mkdir wasbs://container2@storage2.blob.core.windows.net/user
hadoop fs -mkdir wasbs://container2@storage2.blob.core.windows.net/user/RevoShare
hadoop fs -mkdir wasbs://container2@storage2.blob.core.windows.net/user/RevoShare/<RDP username>

ML Services kümesiyle Azure Data Lake Depolama 1. Nesil'i kullanma

HDInsight kümeniz ile Data Lake Depolama 1. Nesil'i kullanmak için, kümenize kullanmak istediğiniz her Azure Data Lake Depolama 1. Nesil erişimi vermeniz gerekir. Azure Data Lake Depolama 1. Nesil ile varsayılan depolama alanı veya ek depolama alanı olarak bir HDInsight kümesi oluşturmak üzere Azure portal kullanma yönergeleri için bkz. Azure portal kullanarak Data Lake Depolama 1. Nesil ile HDInsightkümesi oluşturma.

Ardından R betiğinde depolama alanını, önceki yordamda açıklandığı gibi ikincil bir Azure depolama hesabında olduğu gibi kullanırsınız.

Azure Data Lake Depolama 1. Nesil'inize küme erişimi ekleme

Data Lake Depolama 1. Nesil'e HDInsight kümeniz ile ilişkilendirilmiş bir Azure Active Directory (Azure AD) Hizmet Sorumlusu kullanarak erişebilirsiniz.

  1. HDInsight kümenizi oluşturduktan sonra Veri Kaynağı sekmesinden Küme Azure AD Kimliği'ni seçin.

  2. Küme Azure AD Kimliği iletişim kutusundaki AD Hizmet Sorumlusu Seç altında Yeni oluştur'a tıklayın.

Hizmet Sorumlusuna bir ad verdikten ve bunun için bir parola oluşturdukta, Hizmet Sorumlusu'u Data Lake Depolama ile ilişkilendirmek için ADLS Erişimini Yönet'e tıklayın.

Küme oluşturmanın ardından bir veya daha fazla Data Lake Storage 1. Nesil hesabına küme erişimi eklemek de mümkündür. Data Lake Azure portal 1. Nesil için Depolama girişini açın ve Veri Gezgini > Access > gidin.

HDInsight'ta ML Services'den Data Lake Depolama 1. Nesil'e erişme

Data Lake Depolama 1. Nesil'e erişim verdiktan sonra, HDInsight'ta ML Services kümesinde depolama alanını ikincil bir Azure depolama hesabı gibi kullanabilirsiniz. Tek fark, ön ekin wasbs:// olarak adl:// şekilde değişir:

# Point to the ADL Storage (e.g. ADLtest)
myNameNode <- "adl://rkadl1.azuredatalakestore.net"
myPort <- 0

# Location of the data (assumes a /share directory on the ADL account)
bigDataDirRoot <- "/share"  

# Define Spark compute context
mySparkCluster <- RxSpark(consoleOutput=TRUE, nameNode=myNameNode, port=myPort)

# Set compute context
rxSetComputeContext(mySparkCluster)

# Define HDFS file system
hdfsFS <- RxHdfsFileSystem(hostName=myNameNode, port=myPort)

# Specify the input file in HDFS to analyze
inputFile <-file.path(bigDataDirRoot,"mysamplefile.csv")

Aşağıdaki komutlar Data Lake Depolama 1. Nesil'i RevoShare diziniyle yapılandırmak ve önceki örnekteki .csv dosyasını eklemek için kullanılır:

hadoop fs -mkdir adl://rkadl1.azuredatalakestore.net/user
hadoop fs -mkdir adl://rkadl1.azuredatalakestore.net/user/RevoShare
hadoop fs -mkdir adl://rkadl1.azuredatalakestore.net/user/RevoShare/<user>

hadoop fs -mkdir adl://rkadl1.azuredatalakestore.net/share

hadoop fs -copyFromLocal /usr/lib64/R Server-7.4.1/library/RevoScaleR/SampleData/mysamplefile.csv adl://rkadl1.azuredatalakestore.net/share

hadoop fs –ls adl://rkadl1.azuredatalakestore.net/share

HDInsight Azure Dosyalar da ML Hizmetleri ile birlikte kullanma

Kenar düğümünde kullanmak için Azure Dosyalar adlı kullanışlı bir veri depolama seçeneği de vardır. Linux dosya sistemine bir Azure Depolama paylaşımı bağlamaya olanak sağlar. Bu seçenek daha sonra gerekebilecek veri dosyalarını, R betiklerini ve sonuç nesnelerini depolamak için kullanışlı olabilir, özellikle de HDFS yerine kenar düğümünde yerel dosya sistemini kullanmak mantıklı olduğunda.

Dosya paylaşımlarının Azure Dosyalar önemli bir avantajı, dosya paylaşımlarının Windows veya Linux gibi desteklenen işletim sistemine sahip herhangi bir sistem tarafından kullanıla Windows olmasıdır. Örneğin, sizin veya takımınızdaki birinin sahip olduğu başka bir HDInsight kümesi, bir Azure VM veya hatta şirket içi bir sistem tarafından kullanılabilir. Daha fazla bilgi için bkz.

Sonraki adımlar