Apache Hadoop บน Amazon EMR

เหตุใดต้องใช้ Apache Hadoop บน EMR

Apache™ Hadoop® คือโปรเจกต์ซอฟต์แวร์แบบโอเพนซอร์สที่สามารถใช้เพื่อประมวลผลชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ แทนที่จะใช้คอมพิวเตอร์ความจุขนาดใหญ่หนึ่งเครื่องเพื่อประมวลผลและจัดเก็บข้อมูล Hadoop ช่วยให้คุณสามารถจัดคลัสเตอร์ฮาร์ดแวร์ทั่วไปไว้ด้วยกันเพื่อวิเคราะห์ชุดข้อมูลปริมาณมหาศาลพร้อมกันได้

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

แอปพลิเคชันและเฟรมเวิร์กในระบบนิเวศของ Hadoop

โดยปกติแล้ว Hadoop จะหมายถึงโปรเจกต์ Apache Hadoop จริงๆ ซึ่งประกอบด้วย MapReduce (เฟรมเวิร์กดำเนินการ) YARN (ตัวจัดการทรัพยากร) และ HDFS (พื้นที่จัดเก็บแบบกระจาย) คุณยังสามารถติดตั้ง Apache Tez ซึ่งเป็นเฟรมเวิร์กรุ่นใหม่ที่สามารถใช้เป็นกลไกดำเนินการแทน Hadoop MapReduce ได้ Amazon EMR ยังประกอบด้วย EMRFS ซึ่งเป็นตัวเชื่อมต่อที่ทำให้ Hadoop ใช้ Amazon S3 เป็นเลเยอร์พื้นที่จัดเก็บได้

แต่ก็ยังมีแอปพลิเคชันและเฟรมเวิร์กอื่นๆ ในระบบนิเวศของ Hadoop ซึ่งรวมถึงเครื่องมือที่เปิดใช้การสืบค้นที่มีเวลาแฝงต่ำ GUI สำหรับการสืบค้นแบบโต้ตอบ อินเทอร์เฟซต่างๆ เช่น ฐานข้อมูล SQL และ NoSQL แบบกระจาย ระบบนิเวศ Hadoop ประกอบด้วยเครื่องมือโอเพนซอร์สต่างๆ ซึ่งออกแบบมาเพื่อสร้างฟังก์ชันเพิ่มเติมในองค์ประกอบหลักของ Hadoop และคุณยังสามารถใช้ Amazon EMR เพื่อติดตั้งและกำหนดค่าเครื่องมือ เช่น Hive, Pig, Hue, Ganglia, Oozie และ HBase บนคลัสเตอร์ได้อย่างง่ายดาย คุณยังสามารถรันเฟรมเวิร์กอื่น ๆ เช่น Apache Spark สำหรับการประมวลผลในหน่วยความจำหรือ Presto สำหรับ SQL แบบโต้ตอบนอกเหนือจาก Hadoop บน Amazon EMR

Hadoop มีองค์ประกอบพื้นฐานดังนี้

Amazon EMR ติดตั้งและกำหนดค่าแอปพลิเคชันในโปรเจกต์ Hadoop ตามโปรแกรมซึ่งได้แก่ Hadoop MapReduce, YARN, HDFS และ Apache Tez ในโหนดต่าง ๆ ในคลัสเตอร์ของคุณ

กลไกดำเนินการ Hadoop MapReduce และ Tez ในระบบนิเวศของ Hadoop จะประมวลผลปริมาณงานโดยใช้เฟรมเวิร์กซึ่งแบ่งงานออกเป็นงานชิ้นเล็กๆ ที่สามารถกระจายไปยังโหนดต่างๆ ในคลัสเตอร์ Amazon EMR ได้ โดยกลไกเหล่านี้สร้างขึ้นโดยคาดว่าแมชชีนในคลัสเตอร์ของคุณอาจทำงานล้มเหลวได้ทุกเมื่อและออกแบบให้มีความทนทานต่อความเสียหาย หากเซิร์ฟเวอร์ที่รันงานอยู่ขัดข้อง Hadoop ก็จะรันงานดังกล่าวบนแมชชีนเครื่องอื่นอีกครั้งจนกว่าจะดำเนินการสำเร็จ

คุณสามารถเขียนโปรแกรม MapReduce และ Tez ได้เป็นภาษา Java โดยใช้การสตรีมผ่าน Hadoop เพื่อใช้สคริปต์แบบกำหนดเองแบบพร้อมๆ กัน ใช้ประโยชน์จาก Hive และ Pig เพื่อกำหนดสาระสำคัญระดับสูงใน MapReduce รวมทั้ง Tez หรือเครื่องมืออื่นๆ เพื่อโต้ตอบกับ Hadoop

นับตั้งแต่ Hadoop 2 เป็นต้นไป การจัดการทรัพยากรจะทำโดย Yet Another Resource Negotiator (YARN) YARN จะติดตามทรัพยากรทั้งหมดในคลัสเตอร์ของคุณ และช่วยตรวจสอบให้แน่ใจว่า ทรัพยากรเหล่านี้จะได้รับการจัดสรรแบบไดนามิกเพื่อบรรลุงานต่างๆ ในงานประมวลผลของคุณ YARN ยังสามารถจัดการปริมาณงาน MapReduce และ Tez รวมทั้งเฟรมเวิร์กแบบกระจายอื่นๆ เช่น Apache Spark

เมื่อใช้ EMR File System (EMRFS) ในคลัสเตอร์ Amazon EMR คุณจะสามารถใช้ประโยชน์จาก Amazon S3 เป็นเลเยอร์ข้อมูลสำหรับ Hadoop ได้ Amazon S3 สามารถปรับขนาดได้ในระดับสูง มีค่าใช้จ่ายต่ำ และออกแบบมาให้มีความคงทน ซึ่งทำให้กลายเป็นพื้นที่จัดเก็บข้อมูลที่ยอดเยี่ยมสำหรับการประมวลผล Big Data เมื่อจัดเก็บข้อมูลใน Amazon S3 คุณจะแยกแยะเลเยอร์การประมวลผลจากเลเยอร์พื้นที่จัดเก็บได้ ซึ่งทำให้คุณสามารถปรับขนาดคลัสเตอร์ Amazon EMR ตามจำนวน CPU และหน่วยความจำที่ต้องการสำหรับปริมาณงาน แทนที่จะต้องมีโหนดเพิ่มเติมในคลัสเตอร์เพื่อเพิ่มพื้นที่จัดเก็บในคลัสเตอร์ให้ได้มากที่สุด นอกจากนี้ คุณยังสามารถยกเลิกคลัสเตอร์ Amazon EMR ได้เมื่อไม่ได้ใช้งานเพื่อประหยัดค่าใช้จ่าย ขณะเดียวกันข้อมูลของคุณก็จะยังคงอยู่ใน Amazon S3

EMRFS ได้รับการปรับให้เหมาะสมกับ Hadoop เพื่ออ่านและเขียนไปยัง Amazon S3 ได้โดยตรงพร้อมๆ กันอย่างมีประสิทธิภาพ และสามารถประมวลผลอ็อบเจ็กต์ที่เข้ารหัสด้วยการเข้ารหัสฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ของ Amazon S3 ได้ EMRFS ช่วยให้คุณใช้ Amazon S3 เป็น Data Lake ได้ และยังสามารถใช้ Hadoop ใน Amazon EMR เป็นเลเยอร์การสืบค้นแบบยืดหยุ่นได้ด้วย

Hadoop ยังประกอบด้วยระบบพื้นที่จัดเก็บแบบกระจาย นั่นคือ Hadoop Distributed File System (HDFS) ซึ่งจะจัดเก็บข้อมูลทั่วดิสก์ในระบบของคลัสเตอร์ให้เป็นบล็อกขนาดใหญ่ HDFS มีปัจจัยการจำลองที่กำหนดค่าได้ (มีค่าเริ่มต้น 3 เท่า) ซึ่งทำให้มีความพร้อมใช้งานและความคงทนเพิ่มขึ้น HDFS จะตรวจสอบการจำลองและสร้างสมดุลให้ข้อมูลในโหนดต่างๆ เมื่อโหนดทำงานล้มเหลวและมีการเพิ่มโหนดใหม่

HDFS ได้รับการติดตั้งไว้ใน Hadoop ในคลัสเตอร์ Amazon EMR โดยอัตโนมัติ และคุณจะใช้ HDFS ร่วมกับ Amazon S3 เพื่อจัดเก็บข้อมูลอินพุตและเอาต์พุตได้ คุณสามารถเข้ารหัส HDFS ได้อย่างง่ายดายโดยใช้การกำหนดค่าความปลอดภัยของ Amazon EMR นอกจากนี้ Amazon EMR ยังกำหนดค่า Hadoop ให้ใช้ HDFS และดิสก์ภายในเครื่องสำหรับข้อมูลระดับปานกลางที่สร้างขึ้นในระหว่างงานของ Hadoop MapReduce แม้ว่าข้อมูลอินพุตจะอยู่ใน Amazon S3 ก็ตาม

ข้อดีของ Hadoop บน Amazon EMR

คุณสามารถเริ่มใช้คลัสเตอร์ Hadoop ใหม่แบบไดนามิกได้อย่างรวดเร็ว หรือเพิ่มเซิร์ฟเวอร์ไปยังคลัสเตอร์ Amazon EMR ที่คุณมีอยู่แล้วเพื่อลดเวลาในการทำให้ทรัพยากรพร้อมใช้งานสำหรับผู้ใช้หรือ Data Scientist ลงได้อย่างมาก การใช้ Hadoop บนแพลตฟอร์ม AWS สามารถเพิ่มความคล่องตัวในองค์กรได้อย่างมากโดยการลดค่าใช้จ่ายและเวลาที่ใช้ในการจัดสรรทรัพยากรสำหรับการทดลองและพัฒนา

การกำหนดค่า การจัดเครือข่าย การติดตั้งเซิร์ฟเวอร์ การกำหนดค่าความปลอดภัย และการบำรุงรักษาเพื่อดูแลระบบอย่างต่อเนื่องสำหรับ Hadoop อาจเป็นกิจกรรมที่ซับซ้อนและท้าทาย ในฐานะบริการที่มีการจัดการ Amazon EMR จะแก้ไขปัญหาเกี่ยวกับข้อกำหนดโครงสร้างพื้นฐาน Hadoop เพื่อให้คุณมุ่งความสนใจไปที่ธุรกิจหลักได้

คุณสามารถผสานรวมสภาพแวดล้อม Hadoop เข้ากับบริการอื่น ๆ เช่น Amazon S3, Amazon Kinesis, Amazon Redshift และ Amazon DynamoDB เพื่อเปิดใช้การเคลื่อนย้ายข้อมูล เวิร์กโฟลว์ และการวิเคราะห์ในบริการที่หลากหลายมากบนแพลตฟอร์ม AWS นอกจากนี้ คุณยังสามารถใช้แคตตาล็อกข้อมูลของ AWS Glue เป็นคลังข้อมูลเมตาที่มีการจัดการสำหรับ Apache Hive และ Apache Spark ได้อีกด้วย

งาน Hadoop ต่างๆ จะมีความไม่แน่นอนโดยธรรมชาติ ตัวอย่างเช่น งาน ETL อาจรันเป็นรายชั่วโมง รายวัน หรือรายเดือน ในขณะที่งานสร้างโมเดลสำหรับบริษัทด้านการเงินหรือการจัดลำดับทางพันธุกรรมอาจเกิดขึ้นเพียงไม่กี่ครั้งต่อปี การใช้ Hadoop บน Amazon EMR ช่วยให้คุณเร่งความเร็วของคลัสเตอร์ปริมาณงานเหล่านี้ได้อย่างง่ายดาย บันทึกผลลัพธ์ และปิดใช้งานทรัพยากร Hadoop เมื่อไม่ต้องการอีกต่อไป เพื่อหลีกเลี่ยงค่าใช้จ่ายอันเกิดจากโครงสร้างพื้นฐานที่ไม่จำเป็น EMR 6.x สนับสนุน Hadoop 3 ซึ่งช่วยให้ YARN NodeManager สามารถเปิดใช้งานคอนเทนเนอร์ได้ทั้งโดยตรงบนโฮสต์คลัสเตอร์ EMR และภายในคอนเทนเนอร์ Docker โปรดดูข้อมูลเพิ่มเติมจากเอกสารประกอบของเรา

เมื่อใช้ Hadoop บน Amazon EMR คุณจะมีความยืดหยุ่นในการเปิดใช้คลัสเตอร์จำนวนใดก็ได้ใน Availability Zone และในรีเจี้ยน AWS ใดก็ได้ตามต้องการ สามารถหลีกเลี่ยงปัญหาหรือภัยคุกคามที่อาจเกิดขึ้นในภูมิภาคหรือโซนหนึ่งได้อย่างง่ายดายโดยการเปิดใช้คลัสเตอร์ในอีกโซนหนึ่งได้ภายในไม่กี่นาที

บ่อยครั้งที่การวางแผนความจุล่วงหน้าก่อนการปรับใช้สภาพแวดล้อม Hadoop อาจส่งผลให้เกิดทรัพยากรที่ไม่ได้ใช้งานซึ่งมีราคาแพง รวมถึงข้อจำกัดด้านทรัพยากร เมื่อใช้ Amazon EMR คุณสามารถสร้างคลัสเตอร์ตามความจุที่ต้องการได้ในไม่กี่นาที และใช้ EMR Managed Scaling เพื่อเพิ่มและลดขนาดโหนดได้แบบไดนามิก

Hadoop และ Big Data เกี่ยวข้องกันอย่างไร

โดยทั่วไปจะมีการใช้ Hadoop เพื่อประมวลผลเวิร์กโหลด Big Data เนื่องจากสามารถปรับขนาดได้หลากหลายมาก หากต้องการเพิ่มพลังการประมวลผลของคลัสเตอร์ Hadoop ให้เพิ่มเซิร์ฟเวอร์ที่มีทรัพยากร CPU และหน่วยความจำที่จำเป็น เพื่อตอบโจทย์ความต้องการของคุณ

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

กรณีใช้งาน

Apache และ Hadoop เป็นเครื่องหมายการค้าของ Apache Software Foundation

คุณสามารถใช้ Hadoop เพื่อวิเคราะห์ข้อมูลคลิกสตรีมเพื่อแบ่งกลุ่มผู้ใช้และเข้าใจถึงความชอบของผู้ใช้ได้ ผู้ลงโฆษณายังสามารถวิเคราะห์บันทึกคลิกสตรีมและข้อมูลอิมเพรสชันการโฆษณาเพื่อแสดงโฆษณาที่มีประสิทธิภาพมากขึ้นได้

เรียนรู้วิธีที่ Razorfish ใช้ Hadoop บน Amazon EMR เพื่อวิเคราะห์สตรีมคลิก

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

เรียนรู้วิธีที่ Yelp ใช้ Hadoop บน Amazon EMR เพื่อขับเคลื่อนฟีเจอร์ที่สำคัญของเว็บไซต์

 

แอปพลิเคชันระบบนิเวศของ Hadoop เช่น Hive ช่วยให้ผู้ใช้สามารถใช้ประโยชน์จาก Hadoop MapReduce โดยใช้อินเทอร์เฟซ SQL เพื่อเปิดใช้การวิเคราะห์ในคลังข้อมูลขนาดใหญ่แบบกระจาย และทนทานต่อความเสียหาย ใช้ Hadoop เพื่อจัดเก็บข้อมูลของคุณและช่วยให้ผู้ใช้ส่งการสืบค้นข้อมูลได้ในทุกขนาด

ดูวิธีที่ Netflix ใช้ Hadoop บน Amazon EMR เพื่อรันคลังข้อมูลระดับเพตะไบต์

สามารถนำ Hadoop ไปใช้ประมวลผลข้อมูลจีโนมจำนวนมหาศาลและชุดข้อมูลทางวิทยาศาสตร์ขนาดใหญ่อื่นๆ ได้อย่างรวดเร็วและมีประสิทธิภาพ AWS ได้สร้างข้อมูล 1000 Genomes Project ซึ่งพร้อมให้ชุมชนใช้งานแบบสาธารณะได้โดยไม่มีค่าใช้จ่าย

อ่านข้อมูลเพิ่มเติมเกี่ยวกับจีโนมิกส์บน AWS

 

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

อ่านข้อมูลเกี่ยวกับวิธีที่ Euclid ใช้ Hadoop บน Amazon EMR สำหรับ ETL และการผนวกรวมข้อมูล