Rychlý start: Spuštění skriptu R v clusteru ML Services v Azure HDInsight RStudio Serveru
Důležité
Tento obsah je vyřazený a v budoucnu se nebude aktualizovat. Typ clusteru služeb Azure HDInsight 3,6 ML (Machine Learning Server) byl vyřazen od 31. prosince 2020.
ML Services v Azure HDInsight umožňuje skriptům R používat Apache Spark a Apache Hadoop MapReduce ke spouštění distribuovaných výpočtů. ML Services řídí způsob spuštění volání nastavením výpočetního kontextu. Hraniční uzel clusteru představuje vhodné místo pro připojení ke clusteru a spouštění skriptů jazyka R. U hraničního uzlu máte možnost spouštění paralelizovaných distribuovaných funkcí RevoScaleR napříč jádry serveru hraničního uzlu. Můžete je také spouštět napříč uzly clusteru pomocí revoScaleR Hadoop Map Reduce nebo Apache Spark výpočetních kontextů.
V tomto rychlém startu se dozvíte, jak spustit skript R s RStudio Serverem, který ukazuje použití Sparku pro distribuované výpočty V. Definujete výpočetní kontext pro místní provádění výpočtů na hraničním uzlu a znovu distribuovaný mezi uzly v clusteru HDInsight.
Požadavek
Cluster ML Services ve službě HDInsight. Viz Vytvoření Apache Hadoop clusterů pomocí Azure Portal a jako Typ clusteru vyberte ML Services.
Připojení k RStudio Serveru
RStudio Server běží na hraničním uzlu clusteru. Přejděte na následující adresu CLUSTERNAME URL, kde je název clusteru ML Services, který jste vytvořili:
https://CLUSTERNAME.azurehdinsight.net/rstudio/
Při prvním přihlášení se musíte ověřit dvakrát. Pro první výzvu k ověření zadejte přihlašovací jméno a heslo správce clusteru, výchozí hodnota je admin . Pro druhou výzvu k ověření zadejte přihlašovací jméno a heslo SSH, výchozí hodnota je sshuser . Při dalších přihlášeních se vyžadují pouze přihlašovací údaje SSH.
Po připojení by vaše obrazovka měla vypadat podobně jako na následujícím snímku obrazovky:
Použití výpočetního kontextu
Z RStudio Serveru použijte následující kód k načtení příkladů dat do výchozího úložiště pro HDInsight:
# Set the HDFS (WASB) location of example data bigDataDirRoot <- "/example/data" # create a local folder for storing data temporarily source <- "/tmp/AirOnTimeCSV2012" dir.create(source) # Download data to the tmp folder remoteDir <- "https://packages.revolutionanalytics.com/datasets/AirOnTimeCSV2012" download.file(file.path(remoteDir, "airOT201201.csv"), file.path(source, "airOT201201.csv")) download.file(file.path(remoteDir, "airOT201202.csv"), file.path(source, "airOT201202.csv")) download.file(file.path(remoteDir, "airOT201203.csv"), file.path(source, "airOT201203.csv")) download.file(file.path(remoteDir, "airOT201204.csv"), file.path(source, "airOT201204.csv")) download.file(file.path(remoteDir, "airOT201205.csv"), file.path(source, "airOT201205.csv")) download.file(file.path(remoteDir, "airOT201206.csv"), file.path(source, "airOT201206.csv")) download.file(file.path(remoteDir, "airOT201207.csv"), file.path(source, "airOT201207.csv")) download.file(file.path(remoteDir, "airOT201208.csv"), file.path(source, "airOT201208.csv")) download.file(file.path(remoteDir, "airOT201209.csv"), file.path(source, "airOT201209.csv")) download.file(file.path(remoteDir, "airOT201210.csv"), file.path(source, "airOT201210.csv")) download.file(file.path(remoteDir, "airOT201211.csv"), file.path(source, "airOT201211.csv")) download.file(file.path(remoteDir, "airOT201212.csv"), file.path(source, "airOT201212.csv")) # Set directory in bigDataDirRoot to load the data into inputDir <- file.path(bigDataDirRoot,"AirOnTimeCSV2012") # Make the directory rxHadoopMakeDir(inputDir) # Copy the data from source to input rxHadoopCopyFromLocal(source, bigDataDirRoot)Dokončení tohoto kroku může trvat přibližně 8 minut.
Vytvořte nějaké informace o datech a definujte dva zdroje dat. V RStudiu zadejte následující kód:
# Define the HDFS (WASB) file system hdfsFS <- RxHdfsFileSystem() # Create info list for the airline data airlineColInfo <- list( DAY_OF_WEEK = list(type = "factor"), ORIGIN = list(type = "factor"), DEST = list(type = "factor"), DEP_TIME = list(type = "integer"), ARR_DEL15 = list(type = "logical")) # get all the column names varNames <- names(airlineColInfo) # Define the text data source in hdfs airOnTimeData <- RxTextData(inputDir, colInfo = airlineColInfo, varsToKeep = varNames, fileSystem = hdfsFS) # Define the text data source in local system airOnTimeDataLocal <- RxTextData(source, colInfo = airlineColInfo, varsToKeep = varNames) # formula to use formula = "ARR_DEL15 ~ ORIGIN + DAY_OF_WEEK + DEP_TIME + DEST"Spusťte logistickou regresi dat pomocí místního výpočetního kontextu. V RStudiu zadejte následující kód:
# Set a local compute context rxSetComputeContext("local") # Run a logistic regression system.time( modelLocal <- rxLogit(formula, data = airOnTimeDataLocal) ) # Display a summary summary(modelLocal)Výpočty by se měly dokončit přibližně za 7 minut. Měl by se zobrazit výstup, který končí řádky podobnými následujícímu fragmentu kódu:
Data: airOnTimeDataLocal (RxTextData Data Source) File name: /tmp/AirOnTimeCSV2012 Dependent variable(s): ARR_DEL15 Total independent variables: 634 (Including number dropped: 3) Number of valid observations: 6005381 Number of missing observations: 91381 -2*LogLikelihood: 5143814.1504 (Residual deviance on 6004750 degrees of freedom) Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -3.370e+00 1.051e+00 -3.208 0.00134 ** ORIGIN=JFK 4.549e-01 7.915e-01 0.575 0.56548 ORIGIN=LAX 5.265e-01 7.915e-01 0.665 0.50590 ...... DEST=SHD 5.975e-01 9.371e-01 0.638 0.52377 DEST=TTN 4.563e-01 9.520e-01 0.479 0.63172 DEST=LAR -1.270e+00 7.575e-01 -1.676 0.09364 . DEST=BPT Dropped Dropped Dropped Dropped --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Condition number of final variance-covariance matrix: 11904202 Number of iterations: 7Spusťte stejnou logistickou regresi pomocí kontextu Sparku. Kontext Spark distribuuje zpracování do všech pracovních uzlů v clusteru HDInsight. V RStudiu zadejte následující kód:
# Define the Spark compute context mySparkCluster <- RxSpark() # Set the compute context rxSetComputeContext(mySparkCluster) # Run a logistic regression system.time( modelSpark <- rxLogit(formula, data = airOnTimeData) ) # Display a summary summary(modelSpark)Výpočty by se měly dokončit přibližně za 5 minut.
Vyčištění prostředků
Po dokončení tohoto rychlého startu můžete cluster odstranit. Pomocí HDInsight jsou vaše data uložena v Azure Storage, takže můžete clusteru bezpečně odstranit, pokud není používán. Za cluster služby HDInsight se účtují poplatky, i když se nepoužívá. Vzhledem k tomu, že poplatky za cluster představují několikanásobek poplatků za úložiště, dává ekonomický smysl odstraňovat clustery, které nejsou používány.
Informace o odstranění clusteru najdete v tématu Odstranění clusteru HDInsight pomocí prohlížeče, PowerShellu nebo Azure CLI.
Další kroky
V tomto rychlém startu jste zjistili, jak spustit skript R s RStudio Serverem, který předvedl použití Sparku pro distribuované výpočty V. V dalším článku se dozvíte, jaké možnosti jsou k dispozici a které určují, jestli a jak se provádění paralelizuje napříč jádry hraničního uzlu nebo clusteru HDInsight.
Poznámka
Tato stránka popisuje funkce softwaru RStudio. Microsoft Azure HDInsight není přidružený k RStudio, Inc.