Hadoop คืออะไร
หลัการเราทราบแล้วว่า Big data คืออะไร ใช้ทำอะไร ทีนี้เรามาดูกันต่อว่าและ Hadoop คืออะไร เกี่ยวข้องอย่างไรกับ Big data ตามหลักการของ Hadoop คือ Java programming framework ที่รองรับการทำงานที่ต้องประมวลผลและเก็บข้อมูลขนาดใหญ่ เป็นส่วนหนึ่งของ apache project โดย Hadoop ถูกออกแบบมาให้เป็น application ที่สามารถทำงานได้บนระบบแบบ node หรือมี hardware จำนวนหลายๆเครื่องพร้อมกัน เพื่อรองรับข้อมูลขนาดใหญ่ ซึ่งใช้การแตก file system ออกมากระจายตาม node ให้สามารถทำงานได้รวดเร็วพร้อมทั้งส่งข้อมูลหากันระหว่าง node ทั้งหมด รวมถึงมีความสามารถในการจัดการ node มี่เสียหายได้โดนไม่ทำให้เกิดข้อมูลสูญหาย ปัจจุบัน Hadoop ถูกนำมาใช้ในงาน big data จำพวก การคำนวณข้อมูลทางวิทยาศาสตร์เฉพาะทาง, เชิงธุรกิจ รวมถึงวางแผนการขาย และ ประมวลผลข้อมูล sesor จำนวนมาก หรือ internet of things (IOT)
Hadoop ถูกสร้างขึ้นโดยนาย Doug Cutting และ Mike Cafarella ในปี 2006 ซึ่งทำงานที่ Nutch search engine โดยเค้าได้ idea มาจาก Google’s Mapreduce ซึ่งเป็น software framework ที่ทำการแตก application ออกเป็นส่วนเล็กๆจำนวนมาก เรียกว่า fragment หรือ block ที่สามารถทำงานบน node แต่ละตัว โดยรวมกันเป็น cluster และทำให้เกิด Hadoop 1.0 ขึ้นมาช่วง พฤศจิกายน 2012 โดยเป็นส่วนหนึ่งใน Apache project
ตั้งแต่ที่เริ่มประกาศ softeware ออกไป Hadoop ก็ยังถูกพัฒนาอย่างต่อเนื่องจนมาถึง version Hadoop 2 ซึ่งพัฒนาในเรื่องการจัดการทรัพยากรได้ดีขึ้น โดยบริษัทต่างๆสามารถนำเอา Hadoop มาใช้งานใน data center ได้ สามารถขยายเพื่อได้ในรูปแบบ cloud service อย่างเช่น Amazon Web services (AWS), Google Cloud Platform และ Microsoft Azure ซึ่งส่วนมารองรัย Hadoop กันหมดแล้ว
ส่วนประกอบของ Hadoop
อย่างที่บอกว่าเป็น Software framework ทำให้ Hadoop เองประกอบไปดู module จำนวนมาก ซึ่งขั้นต่ำที่จะต้องมีคือ
- Hadoop Common: เป็น library ที่จำเป็นในการใช้งานเปรียบได้กับ kernel
- Hadoop Distributed File System (HDFS): สำหรับเก็บข้อมูลภายใต้ server node จำนวนมาก ซึ่งต้องอาศัย bandwidth ที่สูงมากในการทำงาน
- Hadoop Yet Another Resource Negotiator (YARN): ทำหน้าที่จัดการทรัพยากรที่มีอยู่ รวมถึงรอบการทำงานของ application
- Hadoop MapReduce: เป็นรูปแบบ program ที่จัดการกับ ข้อมูลขนาดใหญ่เพื่อสร้าวความสัมพันธ์ระหว่างกัน
Hadoop เองยังสามารถขยายระบบเพิ่มเพื่อรองรับการทำงานที่สูงขึ้น โดยอาศัย software package เหล่านี้
- Apache Flume: เครื่องมือที่ใช้เก็บ จัดเรียง และส่งข้อมูบให้กับ HDFS
- Apache HBase: เป็น database แบบ nonrelational
- Apache Hive: คือ data warehouse ที่ทำการเก็บข้อมูลเพื่อ query และ วิเคราะห์ข้อมูลที่ต้องการ
- Cloudera Impala: software ส่วนที่จัดการทำงานแบบ parallel ให้บน Hadoop
- Apache Oozie: ไว้จัดการ workflow รวมถึงตั้ง job การทำงานบน Hadoop
- Apache Phoenix: ใช้สำหรับ connection ไปยัง HBase และใช้งาน SQL query
- Apache Pig: platform ที่ใช้สร้าง program เพื่อทำงานบน Hadoop
- Apache Sqoop: เครื่องมือสำหรับส่งข้อมูลขนาดใหญ่ระหว่าง Hadoop และส่วนของข้อมูลที่มีโครงสร้าง หรือ relational database
- Apache Spark: engine สำหรับ big data ที่ใช้ประมวลผลข้อมูลแบบ streaming และยังรองรับ SQL ด้วย
- Apache Storm: เป็นตัวส่งต่อข้อมูลแบบ real-time
- Apache ZooKeeper: เหมือนเป็น server ที่ใช้เก็บข้อมูลทีจะถูกส่งต่อให้อีกที
Author: Suphakit Annoppornchai
Credit: https://saixiii.com, http://searchcloudcomputing.techtarget.com