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

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.

  1. SSH till kantnoden.

    ssh USERNAME@CLUSTERNAME-ed-ssh.azurehdinsight.net
    

    Anvisningar om hur du använder SSH med Azure HDInsight finns i Använda SSH med HDInsight..

  2. Ä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.dll
      
    • Microsoft R-server 9.0:

      cd /usr/lib64/microsoft-deployr/9.0.1
      sudo dotnet Microsoft.DeployR.Utils.AdminUtil/Microsoft.DeployR.Utils.AdminUtil.dll
      
  3. 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.

    Välj verktyg för R-serveradministration

  4. 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.

    Verktyg för R-serveradministration operationalisera

  5. När du uppmanas till det anger du och anger lösenordet igen för en lokal administratörsanvändare.

  6. 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.

    R-serveradministrationsverktyget lyckades

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

    Diagnostik för verktyg för R-serveradministration

    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.

    Verktygstest för R-serveradministration

    c. Kontrollera att utdata visar att övergripande hälsa är ett pass.

    R-serveradministrationsverktyget 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:

  1. Logga in på klustrets Ambari-konsol och klicka på fliken Värdar.

  2. Välj arbetsnoder (som ska inaktiveras).

  3. Klicka på Åtgärder valda > > värdar > aktivera underhållsläge. I bilden nedan har vi till exempel valt att inaktivera wn3 och wn4.

    Apache Ambari aktivera underhållsläge

  • 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

  1. SSH till varje inaktiverad arbetsnod.

  2. 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.dll
    
  3. Ange 1 för att välja alternativet Konfigurera ML Server för drift.

  4. Ange C för att välja alternativet C. Compute node . Då konfigureras beräkningsnoden på arbetsnoden.

  5. 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:

  1. SSH till kantnoden.

  2. Kör vi /usr/lib64/microsoft-deployr/9.0.1/Microsoft.DeployR.Server.WebAPI/appsettings.json.

  3. 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"
        ]
    }
    

Nästa steg