Skip to main content

การใช้งาน Cloudera Hue

Hue คือ Web Interface สำหรับการ Query ข้อมูลใน Data Platform ด้วย Hive, Impala, Solr และ Spark

Quick Links

การ Login เข้าใช้งาน

  1. ดาวโหลด ติดตั้ง ตั้งค่า MIT Kerberos และ Firefox ให้เรียบร้อย

  2. เปิดโปรแกรม MIT Kerberos Ticker Manager จากนั้นกดที่ปุ่ม Get Ticket กรอกข้อมูลตามรายละเอียดด้านล่าง และ กดปุ่ม OK

    หัวข้อค่าที่กรอกรายละเอียด
    Principalรหัสพนักงาน@MEANET.MEA.OR.THรหัสพนักงานพร้อมโดเมน เช่น 2237007@MEANET.MEA.OR.TH
    Passwordรหัสผ่านที่ใช้กับระบบ ADใช้รหัสเดียวกับระบบ AD ของกฟน. (รหัสเดียวกับ WiFi)

    รูปตัวอย่าง

    Hue

  3. ถ้าทำถูกต้องคุณจะเห็น Ticket สำหรับเข้าใช้งาน Data Platform ตามรูป

    Hue

การเข้าใช้งาน Hue

Network

การใช้งาน Tools ต่างๆใน Data Platform จะต้องอยู่ภายใน Network ของ กฟน. เท่านั้น หากคุณทำงานจากบ้านจะต้องเชื่อมต่อกับ VPN ก่อนการใช้งาน

  1. ใช้ Firefox เปิดไปที่เว็บไซต์ https://dpc-cdr-u1.mea.or.th:8889/hue

  2. หน้าต่าง Hue มีส่วนประกอบหลักตามรูป

    Hue

  3. ให้คลิกที่ตัวเลือก Database และ เลือก Database ชื่อ airflow คุณจะเห็นรายการ Table ข้อมูลทั้งหมดที่ Data Engineer ได้เตรียมไว้ ข้อมูลใน Hue นี้เหมาะสำหรับใช้ในการ Explore หาความสัมพันธ์ หรือ ศึกษาสภาพข้อมูลเชิงลึก และ ข้อมูลเหล่านี้อาจจะไม่เหมือนกับที่คุณเห็นใน Data Catalog เนื่องจากข้อมูลใน Data Catalog เป็นชุดข้อมูลที่ถูกกรองและพร้อมเผยแพร่ตามนโยบายแล้ว

    Hue

การ Query ด้วย Impala SQL

คุณจะได้เรียนรู้เกี่ยวกับพื้นฐาน SQL และ Impala ในหลักสูตร Data Scientist และ Data Engineering Bootcamp โดยสรุป Impala เป็น Tool ที่ช่วยให้คุณสามารถ Query ข้อมูลที่อยู่ใน Data Lake ด้วยภาษาคล้ายกับ SQL ได้อย่างรวดเร็ว ซึ่งโดยปกติจะ Interactive มากกว่า Hive

  1. เลื่อนเมาส์ไปที่เมนูหลัก Editor จากนั้นเลือก Impala บนเมนูที่เด้งขึ้นมา

  2. ที่ช่องสำหรับเขียน Code คุณสามารถทดลอง Query ข้อมูล Payment ปี 2021 ด้วยคำสั่ง SQL ด้านล่าง และ กดปุ่ม Play ตามตัวอย่างในรูป

    สิทธิในการใช้งาน

    คุณจะได้รับสิทธิ Query ตามนโยบายที่กำหนดเท่านั้น โดยปกตินักเรียนในหลักสูตร Data Engineering และ Data Scientist จะได้รับอนุญาตให้เข้ามาศึกษาข้อมูลใน Data Platform ได้โดยตรง สำหรับนักเรียนหลักสูตร Data Analyst จะได้รับสิทธิในการใช้ข้อมูลที่ผ่านการกรองใน Data Catalog เท่านั้น

    SELECT * FROM airflow.idd_payment
    WHERE year(clearing_date)=2021;

    Hue

  3. คุณจะได้ผลลัพธ์จากการ Query ตามรูป

    Hue

การ Query ด้วย HiveQL

คุณจะได้เรียนรู้เกี่ยวกับพื้นฐาน SQL และ Hive ในหลักสูตร Data Scientist และ Data Engineering Bootcamp โดยสรุป Hive เป็น Tool ที่ช่วยให้คุณสามารถ Query ข้อมูลที่อยู่ใน Data Lake ด้วยภาษาคล้ายกับ SQL Hive ของการไฟฟ้านครหลวงใช้ Apache Tez เป็น Engine ในการคำนวณทดแทน Map Reduce Hive เหมาะสำหรับงานในลักษณะ Batch ในขณะที่ Impala เหมาะกับงาน Ad-hoc

  1. เลื่อนเมาส์ไปที่เมนูหลัก Editor จากนั้นเลือก Hive บนเมนูที่เด้งขึ้นมา

  2. ที่ช่องสำหรับเขียน Code คุณสามารถทดลอง Query ข้อมูล Payment ปี 2021 ด้วยคำสั่ง SQL ด้านล่าง และ กดปุ่ม Play ตามตัวอย่างในรูป

    สิทธิในการใช้งาน

    คุณจะได้รับสิทธิ Query ตามนโยบายที่กำหนดเท่านั้น โดยปกตินักเรียนในหลักสูตร Data Engineering และ Data Scientist จะได้รับอนุญาตให้เข้ามาศึกษาข้อมูลใน Data Platform ได้โดยตรง สำหรับนักเรียนหลักสูตร Data Analyst จะได้รับสิทธิในการใช้ข้อมูลที่ผ่านการกรองใน Data Catalog เท่านั้น

    SELECT * FROM airflow.idd_payment
    WHERE year(clearing_date)=2021;

    Hue

  3. คุณจะได้ผลลัพธ์จากการ Query ตามรูป

    Hue

การบริหารจัดการ HDFS

คุณสามารถอัพโหลด ดาวโหลด บริหารจัดการ ไฟล์ต่างๆบน HDFS ผ่าน Hue Web UI ได้ดังนี้

  1. ที่เมนูหลักคลิกที่ Files

  2. คุณจะเห็นหน้าต่าง File Browser ตามรูป ซึ่งคุณสามารถบริหารจัดการได้เหมือนไฟล์ทั่วไป

    สิทธิการใช้งาน

    คุณมีสิทธิ Read/Write เฉพาะในไดเรกทอรี่ของคุณเท่านั้น ในกรณีที่ต้องการทำงานเป็นทีมผ่านไดเรกทอรี่อื่น คุณสามารถแจ้งขอเพิ่มสิทธิได้ที่ Google Form

    Hue

  3. คุณสามารถ Interface กับ HDFS ด้วยการเขียนโปรแกรมผ่านช่องทางอื่นๆ เช่น Apache Airflow, Apache Spark หรือ HDFS CLI

การ Submit Spark Applications

หลังจากที่คุณเขียน Spark Application เรียบร้อยแล้วคุณสามารถนำโปรแกรมมารันบน Hue ได้ตามขั้นตอนดังนี้

  1. ที่เมนูหลักคลิกที่ Editor แล้วเลือก Spark บนเมนูที่เด้งขึ้นมา

  2. ทดสอบด้วยการสร้างโปรแกรม PySpark บนเครื่องของคุณ และเซฟเป็นชื่อ pi-estimation.py

    PySpark Examples

    คุณสามารถศึกษาโปรแกรมตัวอย่างของ PySpark ได้ที่ Spark Github

    import sys
    from random import random
    from operator import add

    from pyspark.sql import SparkSession

    if __name__ == "__main__":
    """
    Usage: pi [partitions]
    """
    spark = SparkSession\
    .builder\
    .appName("PythonPi")\
    .getOrCreate()

    partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
    n = 100000 * partitions

    def f(_):
    x = random() * 2 - 1
    y = random() * 2 - 1
    return 1 if x ** 2 + y ** 2 <= 1 else 0

    count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
    print("Pi is roughly %f" % (4.0 * count / n))

    spark.stop()
  3. ที่หน้าต่าง Spark คลิก + ที่ Libs และ กดปุ่ม ... เพื่อเลือกโปรแกรม PySpark ที่จะรัน

    Hue

  4. ที่หน้าต่างเลือกไฟล์ กดปุ่ม Upload a file เลือกไฟล์ pi-estimation.py ที่สร้างไว้ในข้อ 2 จากนั้นคลิกที่ชื่อไฟล์ในหน้าต่าง

    Hue

  5. เนื่องจากโปรแกรม pi-estimation มี Argument ที่จะต้องกรอก คุณสามารถกรอก Argument ที่โปรแกรมต้องการด้วยการคลิกที่ + ข้างข้อความ Arguments จากนั้นกรอก Argument ที่ต้องการ ในกรณีนี้เราจำเป็นต้องใส่จำนวน Partitions ด้วยค่า 10 เพื่อทำการประมาณค่า Pi ตามรูป เมื่อเรียบร้อยแล้ว กดปุ่ม Play เพื่อรันโปรแกรม

    Hue

  6. เมื่อโปรแกรมรันเสร็จแล้วให้เลื่อน Log ลงมาดูผลลัพธ์ โดยปกติจะอยู่ท้ายๆ Log ตามรูป (อาจจะหายากนิดหน่อย เนื่องจาก Spark จะ Output ขั้นตอนการคำนวณด้วย)

    Hue