Hızlı Başlangıç: RStudio Server kullanarak ML Services kümesinde R Azure HDInsight betiği yürütme
Ö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ı.
ML Hizmetleri, R Azure HDInsight dağıtılmış hesaplamaları çalıştırmak için Apache Spark ve Apache Hadoop MapReduce kullanmalarını sağlar. ML Hizmetleri, işlem bağlamını ayarerek çağrıların nasıl yürütülülür olduğunu kontrol eder. Kümenin kenar düğümü, kümeye bağlanmak ve R betiklerinizi çalıştırmak için kullanışlı bir yer sağlar. Kenar düğümünde, Kenar düğümü sunucusunun çekirdekleri arasında RevoScaleR'nin paralel dağıtılmış işlevlerini çalıştırma seçeneğiniz vardır. Ayrıca RevoScaleR'nin Hadoop Eşleme Azaltmasını kullanarak veya işlem bağlamlarını kullanarak bunları kümenin Apache Spark çalıştırabilirsiniz.
Bu hızlı başlangıçta, dağıtılmış R hesaplamaları için Spark kullanmayı gösteren RStudio Server ile R betiği çalıştırmayı öğrenirsiniz. Bir kenar düğümünde yerel olarak hesaplamalar gerçekleştirmek ve HDInsight kümesinde düğümlere yeniden dağıtılmış bir işlem bağlamı tanımlayabilirsiniz.
Önkoşul
HDInsight ML da bir ML Services kümesi. Bkz. Küme türünü kullanarak Apache Hadoop kümeleri Azure portal ve ML Hizmetleri'ni seçin.
RStudio Server’a bağlanma
RStudio Server kümenin kenar düğümünde çalışır. Aşağıdaki URL'ye CLUSTERNAME gidin; burada, oluşturduğunuz ML Services kümesi adıdır:
https://CLUSTERNAME.azurehdinsight.net/rstudio/
İlk kez oturum a açmanız için iki kez kimlik doğrulaması gerekir. İlk kimlik doğrulama istemi için kümenin Yönetici oturum açma bilgilerini ve parolasını girin; varsayılan değer: admin . İkinci kimlik doğrulama istemi için SSH oturum açma bilgilerini ve parolasını girin; varsayılan değer: sshuser . Sonraki oturum açmalar yalnızca SSH kimlik bilgilerini gerektirir.
Bağlandıktan sonra ekranınız aşağıdaki ekran görüntüsüne benzemelidir:
İşlem bağlamı kullanma
RStudio Server'da örnek verileri HDInsight için varsayılan depolama alanına yüklemek üzere aşağıdaki kodu kullanın:
# 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)Bu adımın tamamlanması yaklaşık 8 dakika sürebilir.
Bazı veri bilgileri oluşturun ve iki veri kaynağı tanımlayın. RStudio'da aşağıdaki kodu girin:
# 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"Yerel işlem bağlamını kullanarak veriler üzerinde lojistik regresyon çalıştırın. RStudio'da aşağıdaki kodu girin:
# Set a local compute context rxSetComputeContext("local") # Run a logistic regression system.time( modelLocal <- rxLogit(formula, data = airOnTimeDataLocal) ) # Display a summary summary(modelLocal)Hesaplamaların yaklaşık 7 dakika içinde tamamlanması gerekir. Aşağıdaki kod parçacığına benzer satırlarla sona eren bir çıkış görüyor gerekir:
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: 7Spark bağlamını kullanarak aynı lojistik regresyonu çalıştırın. Spark bağlamı, işlemi HDInsight kümesindeki tüm çalışan düğümlerine dağıtır. RStudio'da aşağıdaki kodu girin:
# 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)Hesaplamaların yaklaşık 5 dakika içinde tamamlanması gerekir.
Kaynakları temizleme
Hızlı başlangıç tamamlandıktan sonra kümeyi silmek istiyor olabilir. HDInsight ile, verileriniz Azure Storage’da depolanır, böylece kullanılmadığında bir kümeyi güvenle silebilirsiniz. Ayrıca, kullanılmıyorken dahi HDInsight kümesi için sizden ücret kesilir. Küme ücretleri depolama ücretlerinin birkaç katı olduğundan, kullanılmadığında kümelerin silinmesi mantıklı olandır.
Kümeyi silmek için bkz. Tarayıcınızı, PowerShell'i veya Azure CLI'yi kullanarak HDInsight kümesi silme.
Sonraki adımlar
Bu hızlı başlangıçta, dağıtılmış R hesaplamaları için Spark kullanmayı gösteren RStudio Server ile R betiği çalıştırmayı öğrendiniz. Yürütmenin kenar düğümünün veya HDInsight kümesi çekirdeklerinin arasında nasıl paralel hale getirildiklerini ve nasıl paralel hale getirildiklerini belirtmek için kullanılabilen seçenekleri öğrenmek için sonraki makaleye ilerleyin.
Not
Bu sayfada RStudio yazılımının özellikleri açıklanmaz. Microsoft Azure HDInsight RStudio, Inc. ile bağlantılı değildir