Azure hdınsight 'ta ML Services kümesini yönetme

Ö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ı.

bu makalede, birden çok eşzamanlı kullanıcı ekleme, bir ML hizmetleri kümesine uzaktan bağlanma, işlem bağlamını değiştirme gibi görevleri gerçekleştirmek için Azure hdınsight 'ta mevcut bir ML Services kümesini yönetmeyi öğreneceksiniz.

Önkoşullar

Birden çok eş zamanlı kullanıcı etkinleştirme

rstudio community sürümünün çalıştığı edge düğümüne daha fazla kullanıcı ekleyerek hdınsight üzerinde ML hizmetleri kümesi için birden fazla eşzamanlı kullanıcıyı etkinleştirebilirsiniz. Bir HDInsight kümesi oluşturduğunuzda bir HTTP kullanıcısı ve bir SSH kullanıcısı olmak üzere iki kullanıcı sağlamanız gerekir:

HDI Azure portal oturum açma parametreleri

  • Küme oturum açma kullanıcı adı: Oluşturduğunuz HDInsight kümelerini korumak için kullanılan HDInsight ağ geçidinden kimlik doğrulaması yapmak için kullanılan HTTP kullanıcısı. Bu HTTP kullanıcısı, Apache ambarı Kullanıcı arabirimine, Apache Hadoop YARN Kullanıcı arabirimine ve diğer UI bileşenlerine erişmek için kullanılır.
  • Secure Shell (SSH) Kullanıcı adı: güvenli kabuk aracılığıyla kümeye erişmek IÇIN bir SSH kullanıcısı. Bu kullanıcı Linux sisteminde tüm baş düğümler, çalışan düğümleri ve kenar düğümler için kullanılan kullanıcıdır. Bu sayede uzak kümedeki düğümlere erişmek için Secure Shell kullanabilirsiniz.

hdınsight üzerinde ML Services kümesinde kullanılan R Studio Server Community sürümü, oturum açma mekanizması olarak yalnızca Linux kullanıcı adı ve parolasını kabul eder. Belirteç iletmeyi desteklemez. bu nedenle, ML Services kümesinde ilk kez R Studio 'ya erişmeyi denediğinizde iki kez oturum açmanız gerekir.

  • İlk olarak HDInsight ağ geçidi üzerinden HTTP Kullanıcı kimlik bilgilerini kullanarak oturum açın.

  • Ardından, RStudio 'da oturum açmak için SSH kullanıcı kimlik bilgilerini kullanın.

Şu anda bir HDInsight kümesi sağlanırken yalnızca bir SSH kullanıcı hesabı oluşturulabilir. bu nedenle, birden fazla kullanıcının hdınsight üzerinde ML Services kümesine erişmesini sağlamak için Linux sisteminde ek kullanıcılar oluşturmanız gerekir.

RStudio kümenin Edge düğümünde çalıştığı için burada birkaç adım vardır:

  1. Edge düğümünde oturum açmak için mevcut SSH kullanıcısını kullanma
  2. Kenar düğümüne daha fazla Linux kullanıcısı ekleme
  3. RStudio Topluluk sürümünü oluşturulan kullanıcıyla kullanma

1. Adım: kenar düğümünde oturum açmak için oluşturulan SSH kullanıcısını kullanma

edge düğümüne erişmek için SSH kullanarak hdınsight 'a (Apache Hadoop) Bağlan yönelik yönergeleri izleyin. hdınsight üzerinde ML Services kümesi için kenar düğümü adresi CLUSTERNAME-ed-ssh.azurehdinsight.net .

2. Adım: Kenar düğümüne daha fazla Linux kullanıcısı ekleme

Kenar düğümüne bir kullanıcı eklemek için şu komutları çalıştırın:

# Add a user 
sudo useradd <yournewusername> -m

# Set password for the new user
sudo passwd <yournewusername>

Aşağıdaki ekran görüntüsünde çıktılar gösterilmektedir.

ekran görüntüsü çıkışı eşzamanlı kullanıcıları

"Geçerli Kerberos parolası:" sorulduğunda, bunu yoksaymak için yalnızca ENTER tuşuna basın. useradd komutundaki -m seçeneği, sistemin RStudio Topluluk sürümü için gerekli olan kullanıcı ana klasörünü oluşturacağını belirtir.

3. Adım: RStudio Topluluk sürümünü oluşturulan kullanıcıyla kullanma

RStudio 'dan ' ye erişin https://CLUSTERNAME.azurehdinsight.net/rstudio/ . Kümeyi oluşturduktan sonra ilk kez oturum açıyorsanız, Küme Yöneticisi kimlik bilgilerini ve ardından oluşturduğunuz SSH kullanıcı kimlik bilgilerini girin. İlk oturum açma işlemi değilse, yalnızca oluşturduğunuz SSH kullanıcısına ait kimlik bilgilerini girin.

Ayrıca, başka bir tarayıcı penceresinden aynı anda özgün kimlik bilgilerini (varsayılan olarak sshuser) kullanarak da oturum açabilirsiniz.

Ayrıca yeni eklenen kullanıcıların Linux sisteminde kök ayrıcalıklarına sahip olmadığına ancak uzak HDFS ve WASB depolama alanındaki tüm dosyalara aynı düzeyde erişime sahip olduğuna dikkat edin.

Microsoft ML Services 'a uzaktan Bağlan

masaüstünüzde çalışan bir ML istemcisinin uzak örneğinden hdınsight Spark işlem bağlamına erişimi ayarlayabilirsiniz. Bunu yapmak için, masaüstünüzde RxSpark işlem bağlamını tanımlarken (hdfsShareDir, shareDir, sshUsername, sshHostname, sshSwitches ve sshProfileScript) seçeneklerini belirtmeniz gerekir: Örneğin:

myNameNode <- "default"
myPort <- 0

mySshHostname  <- '<clustername>-ed-ssh.azurehdinsight.net'  # HDI secure shell hostname
mySshUsername  <- '<sshuser>'# HDI SSH username
mySshSwitches  <- '-i /cygdrive/c/Data/R/davec'   # HDI SSH private key

myhdfsShareDir <- paste("/user/RevoShare", mySshUsername, sep="/")
myShareDir <- paste("/var/RevoShare" , mySshUsername, sep="/")

mySparkCluster <- RxSpark(
    hdfsShareDir = myhdfsShareDir,
    shareDir     = myShareDir,
    sshUsername  = mySshUsername,
    sshHostname  = mySshHostname,
    sshSwitches  = mySshSwitches,
    sshProfileScript = '/etc/profile',
    nameNode     = myNameNode,
    port         = myPort,
    consoleOutput= TRUE
)

daha fazla bilgi için, Apache Spark işlem bağlamında geri alma kullanma konusunun "Apache Hadoop istemci olarak Microsoft Machine Learning Server kullanma" bölümüne bakın.

İşlem bağlamı kullanma

Bir işlem bağlamı, hesaplamanın kenar düğümünde yerel olarak yapılmasını veya HDInsight kümesindeki düğümlere dağıtılmasını denetlemenize olanak tanır. rstudio server ile bir işlem bağlamı ayarlamaya ilişkin bir örnek için bkz. Azure hdınsight 'ta bir R ML betiğini rstudio sunucusu kullanarak yürütme.

R kodunu birden fazla düğüme dağıtma

hdınsight üzerinde ML hizmetleri sayesinde, var olan R kodunu alabilir ve kullanarak kümedeki birden fazla düğümde çalıştırabilirsiniz rxExec . Bu işlev bir parametre tarama veya benzetme işlemi sırasında yararlıdır. rxExec kullanımını gösteren bir kod örneği aşağıda verilmiştir:

rxExec( function() {Sys.info()["nodename"]}, timesToRun = 4 )

Spark bağlamını hala kullanıyorsanız, bu komut kodun çalıştırıldığı çalışan düğümlerinin düğüler değerini döndürür (Sys.info()["nodename"]) . Örneğin, dört düğümlü bir kümede aşağıdaki kod parçacığına benzer bir çıktı almayı düşünüyorsunuz:

$rxElem1
    nodename
"wn3-mymlser"

$rxElem2
    nodename
"wn0-mymlser"

$rxElem3
    nodename
"wn3-mymlser"

$rxElem4
    nodename
"wn3-mymlser"

Apache Hive ve Parquet içindeki verilere erişin

hdınsight ML hizmetleri, Spark işlem bağlamındaki scaler işlevleri tarafından kullanılmak üzere Hive ve parquet içindeki verilere doğrudan erişime olanak tanır. Bu özellikler, ScaleR tarafından analiz edilmek üzere bir Spart DataFrame’e doğrudan veri yüklemek için Spark SQL kullanarak çalışan RxHiveData ve RxParquetData adlı yeni ScaleR veri kaynağı işlevleriyle kullanılabilir.

Yeni işlevlerin kullanımına ilişkin bazı örnek kodlar aşağıdaki kod ile verilmiştir:

#Create a Spark compute context:
myHadoopCluster <- rxSparkConnect(reset = TRUE)

#Retrieve some sample data from Hive and run a model:
hiveData <- RxHiveData("select * from hivesampletable",
                       colInfo = list(devicemake = list(type = "factor")))
rxGetInfo(hiveData, getVarInfo = TRUE)

rxLinMod(querydwelltime ~ devicemake, data=hiveData)

#Retrieve some sample data from Parquet and run a model:
rxHadoopMakeDir('/share')
rxHadoopCopyFromLocal(file.path(rxGetOption('sampleDataDir'), 'claimsParquet/'), '/share/')
pqData <- RxParquetData('/share/claimsParquet',
                        colInfo = list(
                            age    = list(type = "factor"),
                            car.age = list(type = "factor"),
                            type = list(type = "factor")
                        ) )
rxGetInfo(pqData, getVarInfo = TRUE)

rxNaiveBayes(type ~ age + cost, data = pqData)

#Check on Spark data objects, cleanup, and close the Spark session:
lsObj <- rxSparkListData() # two data objs are cached
lsObj
rxSparkRemoveData(lsObj)
rxSparkListData() # it should show empty list
rxSparkDisconnect(myHadoopCluster)

bu yeni işlevlerin kullanımı hakkında daha fazla bilgi için, ve komutlarının kullanımıyla ilgili ML hizmetlerinde çevrimiçi yardıma bakın ?RxHivedata ?RxParquetData .

Kümeye ek R paketleri yükler

Uç düğümüne R paketleri yüklemek için

Kenar düğümüne ek R paketleri yüklemek isterseniz, install.packages() SSH aracılığıyla Edge düğümüne bağlandıktan sonra doğrudan r konsolu içinden kullanabilirsiniz.

Çalışan düğümüne R paketleri yüklemek için

Kümenin çalışan düğümlerine R paketleri yüklemek için bir betik eylemi kullanmanız gerekir. Betik Eylemleri, HDInsight kümesinde yapılandırma değişiklikleri yapmak veya ek R paketleri gibi ek yazılımlar yüklemek için kullanılan Bash betikleridir.

Önemli

Ek R paketleri yüklemek için Betik Eylemleri yalnızca küme oluşturulduktan sonra kullanılabilir. betik, tamamen yapılandırılmış ML hizmetleri temel aldığından, bu yordamı küme oluşturma sırasında kullanmayın.

  1. Betiği kullanarak kümeleri özelleştirmebölümündeki adımları izleyin.

  2. Betiği gönder eylemi için aşağıdaki bilgileri sağlayın:

    • Betik türü için özel' i seçin.

    • Ad için, betik eylemi için bir ad sağlayın.

      • Bash betiği URI 'si için girin https://mrsactionscripts.blob.core.windows.net/rpackages-v01/InstallRPackages.sh . Bu, çalışan düğümüne ek R paketleri yükleyen betiğtir
    • Yalnızca çalışan için onay kutusunu seçin.

    • Parametreler: Yüklenecek R paketleri. Örneğin, bitops stringr arules

    • Bu betik eylemini kalıcı hale getirmek için onay kutusunu işaretleyin.

    Not

    1. varsayılan olarak, tüm R paketleri Microsoft mran deposunun yüklü olan ML Server sürümüyle tutarlı bir anlık görüntüsünden yüklenir. Paketlerin daha yeni sürümlerini yüklemek istiyorsanız uyumsuzluk riskiyle karşı karşıya kalabilirsiniz. Ancak bu tür yüklemeleri paket listesinin ilk öğesi olarak useCRAN belirleyerek mümkün kılabilirsiniz, örneğin useCRAN bitops, stringr, arules.
    2. Bazı R paketleri için ek Linux sistem kitaplıkları gerekir. daha kolay bir şekilde, hdınsight ML hizmetleri en popüler 100 R paketi için gereken bağımlılıklarla önceden yüklenmiş olarak gelir. Ancak, yüklediğiniz R paketleri bunların dışında kitaplıklar gerektirirse, burada kullanılan temel betiği indirmeniz ve adımları ekleyerek sistem kitaplıklarını yüklemeniz gerekir. Ardından, değiştirilmiş betiği Azure depolama hizmetindeki ortak bir blob kapsayıcıya yüklemeniz ve değiştirilmiş betiği kullanarak paketleri yüklemeniz gerekir. Betik eylemleri geliştirme hakkında daha fazla bilgi için bkz. betik eylemi geliştirme.

    Betik eylemini Azure portal gönder

  3. Betiği çalıştırmak için Oluştur’u seçin. Betik tamamlandıktan sonra R paketleri tüm çalışan düğümlerinde kullanılabilir.

Sonraki adımlar