Operationalisera ML Services-kluster på Azure HDInsight
Viktigt
Det här innehållet dras tillbaka och kommer inte att uppdateras i framtiden. Azure HDInsight klustertypen 3.6 ML Services (Machine Learning Server) togs ur bruk den 31 dec 2020.
När du har använt ML Services-kluster i HDInsight för att slutföra datamodellering kan du operationalisera modellen för att göra förutsägelser. Den här artikeln innehåller instruktioner om hur du utför den här uppgiften.
Förutsättningar
Ett ML Services-kluster i HDInsight. Se Skapa Apache Hadoop-kluster med hjälp Azure Portal och välj ML Services som Klustertyp.
En SSH-klient (Secure Shell): En SSH-klient används för att fjärransluta till HDInsight-klustret och köra kommandon direkt på klustret. Mer information finns i Använda SSH med HDInsight.
Operationalisera ML Services-kluster med en enda konfiguration
Anteckning
Stegen nedan gäller för R Server 9.0 och ML Server 9.1. Mer ML Server 9.3 finns i Använda administrationsverktyget för att hantera operationaliseringskonfigurationen.
SSH till kantnoden.
ssh USERNAME@CLUSTERNAME-ed-ssh.azurehdinsight.netAnvisningar om hur du använder SSH med Azure HDInsight finns i Använda SSH med HDInsight..
Ändra katalog för relevant version och sudo the dot net dll:
För Microsoft ML Server 9.1:
cd /usr/lib64/microsoft-r/rserver/o16n/9.1.0 sudo dotnet Microsoft.RServer.Utils.AdminUtil/Microsoft.RServer.Utils.AdminUtil.dllMicrosoft R-server 9.0:
cd /usr/lib64/microsoft-deployr/9.0.1 sudo dotnet Microsoft.DeployR.Utils.AdminUtil/Microsoft.DeployR.Utils.AdminUtil.dll
Du ser vilka alternativ du kan välja mellan. Välj det första alternativet, som du ser i följande skärmbild, för att konfigurera ML Server för drift.
Nu visas alternativet att välja hur du vill operationalisera ML Server. Från de alternativ som visas väljer du det första genom att ange A.
När du uppmanas till det anger du och anger lösenordet igen för en lokal administratörsanvändare.
Du bör se utdata som tyder på att åtgärden lyckades. Du uppmanas också att välja ett annat alternativ på menyn. Välj E för att gå tillbaka till huvudmenyn.
Du kan också utföra diagnostiska kontroller genom att köra ett diagnostiskt test på följande sätt:
a. Välj 6 på huvudmenyn för att köra diagnostiktester.
b. På menyn Diagnostiktester väljer du A. När du uppmanas till det anger du det lösenord som du angav för den lokala administratörsanvändaren.
c. Kontrollera att utdata visar att övergripande hälsa är ett pass.
d. Från menyalternativen som visas anger du E för att återgå till huvudmenyn och anger sedan 8 för att avsluta administratörsverktyget.
Långa fördröjningar vid användning av webbtjänst på Apache Spark
Om det uppstår långa fördröjningar när du försöker använda en webbtjänst som skapats med mrsdeploy-funktioner i en Apache Spark-beräkningskontext kan du behöva lägga till några mappar som saknas. Spark-programmet tillhör en användare som kallas 'rserve2' när den anropas från en webbtjänst med hjälp av mrsdeploy-funktioner. Så här kan du lösa problemet:
# Create these required folders for user 'rserve2' in local and hdfs:
hadoop fs -mkdir /user/RevoShare/rserve2
hadoop fs -chmod 777 /user/RevoShare/rserve2
mkdir /var/RevoShare/rserve2
chmod 777 /var/RevoShare/rserve2
# Next, create a new Spark compute context:
rxSparkConnect(reset = TRUE)
I det här skedet är konfigurationen för driftsättning klar. Nu kan du använda paketet på din RClient för att ansluta till driftiseringen på gränsnoden och börja använda dess funktioner som fjärrkörning mrsdeploy och webbtjänster. Beroende på om klustret är konfigurerat i ett virtuellt nätverk eller inte kan du behöva konfigurera portvidarebefordran via SSH-inloggning. I följande avsnitt beskrivs hur du konfigurerar den här tunneln.
ML Services-kluster i virtuellt nätverk
Se till att du tillåter trafik genom port 12800 till kantnoden. På så sätt kan du använda kantnoden för att ansluta till driftsättningsfunktionen.
library(mrsdeploy)
remoteLogin(
deployr_endpoint = "http://[your-cluster-name]-ed-ssh.azurehdinsight.net:12800",
username = "admin",
password = "xxxxxxx"
)
Om remoteLogin() inte kan ansluta till kantnoden, men SSH till kantnod fungerar, kontrollerar du att regeln för att tillåta trafik via port 12800 har ställts in på rätt sätt. Om problemet kvarstår kan du kringgå det genom att ställa in portvidarebefordran via SSH. Anvisningar finns i följande avsnitt:
ML Services-kluster har inte ställts in i det virtuella nätverket
Om inget kluster har konfigurerats på vnet, eller om du har problem med anslutningen via vnet, kan du använda SSH-portvidarebefordran:
ssh -L localhost:12800:localhost:12800 USERNAME@CLUSTERNAME-ed-ssh.azurehdinsight.net
När SSH-sessionen är aktiv vidarebefordras trafiken från den lokala datorns port 12800 till gränsnodens port 12800 via SSH-session. Se till att du använder 127.0.0.1:12800 i metoden remoteLogin(). Detta loggar in på kantnodens driftisering via port vidarebefordran.
library(mrsdeploy)
remoteLogin(
deployr_endpoint = "http://127.0.0.1:12800",
username = "admin",
password = "xxxxxxx"
)
Skala operationaliserade beräkningsnoder på HDInsight-arbetsnoder
Om du vill skala beräkningsnoderna inaktiverar du först arbetsnoderna och konfigurerar sedan beräkningsnoderna på de inaktiverade arbetsnoderna.
Steg 1: Inaktivera arbetsnoderna
ML Services-kluster hanteras inte via Apache Hadoop YARN. Om arbetarnoderna inte inaktiveras fungerar INTE YARN Resource Manager som förväntat eftersom det inte är medveten om de resurser som tas upp av servern. För att undvika detta rekommenderar vi att du inaktiverar arbetsnoderna innan du skalar ut beräkningsnoderna.
Så här inaktiverar du arbetsnoder:
Logga in på klustrets Ambari-konsol och klicka på fliken Värdar.
Välj arbetsnoder (som ska inaktiveras).
Klicka på Åtgärder valda > > värdar > aktivera underhållsläge. I bilden nedan har vi till exempel valt att inaktivera wn3 och wn4.
- Välj Åtgärder valda > > värdar datanoder > klicka på Inaktivera.
- Välj Åtgärder valda > värdar > NodeManagers > klicka på Inaktivera.
- Välj Åtgärder valda > > värdar datanoder > klicka på Stoppa.
- Välj Åtgärder valda > > värdar NodeManagers > klicka på Stoppa.
- Välj Åtgärder valda > värdar > värdar > klicka på Stoppa alla komponenter.
- Avmarkera arbetsnoderna och markera huvudnoderna.
- Välj Åtgärder valda > värdar > "Värdar Starta om alla > komponenter.
Steg 2: Konfigurera beräkningsnoder på varje inaktiverad arbetsnod
SSH till varje inaktiverad arbetsnod.
Kör admin-verktyget med relevant DLL för det ML Services-kluster som du har. För ML Server 9.1 kör du följande:
dotnet /usr/lib64/microsoft-deployr/9.0.1/Microsoft.DeployR.Utils.AdminUtil/Microsoft.DeployR.Utils.AdminUtil.dllAnge 1 för att välja alternativet Konfigurera ML Server för drift.
Ange C för att välja alternativet
C. Compute node. Då konfigureras beräkningsnoden på arbetsnoden.Avsluta admin-verktyget.
Steg 3: Lägg till information om beräkningsnoder på webbnoden
När alla inaktiverade arbetsnoder har konfigurerats för att köra beräkningsnoden går du tillbaka till gränsnoden och lägger till inaktiverade arbetsnoder IP-adresser i ML Server-webbnodens konfiguration:
SSH till kantnoden.
Kör
vi /usr/lib64/microsoft-deployr/9.0.1/Microsoft.DeployR.Server.WebAPI/appsettings.json.Leta efter avsnittet "Uris" och lägg till arbetsnodens IP- och portinformation.
"Uris": { "Description": "Update 'Values' section to point to your backend machines. Using HTTPS is highly recommended", "Values": [ "http://localhost:12805", "http://[worker-node1-ip]:12805", "http://[workder-node2-ip]:12805" ] }