Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ข้อมูลพื้นฐานเกี่ยวกับระบบนิเวศ Hadoop:ตอนที่ 1

เผยแพร่ครั้งแรกโดย Tricore:10 กรกฎาคม 2017

Apache™ Hadoop® เป็นเฟรมเวิร์กแบบโอเพนซอร์สที่ใช้ Java ซึ่งออกแบบมาเพื่อประมวลผลข้อมูลจำนวนมากในสภาพแวดล้อมการประมวลผลแบบกระจาย Doug Cutting และ Mike Cafarella พัฒนา Hadoop ซึ่งเปิดตัวในปี 2548

Hadoop สร้างขึ้นจากฮาร์ดแวร์สำหรับสินค้าโภคภัณฑ์ โดยทำงานบนสมมติฐานพื้นฐานที่ว่าความล้มเหลวของฮาร์ดแวร์เป็นเรื่องปกติ กรอบงาน Hadoop จัดการกับความล้มเหลวเหล่านี้

ในตอนที่ 1 ของชุดบล็อกสองส่วนนี้ เราจะพูดถึงข้อมูลขนาดใหญ่ ระบบ Hadoopeco และองค์ประกอบหลักบางอย่างของเฟรมเวิร์ก Hadoop

ข้อมูลยิ่งใหญ่กว่าที่เคย

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

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

บิ๊กดาต้ามีสามประเด็นหลัก ซึ่งทั้งหมดกำลังดำเนินไปอย่างรวดเร็ว:

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

  • ความเร็ว :ข้อมูลขนาดใหญ่มักจะเก็บไว้ในศูนย์ข้อมูล การส่งข้อมูลไปยังสถานีงานในพื้นที่ต้องใช้ตัวประมวลผลข้อมูลความเร็วสูง

  • วาไรตี้ :ข้อมูลสามารถจำแนกได้กว้างๆ ว่า มีโครงสร้าง ไม่มีโครงสร้าง หรือกึ่งมีโครงสร้าง

เราสามารถสรุปข้อมูลขนาดใหญ่ด้วยสมการต่อไปนี้:

ข้อมูลขนาดใหญ่ =(ปริมาณ + ความเร็ว + ความหลากหลาย) ของข้อมูล

รูปภาพต่อไปนี้แสดงภาพแนวคิดเหล่านี้

ข้อมูลพื้นฐานเกี่ยวกับระบบนิเวศ Hadoop:ตอนที่ 1 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

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม