เผยแพร่ครั้งแรกโดย Tricore:10 กรกฎาคม 2017
Apache™ Hadoop® เป็นเฟรมเวิร์กแบบโอเพนซอร์สที่ใช้ Java ซึ่งออกแบบมาเพื่อประมวลผลข้อมูลจำนวนมากในสภาพแวดล้อมการประมวลผลแบบกระจาย Doug Cutting และ Mike Cafarella พัฒนา Hadoop ซึ่งเปิดตัวในปี 2548
Hadoop สร้างขึ้นจากฮาร์ดแวร์สำหรับสินค้าโภคภัณฑ์ โดยทำงานบนสมมติฐานพื้นฐานที่ว่าความล้มเหลวของฮาร์ดแวร์เป็นเรื่องปกติ กรอบงาน Hadoop จัดการกับความล้มเหลวเหล่านี้
ในตอนที่ 1 ของชุดบล็อกสองส่วนนี้ เราจะพูดถึงข้อมูลขนาดใหญ่ ระบบ Hadoopeco และองค์ประกอบหลักบางอย่างของเฟรมเวิร์ก Hadoop
ข้อมูลยิ่งใหญ่กว่าที่เคย
ข้อมูลมีความสำคัญต่อทุกองค์กร และบิ๊กดาต้ากำลังเปิดโอกาสใหม่ๆ สำหรับการวิเคราะห์ที่อาจนำไปสู่ข้อมูลเชิงลึกทางธุรกิจอันมีค่า บิ๊กดาต้า หมายถึงข้อมูลที่เกินความจุขององค์กรและกำลังประมวลผล
ข้อมูลขนาดใหญ่อาจมาจากเครือข่ายโซเชียล กล้องโทรทัศน์คำบรรยาย (CCTV) เซ็นเซอร์ พอร์ทัลการช็อปปิ้งออนไลน์ ข้อมูลการบริการ ระบบกำหนดตำแหน่งทั่วโลก (GPS) อุตสาหกรรมยานยนต์ และแหล่งข้อมูลอื่นๆ ที่สร้างข้อมูลจำนวนมหาศาล
บิ๊กดาต้ามีสามประเด็นหลัก ซึ่งทั้งหมดกำลังดำเนินไปอย่างรวดเร็ว:
-
ระดับเสียง :ปริมาณข้อมูลขนาดใหญ่เพิ่มขึ้นอย่างรวดเร็วจากกิกะไบต์โทเทราไบต์และเพตาไบต์ การจัดเก็บต้องใช้พื้นที่ดิสก์จำนวนมาก
-
ความเร็ว :ข้อมูลขนาดใหญ่มักจะเก็บไว้ในศูนย์ข้อมูล การส่งข้อมูลไปยังสถานีงานในพื้นที่ต้องใช้ตัวประมวลผลข้อมูลความเร็วสูง
-
วาไรตี้ :ข้อมูลสามารถจำแนกได้กว้างๆ ว่า มีโครงสร้าง ไม่มีโครงสร้าง หรือกึ่งมีโครงสร้าง
เราสามารถสรุปข้อมูลขนาดใหญ่ด้วยสมการต่อไปนี้:
ข้อมูลขนาดใหญ่ =(ปริมาณ + ความเร็ว + ความหลากหลาย) ของข้อมูล
รูปภาพต่อไปนี้แสดงภาพแนวคิดเหล่านี้
3Vs (ปริมาณ ความหลากหลาย และความเร็วแหล่งที่มาของรูปภาพ:3Vs (ปริมาณ ความหลากหลาย และความเร็ว)
ระบบนิเวศ Hadoop
คำว่า ระบบนิเวศ Hadoop หมายถึงส่วนประกอบต่างๆ ของไลบรารีซอฟต์แวร์ Apache Hadoop ระบบนิเวศนี้ประกอบด้วยชุดโมดูลต่างๆ ที่มีปฏิสัมพันธ์ซึ่งกันและกัน โมดูลเหล่านี้มีชุดเครื่องมือและอุปกรณ์เสริมที่ออกแบบมาเพื่อตอบสนองความต้องการเฉพาะที่เกี่ยวข้องกับการประมวลผลข้อมูลขนาดใหญ่ ระบบนิเวศครอบคลุมโมดูล Hadoop ทั้งหมด ซึ่งรวมถึงองค์ประกอบหลักของเฟรมเวิร์ก Hadoop ที่เรากล่าวถึงด้านล่าง รวมถึงโมดูลเสริม
ส่วนประกอบของเฟรมเวิร์ก Hadoop
กรอบงาน Hadoop ประกอบด้วยองค์ประกอบหลักดังต่อไปนี้
พื้นที่จัดเก็บแบบกระจาย
ชิ้นส่วนต่างๆ หลายชิ้นมารวมกันเพื่อเปิดใช้พื้นที่จัดเก็บแบบกระจายใน Hadoop
ระบบไฟล์แบบกระจาย Hadoop
ใน Hadoop พื้นที่จัดเก็บแบบกระจายจะเรียกว่า Hadoop Distributed FileSystem (HDFS) ระบบนี้มีที่เก็บข้อมูลสำรองและมีลักษณะดังต่อไปนี้:
-
ออกแบบมาเพื่อจัดเก็บข้อมูลบนฮาร์ดแวร์สินค้าโภคภัณฑ์ได้อย่างน่าเชื่อถือ
-
สร้างขึ้นเพื่อรองรับความล้มเหลวของฮาร์ดแวร์
-
มีไว้สำหรับไฟล์ขนาดใหญ่และการแทรกแบทช์ (เขียนครั้งเดียว อ่านหลายรอบ)
HBase
HBase เป็นฐานข้อมูล NoSQL เชิงคอลัมน์แบบกระจาย HBase ใช้ HDFS สำหรับที่เก็บข้อมูลพื้นฐานและรองรับทั้งการคำนวณแบบแบตช์โดยใช้ MapReduce และการสืบค้นแบบชี้ (การอ่านแบบสุ่ม)
HBase ยังทำงานต่อไปนี้:
-
จัดเก็บข้อมูลปริมาณมาก (มากถึงพันล้านแถว) บนคลัสเตอร์ของฮาร์ดแวร์สินค้าโภคภัณฑ์
-
จัดเก็บบันทึก เอกสาร ฟีดกิจกรรมแบบเรียลไทม์ และข้อมูลที่นำเข้าดิบจำนวนมาก
-
ดำเนินการอ่านและเขียนข้อมูลที่แอปพลิเคชัน Hadoop ใช้อย่างต่อเนื่อง
-
เปิดใช้งานการจัดเก็บข้อมูลเพื่อรวมหรือประมวลผลโดยใช้ MapReducefunctionality
-
นำเสนอแพลตฟอร์มข้อมูลสำหรับการวิเคราะห์และการเรียนรู้ของเครื่อง
HCatalog
HCatalog คือเลเยอร์การจัดการตารางและพื้นที่จัดเก็บข้อมูลสำหรับ Hadoop ที่ช่วยให้แอปพลิเคชัน Hadoop เช่น Pig™, MapReduce และ Hive™ สามารถอ่านและเขียนข้อมูลในรูปแบบตารางแทนที่จะเป็นไฟล์
นอกจากนี้ยังมีคุณสมบัติดังต่อไปนี้:
-
ตำแหน่งรวมศูนย์สำหรับจัดเก็บข้อมูลที่แอปพลิเคชัน Hadoop ใช้
-
ที่เก็บข้อมูลที่ใช้ซ้ำได้สำหรับกระบวนการ Hadoop ที่จัดลำดับและทำซ้ำ
-
การจัดเก็บข้อมูลในลักษณะนามธรรมเชิงสัมพันธ์
-
การจัดการข้อมูลเมตา
การประมวลผลแบบกระจาย
Hadoop อาศัย MapReduce และอีกานักเจรจาต่อรองทรัพยากร (YARN) เพื่อเปิดใช้งานการประมวลผลแบบกระจาย
MapReduce
MapReduce เป็นรูปแบบการประมวลผลข้อมูลแบบกระจายและสภาพแวดล้อมการดำเนินการที่ทำงานบนคลัสเตอร์สินค้าโภคภัณฑ์ขนาดใหญ่ MapReduce ช่วยให้คุณสร้างข้อมูลเชิงลึกจากข้อมูลที่คุณเก็บไว้ ใช้อัลกอริธึม MapReduce เพื่อแบ่งการทำงานทั้งหมดออกเป็นฟังก์ชันแผนที่หรือลด
MapReduce มีข้อดีดังต่อไปนี้:
-
การรวม (การนับ การเรียงลำดับ และการกรอง) ในชุดข้อมูลขนาดใหญ่และแตกต่างกัน
-
แผนที่ขนานที่ปรับขนาดได้หรือลดงาน
-
การดำเนินงานแบบกระจาย
เส้นด้าย
YARN คือเลเยอร์การจัดการคลัสเตอร์และทรัพยากรสำหรับ Apache Hadoopecosystem เป็นหนึ่งในคุณสมบัติหลักในเฟรมเวิร์ก Hadoop รุ่นที่สอง
YARN มีฟังก์ชันดังต่อไปนี้:
-
มันจัดกำหนดการแอปพลิเคชันเพื่อจัดลำดับความสำคัญของงานและดูแลระบบการวิเคราะห์ข้อมูลขนาดใหญ่
-
ในฐานะที่เป็นส่วนหนึ่งของสถาปัตยกรรมที่ยิ่งใหญ่กว่านี้ YARN จะรวบรวมและจัดเรียงข้อมูลเพื่อดำเนินการสืบค้นข้อมูลเฉพาะสำหรับการดึงข้อมูล
-
ช่วยจัดสรรทรัพยากรให้กับแอปพลิเคชันเฉพาะและจัดการงานตรวจสอบทรัพยากรประเภทอื่นๆ
การเรียนรู้ของเครื่อง
Hadoop รองรับแมชชีนเลิร์นนิงผ่าน Apache Mahout ซึ่งเป็นโครงการโอเพ่นซอร์สที่ใช้เป็นหลักในการสร้างอัลกอริธึมการเรียนรู้ของเครื่องที่ปรับขนาดได้เป็นหลัก Mahout เป็นเฟรมเวิร์กการขุดข้อมูลที่โดยทั่วไปจะทำงานกับโครงสร้างพื้นฐาน Hadoop ในพื้นหลังเพื่อจัดการข้อมูลปริมาณมหาศาล
ควาญช้างมีความสามารถดังต่อไปนี้:
-
เฟรมเวิร์กที่พร้อมใช้งานสำหรับการดำเนินการขุดข้อมูลกับข้อมูลปริมาณมาก
-
อัลกอริทึมที่เขียนทับ Hadoop และช่วยให้ Mahout ทำงานได้ดีในสภาพแวดล้อมแบบกระจาย
-
วิเคราะห์ชุดข้อมูลขนาดใหญ่อย่างรวดเร็ว
-
ความสามารถด้านฟิตเนสแบบกระจายสำหรับการเขียนโปรแกรมเชิงวิวัฒนาการ นอกจากนี้ยังมีไลบรารีเมทริกซ์และเวกเตอร์
การตรวจสอบและกำหนดเวลาเวิร์กโฟลว์
Oozie เป็นระบบของ Hadoop สำหรับจัดการงาน ตัวจัดกำหนดการเวิร์กโฟลว์นี้รันเวิร์กโฟลว์สำหรับงานที่ขึ้นต่อกัน ช่วยให้ผู้ใช้สามารถสร้าง acyclicgraphs (DAG) ของเวิร์กโฟลว์ที่ทำงานแบบขนานและแบบต่อเนื่องใน Hadoop
Oozie มีความยืดหยุ่นสูง คุณสามารถเริ่ม หยุด ระงับ และเรียกใช้งานใหม่ได้อย่างง่ายดาย Oozie ยังทำให้การเรียกใช้เวิร์กโฟลว์ที่ล้มเหลวอีกครั้งเป็นเรื่องง่ายมาก
Oozie สามารถปรับขนาดได้และสามารถจัดการการดำเนินการตามกำหนดเวลาของเวิร์กโฟลว์นับพัน (แต่ละงานประกอบด้วยงานหลายสิบงาน) ในคลัสเตอร์ Hadoop
การเขียนสคริปต์
นักพัฒนาสามารถใช้ Apache Pig เพื่อเขียนสคริปต์ใน Hadoop การเขียนสคริปต์ใช้ภาษาที่ใช้ aSQL และสภาพแวดล้อมการดำเนินการสำหรับการสร้างการแปลง MapReduce ที่ซับซ้อน แม้ว่า Pig จะเขียนด้วยภาษาการเข้ารหัส Pig Latin แต่จะถูกแปลเป็นงาน MapReduce ที่ปฏิบัติการได้ Pig ยังช่วยให้ผู้ใช้สร้างฟังก์ชันส่วนขยายหรือกำหนดโดยผู้ใช้ (UDF) โดยใช้ Java
หมูยังเสนอสิ่งต่อไปนี้:
-
สภาพแวดล้อมการเขียนสคริปต์สำหรับดำเนินงาน Extract-Transform-Load (ETL) และดำเนินการกับข้อมูลดิบใน HDFS
-
ภาษาที่ใช้ SQL สำหรับการสร้างและเรียกใช้ฟังก์ชัน Map Reduce ที่ซับซ้อน
-
การประมวลผลข้อมูล การต่อเชื่อม และการจัดแผนผังบนชุดข้อมูลขนาดใหญ่และแตกต่างกัน
-
ภาษาการไหลของข้อมูลระดับสูง
-
ชั้นของนามธรรมที่ช่วยให้คุณมุ่งเน้นไปที่การประมวลผลข้อมูล
บทสรุป
Hadoop และกรอบงาน MapReduce มีฐานผู้ใช้จำนวนมากในชุมชนข้อมูลชีวสารสนเทศแล้ว โดยเฉพาะอย่างยิ่งในด้านการวิเคราะห์ลำดับถัดไป ความนิยมในด้านนี้ส่วนหนึ่งเป็นผลมาจาก HDFS ที่ทนทานและทนต่อข้อผิดพลาด
HBase เพิ่มฐานข้อมูลแบบกระจาย ทนทานต่อข้อผิดพลาด ปรับขนาดได้ ซึ่งสร้างขึ้นบนระบบไฟล์ HDFS พร้อมสุ่มอ่านและเขียนข้อมูลแบบเรียลไทม์ คุณอาจต้องการลองใช้ Mahout สำหรับสร้างไลบรารีการเรียนรู้ของเครื่องที่ปรับขนาดได้ หรือ Pig สำหรับแบตช์ กำลังประมวลผลข้อมูล
ในส่วนที่ 2 ของชุดนี้ เราจะพูดถึงองค์ประกอบอื่นๆ ของระบบนิเวศ Hadoop
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม