Apache Oozie gebruiken met Apache Hadoop voor het definiëren en uitvoeren van een werkstroom in Azure HDInsight op basis van Linux

Meer informatie over het gebruik van Apache Oozie met Apache Hadoop in Azure HDInsight. Oozie is een werkstroom- en coördinatiesysteem dat Hadoop-taken beheert. Oozie is geïntegreerd met de Hadoop-stack en ondersteunt de volgende taken:

  • Apache Hadoop MapReduce
  • Apache Pig
  • Apache Hive
  • Apache Sqoop

U kunt Oozie ook gebruiken om taken te plannen die specifiek zijn voor een systeem, zoals Java-programma's of shellscripts.

Notitie

Een andere optie voor het definiëren van werkstromen met HDInsight is het gebruik van Azure Data Factory. Zie Apache Pig en Apache Hive gebruiken met Data Factory voor meer informatie over Data Factory. Als u Oozie wilt gebruiken op clusters met Enterprise Security Package, raadpleegt u Apache Oozie uitvoeren in HDInsight Hadoop-clusters met Enterprise Security Package.

Vereisten

Voorbeeldwerkstroom

De werkstroom die in dit document wordt gebruikt, bevat twee acties. Acties zijn definities voor taken, zoals het uitvoeren van Hive, Sqoop, MapReduce of andere processen:

HDInsight oozie workflow diagram.

  1. Een Hive-actie voert een HiveQL-script uit om records te extraheren uit de hivesampletable records die zijn opgenomen in HDInsight. Elke rij met gegevens beschrijft een bezoek vanaf een specifiek mobiel apparaat. De recordindeling wordt weergegeven als de volgende tekst:

    8       18:54:20        en-US   Android Samsung SCH-i500        California     United States    13.9204007      0       0
    23      19:19:44        en-US   Android HTC     Incredible      Pennsylvania   United States    NULL    0       0
    23      19:19:46        en-US   Android HTC     Incredible      Pennsylvania   United States    1.4757422       0       1
    

    Het Hive-script dat in dit document wordt gebruikt, telt het totale aantal bezoeken voor elk platform, zoals Android of i Telefoon, en slaat de aantallen op in een nieuwe Hive-tabel.

    Zie [Apache Hive gebruiken met HDInsight][hdinsight-use-hive] voor meer informatie over Hive.

  2. Met een Sqoop-actie wordt de inhoud van de nieuwe Hive-tabel geëxporteerd naar een tabel die is gemaakt in Azure SQL Database. Zie Apache Sqoop gebruiken met HDInsight voor meer informatie over Sqoop.

De werkmap maken

Oozie verwacht dat u alle benodigde resources voor een taak in dezelfde map opslaat. In dit voorbeeld wordt wasbs:///tutorials/useoozie gebruikt. Voer de volgende stappen uit om deze map te maken:

  1. Bewerk de onderstaande code om te vervangen door sshuser de SSH-gebruikersnaam voor het cluster en vervang deze door CLUSTERNAME de naam van het cluster. Voer vervolgens de code in om verbinding te maken met het HDInsight-cluster met behulp van SSH.

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Gebruik de volgende opdracht om de map te maken:

    hdfs dfs -mkdir -p /tutorials/useoozie/data
    

    Notitie

    De -p parameter zorgt ervoor dat alle mappen in het pad worden gemaakt. De data map wordt gebruikt voor het opslaan van de gegevens die door het useooziewf.hql script worden gebruikt.

  3. Bewerk de onderstaande code om deze te vervangen door sshuser uw SSH-gebruikersnaam. Gebruik de volgende opdracht om ervoor te zorgen dat Oozie uw gebruikersaccount kan imiteren:

    sudo adduser sshuser users
    

    Notitie

    U kunt fouten negeren die aangeven dat de gebruiker al lid is van de users groep.

Een databasestuurprogramma toevoegen

Deze werkstroom maakt gebruik van Sqoop om gegevens te exporteren naar de SQL-database. U moet dus een kopie opgeven van het JDBC-stuurprogramma dat wordt gebruikt voor interactie met de SQL-database. Gebruik de volgende opdracht uit de SSH-sessie om het JDBC-stuurprogramma naar de werkmap te kopiëren:

hdfs dfs -put /usr/share/java/sqljdbc_7.0/enu/mssql-jdbc*.jar /tutorials/useoozie/

Belangrijk

Controleer het werkelijke JDBC-stuurprogramma dat bestaat op /usr/share/java/.

Als uw werkstroom andere resources heeft gebruikt, zoals een JAR die een MapReduce-toepassing bevat, moet u deze resources ook toevoegen.

De Hive-query definiëren

Gebruik de volgende stappen om een Hive-querytaal (HiveQL)-script te maken waarmee een query wordt gedefinieerd. U gebruikt de query in een Oozie-werkstroom verderop in dit document.

  1. Gebruik vanuit de SSH-verbinding de volgende opdracht om een bestand met de naam useooziewf.hqlte maken:

    nano useooziewf.hql
    
  2. Nadat de GNU nano-editor is geopend, gebruikt u de volgende query als de inhoud van het bestand:

    DROP TABLE ${hiveTableName};
    CREATE EXTERNAL TABLE ${hiveTableName}(deviceplatform string, count string) ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '${hiveDataFolder}';
    INSERT OVERWRITE TABLE ${hiveTableName} SELECT deviceplatform, COUNT(*) as count FROM hivesampletable GROUP BY deviceplatform;
    

    Er worden twee variabelen gebruikt in het script:

    • ${hiveTableName}: Bevat de naam van de tabel die moet worden gemaakt.

    • ${hiveDataFolder}: Bevat de locatie voor het opslaan van de gegevensbestanden voor de tabel.

      Het werkstroomdefinitiebestand, workflow.xml in dit artikel, geeft deze waarden tijdens runtime door aan dit HiveQL-script.

  3. Als u het bestand wilt opslaan, selecteert u Ctrl+X, voert u Y in en selecteert u Enter.

  4. Gebruik de volgende opdracht om te kopiëren useooziewf.hql naar wasbs:///tutorials/useoozie/useooziewf.hql:

    hdfs dfs -put useooziewf.hql /tutorials/useoozie/useooziewf.hql
    

    Met deze opdracht wordt het useooziewf.hql bestand opgeslagen in de HDFS-compatibele opslag voor het cluster.

De werkstroom definiëren

Oozie-werkstroomdefinities worden geschreven in Hadoop Process Definition Language (hPDL), een XML-procesdefinitietaal. Gebruik de volgende stappen om de werkstroom te definiëren:

  1. Gebruik de volgende instructie om een nieuw bestand te maken en te bewerken:

    nano workflow.xml
    
  2. Nadat de nano-editor is geopend, voert u de volgende XML in als bestandsinhoud:

    <workflow-app name="useooziewf" xmlns="uri:oozie:workflow:0.2">
        <start to = "RunHiveScript"/>
        <action name="RunHiveScript">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
            </configuration>
            <script>${hiveScript}</script>
            <param>hiveTableName=${hiveTableName}</param>
            <param>hiveDataFolder=${hiveDataFolder}</param>
        </hive>
        <ok to="RunSqoopExport"/>
        <error to="fail"/>
        </action>
        <action name="RunSqoopExport">
        <sqoop xmlns="uri:oozie:sqoop-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
            <property>
                <name>mapred.compress.map.output</name>
                <value>true</value>
            </property>
            </configuration>
            <arg>export</arg>
            <arg>--connect</arg>
            <arg>${sqlDatabaseConnectionString}</arg>
            <arg>--table</arg>
            <arg>${sqlDatabaseTableName}</arg>
            <arg>--export-dir</arg>
            <arg>${hiveDataFolder}</arg>
            <arg>-m</arg>
            <arg>1</arg>
            <arg>--input-fields-terminated-by</arg>
            <arg>"\t"</arg>
            <archive>mssql-jdbc-7.0.0.jre8.jar</archive>
            </sqoop>
        <ok to="end"/>
        <error to="fail"/>
        </action>
        <kill name="fail">
        <message>Job failed, error message[${wf:errorMessage(wf:lastErrorNode())}] </message>
        </kill>
        <end name="end"/>
    </workflow-app>
    

    Er zijn twee acties gedefinieerd in de werkstroom:

    • RunHiveScript: Deze actie is de startactie en voert het useooziewf.hql Hive-script uit.

    • RunSqoopExport: Met deze actie worden de gegevens die zijn gemaakt van het Hive-script geëxporteerd naar een SQL-database met behulp van Sqoop. Deze actie wordt alleen uitgevoerd als de RunHiveScript actie is geslaagd.

      De werkstroom heeft verschillende vermeldingen, zoals ${jobTracker}. U vervangt deze vermeldingen door de waarden die u in de taakdefinitie gebruikt. Verderop in dit document maakt u de taakdefinitie.

      Let ook op de <archive>mssql-jdbc-7.0.0.jre8.jar</archive> vermelding in de sectie Sqoop. Deze vermelding geeft Oozie opdracht om dit archief beschikbaar te maken voor Sqoop wanneer deze actie wordt uitgevoerd.

  3. Als u het bestand wilt opslaan, selecteert u Ctrl+X, voert u Y in en selecteert u Enter.

  4. Gebruik de volgende opdracht om het workflow.xml bestand te kopiëren naar /tutorials/useoozie/workflow.xml:

    hdfs dfs -put workflow.xml /tutorials/useoozie/workflow.xml
    

Een tabel maken

Notitie

Er zijn veel manieren om verbinding te maken met SQL Database om een tabel te maken. In de volgende stappen wordt FreeTDS gebruikt vanuit het HDInsight-cluster.

  1. Gebruik de volgende opdracht om FreeTDS te installeren op het HDInsight-cluster:

    sudo apt-get --assume-yes install freetds-dev freetds-bin
    
  2. Bewerk de onderstaande code om te vervangen door <serverName> de naam van uw logische SQL-server en <sqlLogin> door de serveraanmelding. Voer de opdracht in om verbinding te maken met de vereiste SQL-database. Voer het wachtwoord in bij de prompt.

    TDSVER=8.0 tsql -H <serverName>.database.windows.net -U <sqlLogin> -p 1433 -D oozietest
    

    U ontvangt uitvoer zoals de volgende tekst:

    locale is "en_US.UTF-8"
    locale charset is "UTF-8"
    using default charset "UTF-8"
    Default database being set to oozietest
    1>
    
  3. Voer de volgende regels in bij de prompt 1>:

    CREATE TABLE [dbo].[mobiledata](
    [deviceplatform] [nvarchar](50),
    [count] [bigint])
    GO
    CREATE CLUSTERED INDEX mobiledata_clustered_index on mobiledata(deviceplatform)
    GO
    

    Wanneer u de instructie GO invoert, worden de vorige instructies geëvalueerd. Met deze instructies maakt u een tabel met de naam mobiledata, die wordt gebruikt door de werkstroom.

    Gebruik de volgende opdrachten om te controleren of de tabel is gemaakt:

    SELECT * FROM information_schema.tables
    GO
    

    U ziet uitvoer zoals de volgende tekst:

    TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME      TABLE_TYPE
    oozietest       dbo             mobiledata      BASE TABLE
    
  4. Sluit het hulpprogramma tsql af door bij de prompt in te 1> voerenexit.

De taakdefinitie maken

In de taakdefinitie wordt beschreven waar u de workflow.xml kunt vinden. Ook wordt beschreven waar u andere bestanden vindt die door de werkstroom worden gebruikt, zoals useooziewf.hql. Daarnaast worden de waarden gedefinieerd voor eigenschappen die worden gebruikt in de werkstroom en de bijbehorende bestanden.

  1. Gebruik de volgende opdracht om het volledige adres van de standaardopslag op te halen. Dit adres wordt gebruikt in het configuratiebestand dat u in de volgende stap maakt.

    sed -n '/<name>fs.default/,/<\/value>/p' /etc/hadoop/conf/core-site.xml
    

    Deze opdracht retourneert informatie zoals de volgende XML:

    <name>fs.defaultFS</name>
    <value>wasbs://mycontainer@mystorageaccount.blob.core.windows.net</value>
    

    Notitie

    Als het HDInsight-cluster Azure Storage als standaardopslag gebruikt, begint de inhoud van het <value> element met wasbs://. Als Azure Data Lake Storage Gen1 in plaats daarvan wordt gebruikt, begint het met adl://. Als Azure Data Lake Storage Gen2 wordt gebruikt, begint het met abfs://.

    Sla de inhoud van het <value> element op, zoals in de volgende stappen wordt gebruikt.

  2. Bewerk de onderstaande XML als volgt:

    Tijdelijke aanduidingswaarde Vervangen waarde
    wasbs://mycontainer@mystorageaccount.blob.core.windows.net Waarde ontvangen van stap 1.
    beheerder Uw aanmeldingsnaam voor het HDInsight-cluster als dit niet de beheerder is.
    serverName Azure SQL Database-servernaam.
    sqlLogin Azure SQL Database-serveraanmelding.
    sqlPassword Aanmeldingswachtwoord voor Azure SQL Database-server.
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    
        <property>
        <name>nameNode</name>
        <value>wasbs://mycontainer@mystorageaccount.blob.core.windows.net</value>
        </property>
    
        <property>
        <name>jobTracker</name>
        <value>headnodehost:8050</value>
        </property>
    
        <property>
        <name>queueName</name>
        <value>default</value>
        </property>
    
        <property>
        <name>oozie.use.system.libpath</name>
        <value>true</value>
        </property>
    
        <property>
        <name>hiveScript</name>
        <value>wasbs://mycontainer@mystorageaccount.blob.core.windows.net/tutorials/useoozie/useooziewf.hql</value>
        </property>
    
        <property>
        <name>hiveTableName</name>
        <value>mobilecount</value>
        </property>
    
        <property>
        <name>hiveDataFolder</name>
        <value>wasbs://mycontainer@mystorageaccount.blob.core.windows.net/tutorials/useoozie/data</value>
        </property>
    
        <property>
        <name>sqlDatabaseConnectionString</name>
        <value>"jdbc:sqlserver://serverName.database.windows.net;user=sqlLogin;password=sqlPassword;database=oozietest"</value>
        </property>
    
        <property>
        <name>sqlDatabaseTableName</name>
        <value>mobiledata</value>
        </property>
    
        <property>
        <name>user.name</name>
        <value>admin</value>
        </property>
    
        <property>
        <name>oozie.wf.application.path</name>
        <value>wasbs://mycontainer@mystorageaccount.blob.core.windows.net/tutorials/useoozie</value>
        </property>
    </configuration>
    

    De meeste informatie in dit bestand wordt gebruikt om de waarden te vullen die worden gebruikt in de workflow.xml- of ooziewf.hql-bestanden, zoals ${nameNode}. Als het pad een wasbs pad is, moet u het volledige pad gebruiken. Maak het niet kort tot alleen wasbs:///. De oozie.wf.application.path vermelding definieert waar het workflow.xml-bestand moet worden gevonden. Dit bestand bevat de werkstroom die door deze taak is uitgevoerd.

  3. Gebruik de volgende opdracht om de configuratie van de Oozie-taakdefinitie te maken:

    nano job.xml
    
  4. Nadat de nano-editor is geopend, plakt u de bewerkte XML als de inhoud van het bestand.

  5. Als u het bestand wilt opslaan, selecteert u Ctrl+X, voert u Y in en selecteert u Enter.

De taak verzenden en beheren

In de volgende stappen wordt de Oozie-opdracht gebruikt om Oozie-werkstromen in het cluster te verzenden en te beheren. De Oozie-opdracht is een vriendelijke interface via de Oozie REST API.

Belangrijk

Wanneer u de Oozie-opdracht gebruikt, moet u de FQDN gebruiken voor het HOOFDknooppunt van HDInsight. Deze FQDN is alleen toegankelijk vanuit het cluster of als het cluster zich in een virtueel Azure-netwerk bevindt, van andere machines in hetzelfde netwerk.

  1. Gebruik de volgende opdracht om de URL naar de Oozie-service te verkrijgen:

    sed -n '/<name>oozie.base.url/,/<\/value>/p' /etc/oozie/conf/oozie-site.xml
    

    Dit retourneert informatie zoals de volgende XML:

    <name>oozie.base.url</name>
    <value>http://ACTIVE-HEADNODE-NAME.UNIQUEID.cx.internal.cloudapp.net:11000/oozie</value>
    

    Het http://ACTIVE-HEADNODE-NAME.UNIQUEID.cx.internal.cloudapp.net:11000/oozie gedeelte is de URL die moet worden gebruikt met de Oozie-opdracht.

  2. Bewerk de code om de URL te vervangen door de URL die u eerder hebt ontvangen. Als u een omgevingsvariabele voor de URL wilt maken, gebruikt u het volgende, zodat u deze niet hoeft in te voeren voor elke opdracht:

    export OOZIE_URL=http://HOSTNAMEt:11000/oozie
    
  3. Gebruik de volgende code om de taak in te dienen:

    oozie job -config job.xml -submit
    

    Met deze opdracht worden de taakgegevens geladen van job.xml en naar Oozie verzonden, maar wordt deze niet uitgevoerd.

    Nadat de opdracht is voltooid, moet deze bijvoorbeeld de id van de taak 0000005-150622124850154-oozie-oozi-Wretourneren. Deze id wordt gebruikt om de taak te beheren.

  4. Bewerk de onderstaande code om te vervangen door <JOBID> de id die in de vorige stap is geretourneerd. Gebruik de volgende opdracht om de status van de taak weer te geven:

    oozie job -info <JOBID>
    

    Dit retourneert informatie zoals de volgende tekst:

    Job ID : 0000005-150622124850154-oozie-oozi-W
    ------------------------------------------------------------------------------------------------------------------------------------
    Workflow Name : useooziewf
    App Path      : wasb:///tutorials/useoozie
    Status        : PREP
    Run           : 0
    User          : USERNAME
    Group         : -
    Created       : 2015-06-22 15:06 GMT
    Started       : -
    Last Modified : 2015-06-22 15:06 GMT
    Ended         : -
    CoordAction ID: -
    ------------------------------------------------------------------------------------------------------------------------------------
    

    Deze taak heeft de status PREP. Deze status geeft aan dat de taak is gemaakt, maar niet is gestart.

  5. Bewerk de onderstaande code om te vervangen door <JOBID> de id die eerder is geretourneerd. Gebruik de volgende opdracht om de taak te starten:

    oozie job -start <JOBID>
    

    Als u de status na deze opdracht controleert, heeft deze de status Actief en wordt er informatie geretourneerd voor de acties binnen de taak. Het voltooien van de taak duurt enkele minuten.

  6. Bewerk de onderstaande code om te vervangen door <serverName> uw servernaam en <sqlLogin> door de serveraanmelding. Nadat de taak is voltooid , kunt u controleren of de gegevens zijn gegenereerd en geëxporteerd naar de SQL-databasetabel met behulp van de volgende opdracht. Voer het wachtwoord in bij de prompt.

    TDSVER=8.0 tsql -H <serverName>.database.windows.net -U <sqlLogin> -p 1433 -D oozietest
    

    Voer bij de 1> prompt de volgende query in:

    SELECT * FROM mobiledata
    GO
    

    De geretourneerde informatie lijkt op de volgende tekst:

    deviceplatform  count
    Android 31591
    iPhone OS       22731
    proprietary development 3
    RIM OS  3464
    Unknown 213
    Windows Phone   1791
    (6 rows affected)
    

Zie het opdrachtregelprogramma van Apache Oozie voor meer informatie over de Oozie-opdracht.

Oozie REST API

Met de Oozie REST API kunt u uw eigen hulpprogramma's bouwen die met Oozie werken. De volgende HDInsight-specifieke informatie over het gebruik van de Oozie REST API:

  • URI: U hebt toegang tot de REST API van buiten het cluster op https://CLUSTERNAME.azurehdinsight.net/oozie.

  • Verificatie: Gebruik de API voor het HTTP-clusteraccount (beheerder) en wachtwoord om te verifiëren. Voorbeeld:

    curl -u admin:PASSWORD https://CLUSTERNAME.azurehdinsight.net/oozie/versions
    

Zie de Apache Oozie Web Services-API voor meer informatie over het gebruik van de Oozie REST API.

Oozie-webgebruikersinterface

De Oozie-webgebruikersinterface biedt een webweergave in de status van Oozie-taken in het cluster. Met de webgebruikersinterface kunt u de volgende informatie bekijken:

  • Taakstatus
  • Jobdefinitie
  • Configuratie
  • Een grafiek van de acties in de taak
  • Logboeken voor de taak

U kunt ook de details van de acties in een taak bekijken.

Voer de volgende stappen uit om toegang te krijgen tot de webgebruikersinterface van Oozie:

  1. Maak een SSH-tunnel naar het HDInsight-cluster. Zie SSH-tunneling gebruiken met HDInsight voor meer informatie.

  2. Nadat u een tunnel hebt gemaakt, opent u de Ambari-webgebruikersinterface in uw webbrowser met behulp van URI http://headnodehost:8080.

  3. Selecteer aan de linkerkant van de pagina Oozie>Quick Links>Oozie Web UI.

    Apache Ambari oozie web ui steps.

  4. De webgebruikersinterface van Oozie geeft standaard de actieve werkstroomtaken weer. Als u alle werkstroomtaken wilt zien, selecteert u Alle taken.

    Oozie web console workflow jobs.

  5. Als u meer informatie over een taak wilt weergeven, selecteert u de taak.

    HDInsight Apache Oozie job info.

  6. Op het tabblad Taakgegevens ziet u de basistaakgegevens en de afzonderlijke acties in de taak. U kunt de tabbladen bovenaan gebruiken om de taakdefinitie, taakconfiguratie, toegang te krijgen tot het taaklogboek of een gerichte acyclische grafiek (DAG) van de taak onder Taak DAG weer te geven.

    • Taaklogboek: selecteer de knop Logboeken ophalen om alle logboeken voor de taak op te halen of gebruik het veld Zoekfilter invoeren om de logboeken te filteren.

      HDInsight Apache Oozie job log.

    • Job DAG: De DAG is een grafisch overzicht van de gegevenspaden die via de werkstroom worden genomen.

      `HDInsight Apache Oozie job dag`.

  7. Als u een van de acties selecteert op het tabblad Taakgegevens , wordt informatie voor de actie weergegeven. Selecteer bijvoorbeeld de actie RunSqoopExport .

    HDInsight oozie job action info.

  8. U kunt details voor de actie zien, zoals een koppeling naar de console-URL. Gebruik deze koppeling om informatie over taaktrackers voor de taak weer te geven.

Taken plannen

U kunt de coördinator gebruiken om een begin- en eindfrequentie voor taken op te geven. Voer de volgende stappen uit om een planning voor de werkstroom te definiëren:

  1. Gebruik de volgende opdracht om een bestand met de naam coordinator.xml te maken:

    nano coordinator.xml
    

    Gebruik de volgende XML als de inhoud van het bestand:

    <coordinator-app name="my_coord_app" frequency="${coordFrequency}" start="${coordStart}" end="${coordEnd}" timezone="${coordTimezone}" xmlns="uri:oozie:coordinator:0.4">
        <action>
        <workflow>
            <app-path>${workflowPath}</app-path>
        </workflow>
        </action>
    </coordinator-app>
    

    Notitie

    De ${...} variabelen worden tijdens runtime vervangen door waarden in de taakdefinitie. De variabelen zijn:

    • ${coordFrequency}: De tijd tussen actieve exemplaren van de taak.
    • ${coordStart}: De begintijd van de taak.
    • ${coordEnd}: De eindtijd van de taak.
    • ${coordTimezone}: Coördinatortaken bevinden zich in een vaste tijdzone zonder zomertijd, meestal vertegenwoordigd door UTC. Deze tijdzone wordt de Oozie-verwerkingstijdzone genoemd.
    • ${wfPath}: Het pad naar de workflow.xml.
  2. Als u het bestand wilt opslaan, selecteert u Ctrl+X, voert u Y in en selecteert u Enter.

  3. Gebruik de volgende opdracht om het bestand naar de werkmap voor deze taak te kopiëren:

    hadoop fs -put coordinator.xml /tutorials/useoozie/coordinator.xml
    
  4. Gebruik de volgende opdracht om het job.xml bestand dat u eerder hebt gemaakt te wijzigen:

    nano job.xml
    

    Breng de volgende wijzigingen aan:

    • Als u Oozie wilt instrueren om het coördinatorbestand uit te voeren in plaats van de werkstroom, gaat u naar <name>oozie.wf.application.path</name><name>oozie.coord.application.path</name>.

    • Als u de workflowPath variabele wilt instellen die door de coördinator wordt gebruikt, voegt u de volgende XML toe:

      <property>
          <name>workflowPath</name>
          <value>wasbs://mycontainer@mystorageaccount.blob.core.windows.net/tutorials/useoozie</value>
      </property>
      

      Vervang de wasbs://mycontainer@mystorageaccount.blob.core.windows tekst door de waarde die wordt gebruikt in de andere vermeldingen in het bestand job.xml.

    • Als u het begin, einde en de frequentie voor de coördinator wilt definiëren, voegt u de volgende XML toe:

      <property>
          <name>coordStart</name>
          <value>2018-05-10T12:00Z</value>
      </property>
      
      <property>
          <name>coordEnd</name>
          <value>2018-05-12T12:00Z</value>
      </property>
      
      <property>
          <name>coordFrequency</name>
          <value>1440</value>
      </property>
      
      <property>
          <name>coordTimezone</name>
          <value>UTC</value>
      </property>
      

      Met deze waarden wordt de begintijd ingesteld op 12:00 uur op 10 mei 2018 en de eindtijd op 12 mei 2018. Het interval voor het uitvoeren van deze taak is ingesteld op dagelijks. De frequentie is in minuten, dus 24 uur x 60 minuten = 1440 minuten. Ten slotte is de tijdzone ingesteld op UTC.

  5. Als u het bestand wilt opslaan, selecteert u Ctrl+X, voert u Y in en selecteert u Enter.

  6. Gebruik de volgende opdracht om de taak in te dienen en te starten:

    oozie job -config job.xml -run
    
  7. Als u naar de webgebruikersinterface van Oozie gaat en het tabblad Coördinatortaken selecteert, ziet u informatie zoals in de volgende afbeelding:

    Oozie web console coordinator jobs tab.

    De vermelding Volgende materialisatie bevat de volgende keer dat de taak wordt uitgevoerd.

  8. Net als bij de eerdere werkstroomtaak, als u de taakvermelding in de webgebruikersinterface selecteert, wordt informatie over de taak weergegeven:

    Apache Oozie coordinator job info.

    Notitie

    In deze afbeelding worden alleen geslaagde uitvoeringen van de taak weergegeven, niet de afzonderlijke acties in de geplande werkstroom. Als u de afzonderlijke acties wilt zien, selecteert u een van de actie-vermeldingen .

    OOzie web console job info tab.

Volgende stappen

In dit artikel hebt u geleerd hoe u een Oozie-werkstroom definieert en hoe u een Oozie-taak uitvoert. Zie de volgende artikelen voor meer informatie over het werken met HDInsight: