Hadoop เป็นเทคโนโลยีทางด้าน Big Data ที่น่าสนใจเพราะสามารถที่จะเก็บข้อมูลที่เป็น   Unstructure จำนวนเป็น PetaByte ได้ ซึ่งในทางทฤษฎีการศึกษาการติดตั้งระบบ Hadoop และการนำมา  Hadoop  มาใช้ในการวิเคราะห์ข้อมูลโดยใช้โปรแกรมอย่าง MapReduce  หรือใช้เทคโนโลยีต่างๆอย่าง  Hive, Pig, Scoop หรือ HBase เป็นเรื่องไม่ยากนัก แต่ในทางปฎิบัติปัญหาสำคัญที่องค์กรจะพบในการติดตั้ง Hadoop Big Data  ก็คือการหาเครื่อง Server จำนวนมากมาเพื่อติดตั้งระบบ Hadoop Cluster  จำนวนตั้งแต่  5  เครื่องไปจนเป็นร้อยเป็นพันเครื่อง

HadoopProcess

รูปที่ 1 Hadoop Lifecycle [Source: Rackspace]

การแก้ปัญหาในเรื่องการจัดหา  Server อาจทำได้โดยการใช้ระบบ  Public Cloud  ซึ่งก็จะเป็นการลดค่่าใช้จ่ายขององค์กร ทั้งนี้รูปแบบของการใช้ Hadoop  บน Public Cloud   มีสองแบบคือ

  1. ติดตั้ง Hadoop Cluster โดยใช้ Virtual Server ในระบบ  Public IaaS Cloud อย่าง Amazon Web Services  (AWS) หรือ Microsoft Azure  กรณีนี้จะใช้ในกรณีที่เราจะต้องการนำ Hadoop มาใช้ในการเก็บข้อมูลขนาดใหญ่โดยใช้ HDFS และใช้ในการวิเคราะห์ข้่อมูลโดยใช้เครื่องมืออย่าง  MapReduce, Hive, Pig
  2. การใช้บริการ  Hadoop as a Service ของ  Public Cloud Provider ที่ได้ติดตั้งระบบ Hadoop ไว้แล้ว และเราต้องการใช้ระบบที่มีอยู่เช่น MapReduce, Hive, Pig มาใช้ในการวิเคราะห์ข้อมูล ทั้งนี้ข้อมูลที่จะนำมาวิเคราะห์อาจอยู่ในองค์กรเราหรือเก็บไว้ที่อื่น

การใช้ Public Cloud ในกรณีที่ 1  ถ้ามีข้อมูลขนาดใหญ่มาก  ก็อาจจะมีค่าใช้จ่ายที่สูง ยิ่งถ้ามีจุดประสงค์เพื่อที่จะใช้ในการเก็บข้อมูลแบบ Unstructure  ก็ดูอาจไม่คุ้มค่านัก แต่ก็มีข้อดีที่มีระบบ  Hadoop Cluster ที่ติดตั้งเองและไม่ต้องใช้ร่วมกับคนอื่น ผู้เขียนเองเคยทดลองติดตั้งระบบแบบนี้โดยใช้ Azure HDInsight และทดลองติดตั้ง Hadoop CloudEra Distribution  ลงใน AWS EC2  และล่าสุดทดลองติดตั้ง Apache Hadoop Cluster  4 เครื่องลงบน  AWS EC2

สำหรับกรณีที่ 2  น่าจะเหมาะกับผู้ต้องการวิเคราะห์ข้อมูลขนาดใหญ่เช่น  ข้อมูลที่เป็น Text หรือ ข้อมูลจาก  Social Media โดยใช่้เทคโนโลยี Hadoop โดยไม่ต้องการลงทุนซื้อเครื่อง  Server  และก็ไม่ได้เน้นที่จะใช้ Hadoop Cluster  ในการเก็บข้อมูลอย่างถาวร ในปัจจุบันมีผู้ให้บริการ  Cloud Computing อยู่่หลายรายที่ให้บริการ Hadoop as a Service โดยจะคิดค่าบริการตามระยะเวลาที่ใช้ในการประมวลผล และอาจรวมถึงขนาดของข้อมูล  การใช้  Bandwidth ตัวอย่างของผู้ให้บริการมีดังนี้

  • Amazon Elastic Map Reduce

เป็นบริการ  Hadoop Cluster ของ  AWS ที่ผู้ใช้บริการสามารถที่จะเลือกขนาดของ Cluster หรือภาษาที่จะใช้การวิเคราะห์ข้อมูลเช่น Java  สำหรับ  MapReduce หรือ Python สำหรับ Streaming และ  Hive, Pig  ผู้เขียนเองเคยใช้   AWS EMR ในการวิเคราะห์ข้อมูลดยการ Transfer ข้อมูลผ่าน  Amazon  S3 ก็สะดวกและใช้งานง่าย ทั้งนี้ Hadoop Distribution ที่ลงบน EMR ผู้ใช้สามารถเลือกได้ระหว่าง  Amazon หรือ  MapR Distribution

Screenshot 2014-09-16 15.18.54

รูปที่ 2 ตัวอย่างการใช้  Amazon EMR

  • Rackspace Cloud Big Data Platform

Rackspace   หนึ่งในผู้นำด้าน  Public IaaS Cloud  มีบริการที่เรียกว่า Hadoop as a Service  เพื่อให้ผู้ใช้สามารถที่จะส่งข้อมูลมาประมวลผลได้ โดยได้ร่วมมือกับ  Hortonworks  ในการติดตั้ง Distribution ของ  Hadoop

Screenshot 2014-09-16 15.24.41  รูปที่ 3 Rackspace Big Data

  • Qubole

Qubole  เป็นผู้ให้บริการ Hadoop as a Service  โดยเฉพาะ ซึ่งทางบริษัทนี้ติดตั้ง  Hadoop Cluster  บนเครื่อง Server  ของ  AWS และ Google Compute Engine คิดค่าบริการ  Data Service ในการวิเคราะห์ข้อมูลทั้งแบบเหมาจ่ายรายเดือน  (เริ่มตั้งแต่ $5,900 ต่อเดือน) และตามการใช้งาน ($0.11 ต่อ Computing Hour และ $0.22  ต่อ import/export)

Screenshot 2014-09-16 15.39.21

   รูปที่ 4 Qubole.com

  • Google Cloud Platform

Google มีระบบ  Apache Hadoop  ที่รันอยู่บน Google Cloud ให้ผู้ใช้สามารถประมวลข้อมูลโดยใช้ MapReduce,  Hadoop Streaming, Hive หรือ Pig  ที่เก็บอยู่บน Google Cloud Storage  ได้ โดยคิดค่าใช้จ่ายตามปริมาณการใช้งาน

Screenshot 2014-09-16 16.13.40

 รูปที่ 5 Google Apache Hadoop

  • IBM Bluemix: Analytic on Hadoop

IBM Bluemix ซึ่งเป็น  Public PaaS ก็มีการติดตั้ง  Hadoop Cluster  เพื่อให้ผู้ใช้สามารถประมวลผลข้อมูลขนาดใหญ่โดยใช้ MapReduce, Hive หรือ Pig เช่นเดียวกับ Google  หรือ AWS ทั้งนี้ Hadoop  ที่ติดตั้งบน  Bluemix เป็น Distribution ของ  IBM ที่ชื่อ InfoSphere BigInsights

Screenshot 2014-09-16 21.15.24

รูปที่ 6 IBM Analytics fo Hadoop

จากที่กล่าวมาทั้งหมดนี้จะเห็นได้ว่า ในปัจจุบันองค์กรต่างๆสามารถทำการประมวลผลข้อมูลโดยใช้ เทคโนโลยี Hadoop ได้เลยผ่านบริการ  Public Cloud โดยไม่ต้องจัดหาเครื่อง Server หลายๆองค์กรก็อาจจะห่วงเรื่องความปลอดภัยของข้อมูล ซึ่ีงในกรณีของ Hadoop as a Service เราไม่จำเป็นต้องเก็บข่้อมูลลงใน  Hadoop Cluster  โดยเราสามารถ  Transfer ข้อมูลที่จำเป็นในการประมวลผลไปใช้ได้เป็นครั้งคราวไป ทำให้เราน่าจะเชื่อมั่นในเรื่องข้อมูลได้ดีขึ้น ข้อสำคัญเราจะเห็นว่ามีองค์กรใหญ่ๆจำนวนมากมาใช้บริการแบบนี้ ซึ่งแน่นอนข้อมูลขององค์กรเหล่านั้นก็มีความสำคัญไม่น้อยกว่าของเรา จึงทำให้เห็นได้ว่าองค์กรต่างๆมีความเชื่อมั่นในบริการแบบนี้มากขึ้นเรื่อยๆ

ธนชาติ นุ่มนนท์

IMC Institute

กันยายน 2557

One thought on “Big Data on Cloud ตอนที่ 1: Hadoop as a Service

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s