ค้นหาเว็บไซต์

ติดตั้งและกำหนดค่า Apache Oozie Workflow Scheduler สำหรับ CDH 4.X บน RHEL/CentOS 6/5


Oozie เป็นตัวกำหนดเวลาแบบโอเพ่นซอร์สสำหรับ Hadoop ซึ่งช่วยลดความยุ่งยากในขั้นตอนการทำงานและการประสานงานระหว่างงานต่างๆ เราสามารถกำหนดการพึ่งพาระหว่างงานสำหรับข้อมูลที่ป้อนเข้าได้ และด้วยเหตุนี้จึงสามารถกำหนดการพึ่งพางานได้โดยอัตโนมัติโดยใช้ตัวกำหนดเวลาการไหลซึม

ในบทช่วยสอนนี้ ฉันได้ติดตั้ง Oozie บนโหนดหลักของฉัน (เช่น master เป็นชื่อโฮสต์และตำแหน่งที่ติดตั้ง namenode/JT) อย่างไรก็ตาม ในระบบที่ใช้งานจริง ควรติดตั้ง oozie บนโหนด Hadoop ที่แยกจากกัน

คำแนะนำในการติดตั้งแบ่งออกเป็นสองส่วน เราเรียกว่า A และ B

  1. ก. การติดตั้ง Oozie
  2. B. การกำหนดค่า Oozie

ก่อนอื่นมาตรวจสอบชื่อโฮสต์ของระบบโดยใช้คำสั่ง 'ชื่อโฮสต์' ต่อไปนี้

[root@master]# hostname

master

วิธี A: การติดตั้ง Oozie บน RHEL/CentOS 6/5

เราใช้พื้นที่เก็บข้อมูล CDH อย่างเป็นทางการจากไซต์ของ cloudera เพื่อติดตั้ง CDH4 ไปที่ส่วนการดาวน์โหลด CDH อย่างเป็นทางการ และดาวน์โหลดเวอร์ชัน CDH4 (เช่น 4.6) หรือคุณสามารถใช้คำสั่ง wget ต่อไปนี้เพื่อดาวน์โหลดพื้นที่เก็บข้อมูลและติดตั้ง

บน RHEL/CentOS 6
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
บน RHEL/CentOS 5
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm

เมื่อคุณเพิ่มพื้นที่เก็บข้อมูล CDH ในระบบของคุณแล้ว คุณสามารถใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Oozie บนระบบได้

[root@master ~]# yum install oozie

ตอนนี้ให้ติดตั้งไคลเอนต์ oozie (คำสั่งด้านบนควรครอบคลุมส่วนการติดตั้งไคลเอนต์ แต่ถ้าไม่เป็นเช่นนั้นให้ลองใช้คำสั่งด้านล่าง)

[root@master ~]# yum install oozie-client

หมายเหตุ: การติดตั้งข้างต้นยังกำหนดค่าบริการ oozie ให้ทำงานเมื่อเริ่มต้นระบบ ทำได้ดีมาก! ตอนนี้เราเสร็จสิ้นการติดตั้งส่วนแรกแล้ว มาดูส่วนที่สองเพื่อกำหนดค่า oozie

วิธี B: การกำหนดค่า Oozie บน RHEL/CentOS 6/5

เนื่องจาก oozie ไม่ได้โต้ตอบกับ Hadoop โดยตรง เราจึงไม่จำเป็นต้องมีการกำหนดค่าที่แมปที่นี่

ข้อควรระวัง: โปรดกำหนดการตั้งค่าทั้งหมดในขณะที่ oozie ไม่ทำงาน ซึ่งหมายความว่าคุณต้องทำตามขั้นตอนด้านล่างในขณะที่บริการ oozie ไม่ทำงาน

Oozie มี 'Derby' เป็นค่าเริ่มต้นใน DB อย่างไรก็ตาม ฉันขอแนะนำให้คุณใช้ Mysql DB ดังนั้นมาติดตั้งฐานข้อมูล MySQL โดยใช้บทความต่อไปนี้

  1. ติดตั้งฐานข้อมูล MySQL ใน RHEL/CentOS 6/5

เมื่อคุณติดตั้งเสร็จแล้ว ให้ดำเนินการต่อไปเพื่อสร้าง oozie DB และให้สิทธิ์ตามที่แสดงด้านล่าง

[root@master ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.38 MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database oozie;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

จากนั้น กำหนดค่าคุณสมบัติ Oozie สำหรับ MySQL เปิดไฟล์ 'oozie-site.xml' และแก้ไขคุณสมบัติต่อไปนี้ตามที่แสดง

[root@master ~]# cd /etc/oozie/conf
[root@master conf]# vi oozie-site.xml

ป้อนคุณสมบัติต่อไปนี้ ( เพียงแทนที่ master [my ชื่อโฮสต์] ด้วย ชื่อโฮสต์ ของคุณ)

<property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://master:3306/oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.username</name>
        <value>oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>oozie</value>
    </property>

ดาวน์โหลดและเพิ่มไดรเวอร์การเชื่อมต่อ MySQL JDBC JAR ลงในไดเรกทอรี Oozie lib ในการทำเช่นนั้น ให้รันคำสั่งร้ายแรงต่อไปนี้บนเทอร์มินัล

[root@master oozie]# cd /tmp/
[root@master tmp]# wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.31.tar.gz
[root@master tmp]# tar -zxf mysql-connector-java-5.1.31.tar.gz	
[root@master tmp]# cd mysql-connector-java-5.1.31
[root@master mysql-connector-java-5.1.31]# cp mysql-connector-java-5.1.31-bin.jar /var/lib/oozie/

สร้างสคีมาฐานข้อมูล oozie โดยดำเนินการคำสั่งด้านล่าง และโปรดทราบว่าควรเรียกใช้ในฐานะผู้ใช้ oozie

[root@master ~]# sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run
ผลลัพธ์ตัวอย่าง
setting OOZIE_CONFIG=/etc/oozie/conf
setting OOZIE_DATA=/var/lib/oozie
setting OOZIE_LOG=/var/log/oozie
setting OOZIE_CATALINA_HOME=/usr/lib/bigtop-tomcat
setting CATALINA_TMPDIR=/var/lib/oozie
setting CATALINA_PID=/var/run/oozie/oozie.pid
setting CATALINA_BASE=/usr/lib/oozie/oozie-server-0.20
setting CATALINA_OPTS=-Xmx1024m
setting OOZIE_HTTPS_PORT=11443
...
DONE
Oozie DB has been created for Oozie version '3.3.2-cdh4.7.0'
The SQL commands have been written to: /tmp/ooziedb-8250405588513665350.sql

คุณต้องดาวน์โหลด ExtJS lib จากอินเทอร์เน็ตเพื่อเปิดใช้งานคอนโซลเว็บ oozie ไปที่หน้า CDH ExtJS อย่างเป็นทางการ และดาวน์โหลดไลบรารี่ ExtJS เวอร์ชัน 2.2 หรือคุณสามารถดาวน์โหลดแพ็คเกจโดยใช้คำสั่งต่อไปนี้

[root@master ~]# cd /tmp/
[root@master tmp]# wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
[root@master tmp]# unzip ext-2.2.zip
[root@master tmp]# mv ext-2.2 /var/lib/oozie/

สุดท้ายให้เริ่มเซิร์ฟเวอร์ oozie โดยใช้คำสั่งต่อไปนี้

[root@master tmp]# service oozie status
not running.

[root@master tmp]# service oozie start

[root@master tmp]# service oozie status
running

[root@master tmp]# oozie admin -oozie http://localhost:11000/oozie -status
System mode: NORMAL

เปิด oozie UI โดยใช้เบราว์เซอร์ที่คุณชื่นชอบ และชี้ไปที่ที่อยู่ IP ของคุณ ในกรณีนี้ IP ของฉันคือ 192.168.1.129

http://192.168.1.129:11000

ตอนนี้ถ้าคุณเห็น UI นี้ ยินดีด้วย!! คุณได้กำหนดค่า oozie สำเร็จแล้ว

ขั้นตอนนี้ได้รับการทดสอบเรียบร้อยแล้วบน RHEL/CentOS 6/5 ในบทความต่อๆ ไปของฉัน ฉันจะแบ่งปันวิธีกำหนดค่าและกำหนดเวลางาน Hadoop ผ่าน oozie เชื่อมต่อเพื่อรับข้อมูลเพิ่มเติมและอย่าลืมแสดงความคิดเห็นความคิดเห็นของคุณ