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:

Přehled webové konzoly R Studio

Použití výpočetního kontextu

  1. 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.

  2. 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"
    
  3. 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: 7
    
  4. Spusť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.