Gunakan Apache Oozie dengan Apache Hadoop untuk menentukan dan menjalankan alur kerja pada Azure HDInsight berbasis Linux

Pelajari cara menggunakan Apache Oozie dengan Apache Hadoop di Microsoft Azure HDInsight. Oozie adalah sistem alur kerja dan koordinasi yang mengelola pekerjaan Hadoop. Oozie terintegrasi dengan tumpukan Hadoop, dan mendukung pekerjaan berikut:

  • Apache Hadoop MapReduce
  • Apache Babi
  • Apache Hive 2.1.0
  • Apache Sqoop

Anda juga dapat menggunakan Oozie untuk menjadwalkan pekerjaan yang khusus untuk sistem, seperti program Java atau skrip shell.

Catatan

Opsi lain untuk menentukan alur kerja dengan MIcrosoft Azure HDInsight adalah menggunakan Azure Data Factory. Untuk mempelajari selengkapnya tentang Data Factory, lihat Menggunakan Apache Pig dan Apache Hive dengan Data Factory. Untuk menggunakan Oozie pada kluster dengan Paket Keamanan Perusahaan, harap lihat Menjalankan Apache Oozie di kluster Microsoft Azure HDInsight Hadoop dengan Paket Keamanan Perusahaan.

Prasyarat

Contoh alur kerja

Alur kerja yang digunakan dalam dokumen ini berisi dua tindakan. Tindakan adalah definisi untuk tugas, seperti menjalankan Apache Hive, Sqoop, MapReduce, atau proses lainnya:

HDInsight oozie workflow diagram.

  1. Tindakan Apache Hive menjalankan skrip HiveQL untuk mengekstrak rekaman dari hivesampletable yang disertakan dengan Microsoft Azure HDInsight. Setiap baris data menjelaskan kunjungan dari perangkat seluler tertentu. Format rekaman muncul seperti teks berikut:

    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
    

    Skrip Apache Hive yang digunakan dalam dokumen ini menghitung total kunjungan untuk setiap platform, seperti Android atau iPhone, dan menyimpan hitungan ke tabel Apache Hive baru.

    Untuk informasi selengkapnya tentang Apache Hive, lihat [Gunakan Apache Hive dengan HDInsight][hdinsight-use-hive].

  2. Tindakan Sqoop mengekspor konten tabel Apache Hive baru ke tabel yang dibuat di Azure SQL Database. Untuk informasi selengkapnya tentang Sqoop, lihat Gunakan Apache Sqoop dengan Microsoft Azure HDInsight.

Catatan

Untuk versi Oozie yang didukung di kluster Microsoft Azure HDInsight, lihat Apa yang baru dalam versi kluster Hadoop yang disediakan oleh Microsoft Azure HDInsight.

Buat direktori kerja

Oozie mengharapkan Anda untuk menyimpan semua sumber daya yang diperlukan untuk pekerjaan di direktori yang sama. Contoh ini menggunakanwasbs:///tutorials/useoozie. Untuk membuat direktori ini, selesaikan langkah-langkah berikut:

  1. Edit kode di bawah ini untuk mengganti sshuser dengan nama pengguna SSH untuk kluster, dan ganti CLUSTERNAME dengan nama kluster. Kemudian masukkan kode untuk terhubung ke kluster Microsoft Azure HDInsight dengan menggunakan SSH.

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Untuk membuat direktori, gunakan perintah berikut:

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

    Catatan

    Parameter -p menyebabkan pembuatan semua direktori di jalur tersebut. Direktori data digunakan untuk menyimpan data yang digunakan oleh skrip useooziewf.hql.

  3. Edit kode di bawah ini untuk mengganti sshuser dengan nama pengguna SSH Anda. Untuk memastikan bahwa Oozie dapat meniru akun pengguna Anda, gunakan perintah berikut:

    sudo adduser sshuser users
    

    Catatan

    Anda dapat mengabaikan kesalahan yang mengindikasikan bahwa pengguna sudah menjadi anggota grup users.

Tambahkan driver database

Alur kerja ini menggunakan Sqoop untuk mengekspor data ke database SQL. Jadi Anda harus memberikan salinan driver JDBC yang digunakan untuk berinteraksi dengan database SQL. Untuk menyalin driver JDBC ke direktori kerja, gunakan perintah berikut dari sesi SSH:

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

Penting

Verifikasi driver JDBC aktual yang ada di /usr/share/java/.

Jika alur kerja Anda menggunakan sumber daya lain, seperti jar yang berisi aplikasi MapReduce, Anda juga perlu menambahkan sumber daya tersebut.

Tentukan kueri Apache Hive

Gunakan langkah-langkah berikut untuk membuat skrip bahasa komputer kueri Apache Hive (HiveQL) yang menentukan kueri. Anda akan menggunakan kueri dalam alur kerja Oozie nanti di dokumen ini.

  1. Dari koneksi SSH, gunakan perintah berikut untuk membuat file bernama useooziewf.hql:

    nano useooziewf.hql
    
  2. Setelah editor nano GNU terbuka, gunakan kueri berikut sebagai konten file:

    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;
    

    Ada dua variabel yang digunakan dalam skrip:

    • ${hiveTableName}: Berisi nama tabel yang akan dibuat.

    • ${hiveDataFolder}: Berisi lokasi untuk menyimpan file data untuk tabel.

      File definisi alur kerja, workflow.xml artikel ini, meneruskan nilai-nilai ini ke skrip HiveQL ini pada runtime.

  3. Untuk menyimpan file, pilih Ctrl+X, masukkan Y, lalu pilih Enter.

  4. Gunakan perintah berikut untuk menyalin useooziewf.hql ke wasbs:///tutorials/useoozie/useooziewf.hql:

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

    Perintah ini menyimpan file useooziewf.hql dalam penyimpanan yang kompatibel dengan HDFS untuk kluster.

Tentukan alur kerja

Definisi alur kerja Oozie ditulis dalam Hadoop Process Definition Language (hPDL), yang merupakan bahasa definisi proses XML. Ikuti langkah-langkah berikut untuk menentukan alur kerja:

  1. Gunakan pernyataan berikut untuk membuat dan mengedit file baru:

    nano workflow.xml
    
  2. Setelah editor nano terbuka, masukkan XML berikut sebagai konten file:

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

    Ada dua tindakan yang ditentukan dalam alur kerja:

    • RunHiveScript: Tindakan ini adalah tindakan awal dan menjalankan skrip Apache Hive useooziewf.hql.

    • RunSqoopExport: Tindakan ini mengekspor data yang dibuat dari skrip Apache Hive ke database SQL dengan menggunakan Sqoop. Tindakan ini hanya berjalan jika tindakan RunHiveScript berhasil.

      Alur kerja memiliki beberapa entri, seperti ${jobTracker}. Anda akan mengganti entri ini dengan nilai yang Anda gunakan dalam definisi kerja. Anda akan membuat definisi kerja nanti di dokumen ini.

      Perhatikan juga entri <archive>mssql-jdbc-7.0.0.jre8.jar</archive> di bagian Sqoop. Entri ini menginstruksikan Oozie untuk menyediakan arsip ini untuk Sqoop ketika tindakan ini berjalan.

  3. Untuk menyimpan file, pilih Ctrl+X, masukkan Y, lalu pilih Enter.

  4. Gunakan perintah berikut untuk menyalin workflow.xml file ke /tutorials/useoozie/workflow.xml:

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

Buat tabel

Catatan

Ada banyak cara untuk menyambungkan ke Azure SQL Database dan buat tabel. Langkah-langkah berikut menggunakan FreeTDS dari kluster HDInsight.

  1. Gunakan perintah berikut untuk memasang FreeTDS pada kluster Microsoft Azure HDInsight:

    sudo apt-get --assume-yes install freetds-dev freetds-bin
    
  2. Edit kode di bawah ini untuk mengganti <serverName> dengan nama server SQL logis Anda, dan <sqlLogin> dengan login server. Masukkan perintah untuk menyambungkan ke database SQL prasyarat. Masukkan kata sandi pada permintaan.

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

    Anda menerima output seperti teks berikut:

    locale is "en_US.UTF-8"
    locale charset is "UTF-8"
    using default charset "UTF-8"
    Default database being set to oozietest
    1>
    
  3. Di perintah 1>, masukkan baris berikut:

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

    Ketika pernyataan GO dimasukkan, pernyataan sebelumnya dievaluasi. Pernyataan ini membuat tabel, bernama mobiledata, yang digunakan oleh alur kerja.

    Untuk memverifikasi bahwa tabel telah dibuat, gunakan perintah berikut:

    SELECT * FROM information_schema.tables
    GO
    

    Anda melihat output seperti teks berikut:

    TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME      TABLE_TYPE
    oozietest       dbo             mobiledata      BASE TABLE
    
  4. Keluar dari utilitas tsql dengan memasukkan exit di permintaan 1>.

Buat definisi kerja

Definisi kerja menjelaskan tempat untuk menemukan workflow.xml. Definisi kerja juga menjelaskan tempat untuk menemukan file lain yang digunakan oleh alur kerja, seperti useooziewf.hql. Selain itu, definisi kerja ini mendefinisikan nilai untuk properti yang digunakan dalam alur kerja dan file terkait.

  1. Untuk mendapatkan alamat lengkap penyimpanan default, gunakan perintah berikut. Alamat ini digunakan dalam file konfigurasi yang Anda buat di langkah berikutnya.

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

    Perintah ini mengembalikan informasi seperti XML berikut ini:

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

    Catatan

    Jika kluster Microsoft Azure HDInsight menggunakan Azure Storage sebagai penyimpanan default, konten elemen <value> dimulai dengan wasbs://. Jika Azure Data Lake Storage Gen1 digunakan sebagai gantinya, maka akan dimulai dengan adl://. Jika Azure Data Lake Storage Gen2 digunakan sebagai gantinya, maka akan dimulai dengan abfs://.

    Simpan konten elemen <value>, seperti yang digunakan di langkah berikutnya.

  2. Edit xml di bawah ini sebagai berikut:

    Nilai tempat penampung Nilai yang diganti
    wasbs://mycontainer@mystorageaccount.blob.core.windows.net Nilai diterima dari langkah 1.
    admin Nama login Anda untuk kluster Microsoft Azure HDInsight jika bukan admin.
    serverName Nama server Azure SQL Database.
    sqlLogin Login server Azure SQL Database.
    sqlPassword Kata sandi login server Azure SQL Database.
    <?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>
    

    Sebagian besar informasi dalam file ini digunakan untuk mengisi nilai yang digunakan dalam file workflow.xml atau ooziewf.hql, seperti ${nameNode}. Jika jalur tersebut adalah jalur wasbs, Anda harus menggunakan jalur lengkap. Jangan mempersingkat hanya menjadi wasbs:///. Entri oozie.wf.application.path menentukan tempat untuk menemukan file workflow.xml. File ini memuat alur kerja yang dijalankan oleh tugas ini.

  3. Untuk membuat konfigurasi definisi kerja Oozie, gunakan perintah berikut:

    nano job.xml
    
  4. Setelah editor nano terbuka, tempel XML yang diedit sebagai konten file.

  5. Untuk menyimpan file, pilih Ctrl+X, masukkan Y, lalu pilih Enter.

Kirim dan kelola pekerjaan

Langkah-langkah berikut menggunakan perintah Oozie untuk mengirimkan dan mengelola alur kerja Oozie pada kluster. Perintah Oozie adalah antarmuka yang mudah digunakan melalui API Oozie REST.

Penting

Ketika Anda menggunakan perintah Oozie, Anda harus menggunakan FQDN untuk simpul kepala HDInsight. FQDN ini hanya dapat diakses dari kluster, atau jika kluster berada di jaringan virtual Azure, dari mesin lain di jaringan yang sama.

  1. Untuk mendapatkan URL ke layanan Oozie, gunakan perintah berikut:

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

    Perintah ini mengembalikan informasi seperti XML berikut ini:

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

    Bagian http://ACTIVE-HEADNODE-NAME.UNIQUEID.cx.internal.cloudapp.net:11000/oozie tersebut adalah URL yang akan digunakan dengan perintah Oozie.

  2. Edit kode untuk mengganti URL dengan yang Anda terima sebelumnya. Untuk membuat variabel lingkungan untuk URL, gunakan yang berikut ini, sehingga Anda tidak perlu memasukkannya untuk setiap perintah:

    export OOZIE_URL=http://HOSTNAMEt:11000/oozie
    
  3. Untuk mengirimkan pekerjaan, gunakan kode berikut:

    oozie job -config job.xml -submit
    

    Perintah ini memuat informasi pekerjaan dari job.xml dan mengirimkannya ke Oozie, tetapi tidak menjalankannya.

    Setelah perintah selesai, ID pekerjaan harus dikembalikan, misalnya, 0000005-150622124850154-oozie-oozi-W. ID ini digunakan untuk mengelola pekerjaan.

  4. Edit kode di bawah ini untuk mengganti <JOBID> dengan ID yang dikembalikan pada langkah sebelumnya. Untuk melihat status pekerjaan, gunakan perintah berikut:

    oozie job -info <JOBID>
    

    Perintah ini mengembalikan informasi seperti teks berikut ini:

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

    Pekerjaan ini memiliki status PREP. Status ini menunjukkan bahwa pekerjaan telah dibuat, tetapi belum dimulai.

  5. Edit kode di bawah ini untuk mengganti <JOBID> dengan ID yang dikembalikan sebelumnya. Untuk memulai pekerjaan, gunakan perintah berikut:

    oozie job -start <JOBID>
    

    Jika Anda memeriksa status setelah perintah ini, statusnya dalam keadaan berjalan, dan informasi dikembalikan untuk tindakan dalam pekerjaan. Pekerjaan akan memakan waktu beberapa menit untuk menyelesaikannya.

  6. Edit kode di bawah ini untuk mengganti <serverName> dengan nama server Anda, dan <sqlLogin> dengan login server. Setelah tugas selesai dengan sukses, Anda dapat memverifikasi bahwa data dihasilkan dan diekspor ke tabel database SQL dengan menggunakan perintah berikut ini. Masukkan kata sandi pada permintaan.

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

    Di perintah 1>, masukkan baris berikut:

    SELECT * FROM mobiledata
    GO
    

    Informasi yang dikembalikan seperti teks berikut:

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

Untuk informasi selengkapnya tentang perintah Oozie, lihat alat baris alat baris perintah Apache Oozie.

REST API Oozie

Dengan REST API Oozie, Anda dapat membangun alat Anda sendiri yang berfungsi dengan Oozie. Informasi spesifik HDInsight berikut tentang penggunaan REST API Oozie:

  • URI: Anda dapat mengakses REST API dari luar kluster di https://CLUSTERNAME.azurehdinsight.net/oozie.

  • Autentikasi: Untuk mengautentikasi, gunakan API akun HTTP kluster (admin) dan kata sandi. Contohnya:

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

Untuk informasi selengkapnya tentang cara menggunakan REST API Oozie, lihat API Layanan Web Apache Oozie.

Oozie web UI

Oozie web UI menyediakan tampilan berbasis web ke dalam status pekerjaan Oozie pada kluster. Dengan UI web Anda bisa melihat informasi berikut:

  • Status pekerjaan
  • Definisi tugas
  • Konfigurasi
  • Grafik tindakan dalam pekerjaan
  • Log untuk pekerjaan

Anda juga dapat melihat detail tindakan dalam pekerjaan.

Untuk mengakses UI web Oozie, selesaikan langkah-langkah berikut:

  1. Buat perowonganan SSH ke kluster Microsoft Azure HDInsight. Untuk informasi selengkapnya, lihat Gunakan Penerowongan SSH dengan Microsoft Azure HDInsight.

  2. Setelah Anda membuat perowonganan, buka UI web Ambari di browser web Anda menggunakan URI http://headnodehost:8080.

  3. Dari sisi kiri halaman, pilih Oozie>Tautan Cepat>UI Web Oozie.

    Apache Ambari oozie web ui steps.

  4. UI web Oozie default untuk menampilkan pekerjaan alur kerja yang sedang berjalan. Untuk melihat semua pekerjaan alur kerja, pilih Semua Pekerjaan.

    Oozie web console workflow jobs.

  5. Untuk melihat informasi selengkapnya tentang pekerjaan, pilih pekerjaan.

    HDInsight Apache Oozie job info.

  6. Dari tab Info Pekerjaan, Anda dapat melihat informasi dasar pekerjaan dan tindakan individual dalam pekerjaan. Anda dapat menggunakan tab di bagian atas untuk melihat Definisi Kerja, Konfigurasi Pekerjaan, mengakses Log Pekerjaan, atau melihat grafik asiklik terarah (DAG) pekerjaan di bawah DAG Pekerjaan.

    • Log Pekerjaan: Pilih tombol Dapatkan Log untuk mendapatkan semua log untuk pekerjaan tersebut, atau gunakan bidang Masukkan Filter Pencarian untuk memfilter log.

      HDInsight Apache Oozie job log.

    • DAG Pekerjaan: DAG adalah ringkasan grafik dari jalur data yang diambil melalui alur kerja.

      `HDInsight Apache Oozie job dag`.

  7. Jika Anda memilih salah satu tindakan dari tab Info Pekerjaan, tindakan tersebut akan memunculkan informasi untuk tindakan tersebut. Misalnya, pilih tindakan RunSqoopExport.

    HDInsight oozie job action info.

  8. Anda dapat melihat detail tindakan, seperti tautan ke URL Konsol. Gunakan tautan ini untuk melihat informasi pelacak pekerjaan untuk pekerjaan tersebut.

Jadwalkan pekerjaan

Anda dapat menggunakan koordinator untuk menentukan awal, akhir, dan frekuensi kejadian untuk pekerjaan. Untuk menentukan jadwal alur kerja, selesaikan langkah-langkah berikut ini:

  1. Gunakan perintah berikut untuk membuat file bernama coordinator.xml:

    nano coordinator.xml
    

    Gunakan XML berikut sebagai konten file:

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

    Catatan

    Variabel ${...} digantikan oleh nilai dalam definisi pekerjaan pada runtime. Variabelnya adalah:

    • ${coordFrequency}: Waktu antara menjalankan instans pekerjaan.
    • ${coordStart}: Waktu mulai pekerjaan.
    • ${coordEnd}: Waktu akhir pekerjaan.
    • ${coordTimezone}: Pekerjaan koordinator berada di zona waktu tetap tanpa daylight saving time, biasanya diwakili dengan menggunakan UTC. Zona waktu ini disebut sebagai zona waktu pemrosesan Oozie.
    • ${wfPath}: Jalur menuju alur kerja.xml.
  2. Untuk menyimpan file, pilih Ctrl+X, masukkan Y, lalu pilih Enter.

  3. Untuk menyalin file ke direktori kerja untuk tugas ini, gunakan perintah berikut:

    hadoop fs -put coordinator.xml /tutorials/useoozie/coordinator.xml
    
  4. Untuk mengubah file job.xml yang Anda buat sebelumnya, gunakan perintah berikut:

    nano job.xml
    

    Lakukan perubahan berikut:

    • Untuk menginstruksikan Oozie untuk menjalankan file koordinator alih-alih alur kerja, ubah <name>oozie.wf.application.path</name> ke <name>oozie.coord.application.path</name>.

    • Untuk mengatur variabel workflowPath yang digunakan oleh koordinator, tambahkan XML berikut:

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

      Ganti teks wasbs://mycontainer@mystorageaccount.blob.core.windows dengan nilai yang digunakan dalam entri lain dalam job.xml file.

    • Untuk menentukan awal, akhir, dan frekuensi untuk koordinator, tambahkan XML berikut:

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

      Nilai-nilai ini mengatur waktu mulai menjadi 12.00 siang pada 10 Mei 2018, dan waktu akhir hingga 12 Mei 2018. Interval untuk menjalankan pekerjaan ini diatur ke harian. Frekuensi dalam hitungan menit, jadi 24 jam x 60 menit = 1440 menit. Akhirnya, zona waktu diatur ke UTC.

  5. Untuk menyimpan file, pilih Ctrl+X, masukkan Y, lalu pilih Enter.

  6. Untuk memulai pekerjaan, gunakan perintah berikut:

    oozie job -config job.xml -run
    
  7. Jika Anda masuk ke UI web Oozie dan memilih tab Pekerjaan Koordinator, Anda akan melihat informasi seperti dalam gambar berikut:

    Oozie web console coordinator jobs tab.

    Entri Materialisasi Berikutnya berisi waktu berikutnya saat pekerjaan berjalan.

  8. Seperti pekerjaan alur kerja sebelumnya, jika Anda memilih entri pekerjaan di UI web, entri tersebut menampilkan informasi tentang pekerjaan:

    Apache Oozie coordinator job info.

    Catatan

    Gambar ini hanya memperlihatkan keberhasilan menjalankan pekerjaan, bukan tindakan individual dalam alur kerja terjadwal. Untuk melihat tindakan individual, pilih salah satu entri Tindakan.

    OOzie web console job info tab.

Langkah berikutnya

Dalam artikel ini, Anda belajar cara menentukan alur kerja Oozie dan cara menjalankan pekerjaan Oozie. Untuk mempelajari selengkapnya tentang cara bekerja dengan Microsoft Azure HDInsight, lihat artikel berikut ini: