správa clusteru služby ML Services v Azure HDInsight

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.

v tomto článku se naučíte spravovat existující cluster služby ML Services v Azure HDInsight, abyste mohli provádět úlohy, jako je přidání více souběžných uživatelů, připojení vzdáleně ke clusteru služeb ML, změna výpočetního kontextu atd.

Požadavky

Povolení několika souběžných uživatelů

můžete povolit více souběžných uživatelů pro cluster služeb ML Services v HDInsight přidáním dalších uživatelů pro hraniční uzel, na kterém je spuštěná verze komunity RStudio. Při vytváření clusteru HDInsight musíte zadat dva uživatele – uživatele HTTP a uživatele SSH:

Parametry HDI Azure Portal přihlašovacích údajů

  • Uživatelské jméno přihlášení clusteru: Uživatel HTTP pro ověřování prostřednictvím brány HDInsight, která slouží k ochraně vytvořených clusterů HDInsight. Tento uživatel HTTP slouží k přístupu k uživatelskému rozhraní Apache Ambari, uživatelskému rozhraní Apache Hadoop nitě a dalším součástem uživatelského rozhraní.
  • Uživatelské jméno Secure Shell (SSH): Uživatel SSH sloužící k přístupu ke clusteru přes Secure Shell. Tento uživatel je uživatel v systému Linux pro všechny hlavní uzly, pracovní uzly a hraniční uzly. Proto můžete použít Secure Shell pro přístup k jakémukoli uzlu ve vzdáleném clusteru.

verze serveru R Studio Community použitá v clusteru služeb ML ve službě HDInsight přijímá jako mechanismus přihlášení pouze uživatelské jméno a heslo pro Linux. Nepodporuje předávání tokenů. takže při prvním pokusu o přístup k R Studio v clusteru služby ML Services se musíte přihlásit dvakrát.

  • Nejdřív se přihlaste pomocí přihlašovacích údajů uživatele HTTP prostřednictvím brány HDInsight.

  • Pak se pomocí přihlašovacích údajů uživatele SSH přihlaste k RStudio.

V současné době je možné při zřizování clusteru HDInsight vytvořit pouze jeden uživatelský účet SSH. takže pokud chcete povolit přístup více uživatelů ke clusteru služby ML Services v HDInsight, musíte v systému Linux vytvořit další uživatele.

Vzhledem k tomu, že RStudio běží na hraničním uzlu clusteru, existuje několik kroků:

  1. Přihlášení k hraničnímu uzlu pomocí stávajícího uživatele SSH
  2. Přidání dalších uživatelů Linuxu na hraničním uzlu
  3. Použití komunitní verze RStudia s vytvořeným uživatelem

Krok 1: použití vytvořeného uživatele SSH k přihlášení k hraničnímu uzlu

postupujte podle pokynů v Připojení do HDInsight (Apache Hadoop) pomocí SSH pro přístup k hraničnímu uzlu. adresa hraničního uzlu pro cluster služeb ML Services v HDInsight je CLUSTERNAME-ed-ssh.azurehdinsight.net .

Krok 2: Přidání dalších uživatelů Linuxu na hraničním uzlu

Pokud chcete přidat uživatele na hraničním uzlu, spusťte následující příkazy:

# Add a user 
sudo useradd <yournewusername> -m

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

Na následujícím snímku obrazovky vidíte výstupy.

počet souběžných uživatelů s výstupem obrazovky

Po zobrazení výzvy k zadání hesla "aktuální heslo protokolu Kerberos", stačí stisknout klávesu ENTER , aby se ignorovala. Možnost -m v příkazu useradd označuje, že systém pro uživatele vytvoří domovskou složku, kterou vyžaduje komunitní verze RStudia.

Krok 3: Použití komunitní verze RStudia s vytvořeným uživatelem

Přístup k RStudio z https://CLUSTERNAME.azurehdinsight.net/rstudio/ . Pokud se přihlašujete poprvé po vytvoření clusteru, zadejte přihlašovací údaje Správce clusteru a přihlašovací údaje uživatele SSH, které jste vytvořili. Pokud se nejedná o vaše první přihlášení, zadejte pouze pověření pro uživatele SSH, kterého jste vytvořili.

Můžete se také přihlásit pomocí původních přihlašovacích údajů (ve výchozím nastavení je sshuser) souběžně z jiného okna prohlížeče.

Všimněte si také, že nově přidaní uživatelé nemají v systému Linux kořenová oprávnění, ale mají stejný přístup ke všem souborům ve vzdáleném úložišti HDFS a WASB.

Připojení vzdáleně na služby Microsoft ML

můžete nastavit přístup ke výpočetnímu kontextu HDInsight Spark ze vzdálené instance ML klienta běžícího na ploše. K tomu je nutné zadat možnosti (hdfsShareDir, shareDir, sshUsername, sshHostname, sshSwitches a sshProfileScript) při definování výpočetního kontextu výpočetního rxspark na ploše: například:

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
)

další informace najdete v části "použití Microsoft Machine Learning Server jako klienta Apache Hadoop" v tématu použití RevoScaleR ve výpočetním kontextu Apache Spark .

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

Výpočetní kontext vám umožňuje řídit, jestli se výpočty provádějí místně na hraničním uzlu, nebo jsou distribuovány napříč uzly v clusteru HDInsight. příklad nastavení výpočetního kontextu se serverem RStudio najdete v tématu spuštění skriptu R v clusteru služby ML Services ve službě Azure HDInsight pomocí serveru RStudio.

Distribuování kódu R do více uzlů

pomocí služby ML Services v HDInsight můžete existující kód R a spustit ho napříč několika uzly v clusteru pomocí rxExec . Tato funkce je užitečná při uklízení parametrů nebo provádění simulací. Následující kód je příklad použití příkazu rxExec:

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

Pokud stále používáte kontext Spark, tento příkaz vrátí hodnotu Node pro pracovní uzly, (Sys.info()["nodename"]) na kterých je spuštěný kód. Například v clusteru se čtyřmi uzly očekáváte, že dostanete výstup podobný následujícímu fragmentu kódu:

$rxElem1
    nodename
"wn3-mymlser"

$rxElem2
    nodename
"wn0-mymlser"

$rxElem3
    nodename
"wn3-mymlser"

$rxElem4
    nodename
"wn3-mymlser"

Přístup k datům v Apache Hive a Parquet

služba HDInsight ML Services umožňuje přímý přístup k datům v podregistru a Parquet pro použití funkcemi škálování ve výpočetním kontextu Spark. Tyto možnosti jsou dostupné prostřednictvím nových funkcí zdroje dat ScaleR s názvem RxHiveData a RxParquetData. Funkce pomocí Spark SQL načtou data přímo do struktury DataFrame ve Sparku, aby je ScaleR mohl analyzovat.

Následuje vzorový kód pro použití těchto nových funkcí:

#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)

další informace o používání těchto nových funkcí najdete v online nápovědě k ML službám prostřednictvím použití ?RxHivedata ?RxParquetData příkazů a.

Instalace dalších balíčků R na clusteru

Instalace balíčků R na hraničním uzlu

Pokud chcete na hraničním uzlu nainstalovat další balíčky R, můžete použít install.packages() přímo v konzole R, a to po připojení k hraničnímu uzlu přes SSH.

Instalace balíčků jazyka R na pracovní uzel

Pokud chcete nainstalovat balíčky R na pracovní uzly clusteru, musíte použít akci skriptu. Akce skriptů jsou skripty Bash, které se používají k provádění změn konfigurace clusteru HDInsight nebo k instalaci dalšího softwaru, jako jsou například další balíčky R.

Důležité

Instalace dalších balíčků R pomocí akcí skriptů je možná jedině po vytvoření clusteru. nepoužívejte tento postup během vytváření clusteru, protože skript spoléhá na naprosto nakonfigurované ML služby.

  1. Postupujte podle kroků v části Přizpůsobení clusterů pomocí akce skriptu.

  2. Pro akci odeslání skriptu zadejte následující informace:

    • Jako typ skriptu vyberte vlastní.

    • Do pole název zadejte název akce skriptu.

      • V případě identifikátoru URI bash skriptu zadejte https://mrsactionscripts.blob.core.windows.net/rpackages-v01/InstallRPackages.sh . Toto je skript, který do pracovního uzlu nainstaluje další balíčky R.
    • Zaškrtněte políčko pouze pro pracovní proces.

    • Parametry: Balíčky R určené k instalaci. Například bitops stringr arules.

    • Zaškrtněte políčko, pokud chcete zachovat tuto akci skriptu.

    Poznámka

    1. ve výchozím nastavení jsou všechny balíčky R nainstalované ze snímku úložiště Microsoft MRAN, který je v souladu s nainstalovanou verzí ML Server. Pokud chcete nainstalovat novější verze balíčků, vystavujete se riziku nekompatibility. Tento typ instalace však můžete provést zadáním useCRAN jako prvního prvku seznamu balíčků, například useCRAN bitops, stringr, arules.
    2. Některé balíčky R vyžadují další linuxové systémové knihovny. pro usnadnění práce se služby HDInsight ML instalují předem se závislostmi, které jsou potřebné pro nejčastější 100 nejoblíbenějších balíčků R. Pokud ale balíčky R, které instalujete, vyžadují ještě další knihovny, budete si muset stáhnout základní skript, které zde používáme, a přidat další kroky k instalaci příslušných systémových knihoven. Upravený skript je pak nutné odeslat do veřejného kontejneru objektů blob v úložišti Azure, a k instalaci balíčků použít upravený skript. Další informace o vývoji akcí skriptů najdete v tématu Vývoj akcí skriptů.

    Azure Portal odeslat akci skriptu

  3. Vyberte Vytvořit a spusťte skript. Po dokončení skriptu jsou balíčky R k dispozici na všech pracovních uzlech.

Další kroky