Azure Storage-lösningar för ML Services på Azure HDInsight
Viktigt
Det här innehållet dras tillbaka och kommer inte att uppdateras i framtiden. Azure HDInsight klustertypen 3.6 ML Services (Machine Learning Server) togs ur bruk den 31 dec 2020.
ML Services på HDInsight kan använda olika lagringslösningar för att bevara data, kod eller objekt som innehåller resultat från analys. Dessa lösningar innehåller följande alternativ:
Du kan också komma åt flera Azure Storage-konton eller containrar med ditt HDInsight-kluster. Azure Files är ett praktiskt datalagringsalternativ för användning på gränsnoden som gör att du kan montera en Azure-filresurs till exempelvis Linux-filsystemet. Men Azure-filresurser kan monteras och användas av alla system som har ett operativsystem som stöds, till exempel Windows eller Linux.
När du skapar ett Apache Hadoop-kluster i HDInsight anger du antingen ett Azure Blob Storage-konto eller Data Lake Storage Gen1. En specifik lagringscontainer från det kontot innehåller filsystemet för det kluster som du skapar (till exempel Hadoop Distributed File System). Mer information och vägledning finns i:
Använda Azure Blob Storage-konton med ML Services-kluster
Om du angav mer än ett lagringskonto när du skapade ML Services-klustret förklarar följande anvisningar hur du använder ett sekundärt konto för dataåtkomst och åtgärder i ett ML Services-kluster. Anta följande lagringskonton och container: storage1 och en standardcontainer med namnet container1 och storage2 med container2.
Varning
I prestandasyfte skapas HDInsight-klustret i samma datacenter som det primära lagringskonto som du anger. Det går inte att använda ett lagringskonto på en annan plats än HDInsight-klustret.
Använd standardlagringen med ML Services i HDInsight
Anslut till kantnoden i klustret med hjälp av en SSH-klient. Information om hur du använder SSH med HDInsight-kluster finns i Använda SSH med HDInsight.
Kopiera en exempelfil, mysamplefile.csv, till katalogen /share.
hadoop fs –mkdir /share hadoop fs –copyFromLocal mycsv.scv /shareVäxla till R Studio eller en annan R-konsol och skriv R-kod för att ange namnnoden till standard och plats för den fil som du vill komma åt.
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")
Alla katalog- och filreferenser pekar på lagringskontot wasbs://container1@storage1.blob.core.windows.net . Det här är standardlagringskontot som är associerat med HDInsight-klustret.
Använd ytterligare lagringsutrymme med ML Services på HDInsight
Anta nu att du vill bearbeta en fil med namnet mysamplefile1.csv som finns i katalogen /private för container2 i storage2.
I R-koden pekar du namnnodreferensen till lagringskontot 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")
Alla katalog- och filreferenser pekar nu på lagringskontot wasbs://container2@storage2.blob.core.windows.net . Det här är den namnnod som du har angett.
Konfigurera katalogen /user/RevoShare/<SSH username> på storage2 på följande sätt:
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>
Använda Azure Data Lake Storage Gen1 med ML Services-kluster
Om du vill använda Data Lake Storage Gen1 med ditt HDInsight-kluster måste du ge klustret åtkomst till varje Azure Data Lake Storage Gen1 som du vill använda. Anvisningar om hur du använder Azure Portal för att skapa ett HDInsight-kluster med Azure Data Lake Storage Gen1 som standardlagring eller ytterligare lagringsutrymme finns i Skapa ett HDInsight-klustermed Data Lake Storage Gen1 med hjälp av Azure Portal .
Sedan använder du lagringen i R-skriptet på ungefär samma sätt som du gjorde med ett sekundärt Azure Storage-konto enligt beskrivningen i föregående procedur.
Lägga till klusteråtkomst till Azure Data Lake Storage Gen1
Du kommer åt Data Lake Storage Gen1 med hjälp av Azure Active Directory tjänsthuvudnamn (Azure AD) som är associerat med ditt HDInsight-kluster.
När du skapar HDInsight-klustret väljer du Kluster Azure AD-identitet på fliken Datakälla.
I dialogrutan Kluster Azure AD-identitet går du till Välj AD-tjänstens huvudnamn och väljer Skapa ny.
När du har gett tjänstens huvudnamn ett namn och skapat ett lösenord för det klickar du på Hantera ADLS-åtkomst för att associera tjänstens huvudnamn med din Data Lake Storage.
Det går också att lägga till klusteråtkomst till ett eller flera Data Lake Storage Gen1-konton när klustret har skapats. Öppna posten Azure Portal data lake-Storage Gen1 och gå till Datautforskaren > Access > Lägg till.
Så här får du åtkomst till Data Lake Storage Gen1 från ML Services på HDInsight
När du har gett åtkomst till Data Lake Storage Gen1 kan du använda lagringen i ML Services-klustret på HDInsight på samma sätt som med ett sekundärt Azure-lagringskonto. Den enda skillnaden är att prefixet wasbs:// till adl:// följande:
# 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")
Följande kommandon används för att konfigurera Data Lake Storage Gen1 med katalogen RevoShare och lägga till exempelfilen .csv från föregående exempel:
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
Använda Azure Files med ML Services på HDInsight
Det finns också ett praktiskt alternativ för datalagring för användning på gränsnoden som kallas Azure Files. Det gör att du kan montera Azure Storage en filresurs till Linux-filsystemet. Det här alternativet kan vara praktiskt för att lagra datafiler, R-skript och resultatobjekt som kan behövas senare, särskilt när det är klokt att använda det interna filsystemet på gränsnoden i stället för HDFS.
En stor fördel med Azure Files är att filresurser kan monteras och användas av alla system som har ett operativsystem som stöds, till exempel Windows eller Linux. Den kan till exempel användas av ett annat HDInsight-kluster som du eller någon i ditt team har, av en virtuell Azure-dator eller till och med av ett lokalt system. Mer information finns i: