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
cluster služby ML Services v HDInsight. přečtěte si téma vytvoření Apache Hadoop clusterů pomocí Azure Portal a výběr služeb ML Services pro typ clusteru.
Klient Secure Shell (SSH): Klient SSH slouží k vzdálenému připojení ke clusteru HDInsight a spouštění příkazů přímo v clusteru. Další informace najdete v tématu Použití SSH se službou HDInsight..
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:
- 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ů:
- Přihlášení k hraničnímu uzlu pomocí stávajícího uživatele SSH
- Přidání dalších uživatelů Linuxu na hraničním uzlu
- 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 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.
Postupujte podle kroků v části Přizpůsobení clusterů pomocí akce skriptu.
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.
- V případě identifikátoru URI bash skriptu zadejte
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
- 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
useCRANjako prvního prvku seznamu balíčků, napříkladuseCRAN bitops, stringr, arules. - 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ů.
Vyberte Vytvořit a spusťte skript. Po dokončení skriptu jsou balíčky R k dispozici na všech pracovních uzlech.