Azure-opslagoplossingen voor ML Services op Azure HDInsight

Belangrijk

Deze inhoud wordt niet meer gebruikt en wordt in de toekomst niet meer bijgewerkt. Azure HDInsight clustertype 3.6 ML Services (Machine Learning Server) is vanaf 31 december 2020 niet meer gebruikt.

ML Services in HDInsight kunnen verschillende opslagoplossingen gebruiken om gegevens, code of objecten die resultaten van analyse bevatten, persistent te maken. Deze oplossingen omvatten de volgende opties:

U hebt ook de mogelijkheid om toegang te krijgen tot meerdere Azure-opslagaccounts of -containers met uw HDInsight-cluster. Azure Files is een handige optie voor gegevensopslag voor gebruik op het edge-knooppunt waarmee u een Azure-bestands share kunt toevoegen aan bijvoorbeeld het Linux-bestandssysteem. Maar Azure-bestands shares kunnen worden bevestigd en gebruikt door elk systeem met een ondersteund besturingssysteem, zoals Windows of Linux.

Wanneer u een Apache Hadoop-cluster maakt in HDInsight, geeft u een Azure Blob Storage-account of Data Lake Storage Gen1 op. Een specifieke opslagcontainer van dat account bevat het bestandssysteem voor het cluster dat u maakt (bijvoorbeeld de Hadoop Distributed File System). Zie voor meer informatie en richtlijnen:

Azure Blob Storage-accounts gebruiken met ML Services-cluster

Als u meer dan één opslagaccount hebt opgegeven bij het maken van uw ML Services-cluster, wordt in de volgende instructies uitgelegd hoe u een secundair account gebruikt voor toegang tot gegevens en bewerkingen op een ML Services-cluster. Neem de volgende opslagaccounts en container: storage1 en een standaardcontainer met de naam container1 en storage2 met container2.

Waarschuwing

Voor prestatiedoeleinden wordt het HDInsight-cluster gemaakt in hetzelfde datacenter als het primaire opslagaccount dat u opgeeft. Het gebruik van een opslagaccount op een andere locatie dan het HDInsight-cluster wordt niet ondersteund.

De standaardopslag gebruiken met ML Services in HDInsight

  1. Maak met behulp van een SSH-client verbinding met het edge-knooppunt van uw cluster. Zie SSH gebruiken met HDInsight voor meer informatie over het gebruik van SSH met HDInsight-clusters.

  2. Kopieer een voorbeeldbestand, mysamplefile.csv, naar de map /share.

    hadoop fs –mkdir /share
    hadoop fs –copyFromLocal mycsv.scv /share
    
  3. Schakel over naar R Studio of een andere R-console en schrijf R-code om het naam knooppunt in te stellen op de standaardinstelling en locatie van het bestand dat u wilt openen.

    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")
    

Alle map- en bestandsverwijzingen verwijzen naar het opslagaccount wasbs://container1@storage1.blob.core.windows.net . Dit is het standaardopslagaccount dat is gekoppeld aan het HDInsight-cluster.

De extra opslag gebruiken met ML Services in HDInsight

Stel nu dat u een bestand met de naam mysamplefile1.csv dat zich in de map /private van container2 in storage2 bevindt.

In uw R-code verwijst u de naam van het knooppunt naar het opslagaccount storage2.

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")

Alle map- en bestandsverwijzingen verwijzen nu naar het opslagaccount wasbs://container2@storage2.blob.core.windows.net . Dit is het naam-knooppunt dat u hebt opgegeven.

Configureer /user/RevoShare/<SSH username> de map op storage2 als volgt:

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>

Azure Data Lake Storage Gen1 gebruiken met ML Services-cluster

Als u Data Lake Storage Gen1 wilt gebruiken met uw HDInsight-cluster, moet u uw cluster toegang geven tot elke Azure Data Lake Storage Gen1 die u wilt gebruiken. Zie Een HDInsight-clustermaken met Data Lake Storage Gen1 met behulp van Azure Portal voor instructies over het gebruik van de Azure Portal om een HDInsight-cluster te maken met een Azure Data Lake Storage Gen1 als standaardopslag of als extra opslag.

Vervolgens gebruikt u de opslag in uw R-script, net zoals u een secundair Azure-opslagaccount hebt gedaan, zoals beschreven in de vorige procedure.

Clustertoegang toevoegen aan uw Azure Data Lake Storage Gen1

U hebt toegang tot Data Lake Storage Gen1 met behulp van een Azure Active Directory -service-principal (Azure AD) die is gekoppeld aan uw HDInsight-cluster.

  1. Wanneer u uw HDInsight-cluster maakt, selecteert u Cluster Azure AD Identity op het tabblad Gegevensbron.

  2. Selecteer in het dialoogvenster Azure AD-identiteit cluster onder AD-service-principal selecteren de optie Nieuwe maken.

Nadat u de service-principal een naam hebt gegeven en er een wachtwoord voor hebt ingesteld, klikt u op ADLS-toegang beheren om de service-principal te koppelen aan uw Data Lake Storage.

Het is ook mogelijk om clustertoegang toe te voegen aan een of meer Data Lake Storage Gen1-accounts nadat het cluster is gemaakt. Open de Azure Portal voor een Data Lake Storage Gen1 en ga naar Data Explorer > Access > Add.

Toegang tot Data Lake Storage Gen1 vanuit ML Services in HDInsight

Zodra u toegang hebt gegeven tot Data Lake Storage Gen1, kunt u de opslag in het ML Services-cluster in HDInsight gebruiken op de manier waarop u een secundair Azure-opslagaccount zou gebruiken. Het enige verschil is dat het voorvoegsel wasbs:// als volgt adl:// gewijzigd:

# 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")

De volgende opdrachten worden gebruikt om data lake Storage Gen1 te configureren met de map RevoShare en het voorbeeldbestand .csv uit het vorige voorbeeld toe te voegen:

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

Gebruik Azure Files met ML Services in HDInsight

Er is ook een handige optie voor gegevensopslag voor gebruik op het edge-knooppunt met de naam Azure Files. Hiermee kunt u een Azure Storage aan het Linux-bestandssysteem. Deze optie kan handig zijn voor het opslaan van gegevensbestanden, R-scripts en resultaatobjecten die later nodig kunnen zijn, met name wanneer het zinvol is om het systeemeigen bestandssysteem te gebruiken op het edge-knooppunt in plaats van HDFS.

Een belangrijk voordeel van Azure Files is dat de bestands shares kunnen worden bevestigd en gebruikt door elk systeem met een ondersteund besturingssysteem zoals Windows of Linux. Het kan bijvoorbeeld worden gebruikt door een ander HDInsight-cluster dat u of iemand in uw team heeft, door een Azure-VM of zelfs door een on-premises systeem. Zie voor meer informatie:

Volgende stappen