ประโยชน์ของการใช้HadoopหรือHBaseหรือHiveคืออะไร
จากความเข้าใจของฉันHBaseหลีกเลี่ยงการใช้แผนที่ลดและมีการจัดเก็บคอลัมน์ที่มุ่งเน้นด้านบนของ HDFS ไฮฟ์เป็นแบบ SQL อินเตอร์เฟซสำหรับHadoopและHBase
ฉันต้องการทราบว่าHiveเปรียบเทียบกับPigอย่างไร
ประโยชน์ของการใช้HadoopหรือHBaseหรือHiveคืออะไร
จากความเข้าใจของฉันHBaseหลีกเลี่ยงการใช้แผนที่ลดและมีการจัดเก็บคอลัมน์ที่มุ่งเน้นด้านบนของ HDFS ไฮฟ์เป็นแบบ SQL อินเตอร์เฟซสำหรับHadoopและHBase
ฉันต้องการทราบว่าHiveเปรียบเทียบกับPigอย่างไร
คำตอบ:
MapReduce เป็นเพียงกรอบการคำนวณ HBase ไม่มีส่วนเกี่ยวข้องกับมัน ที่กล่าวว่าคุณสามารถนำหรือดึงข้อมูลไปยัง / จาก HBase ได้อย่างมีประสิทธิภาพโดยการเขียนงาน MapReduce หรือคุณสามารถเขียนโปรแกรมแบบต่อเนื่องโดยใช้ HBase API อื่น ๆ เช่น Java เพื่อใส่หรือดึงข้อมูล แต่เราใช้ Hadoop, HBase และอื่น ๆ เพื่อจัดการกับข้อมูลจำนวนมหาศาลดังนั้นมันจึงไม่สมเหตุสมผลนัก การใช้โปรแกรมตามลำดับปกติจะไม่มีประสิทธิภาพสูงเมื่อข้อมูลของคุณมีขนาดใหญ่เกินไป
กลับมาที่ส่วนแรกของคำถามของคุณ Hadoop เป็นพื้น 2 สิ่งคือกระจาย FileSystem (HDFS) + A กรอบการคำนวณหรือการประมวลผล (MapReduce) เช่นเดียวกับ FS อื่น ๆ HDFS ยังให้บริการพื้นที่จัดเก็บข้อมูลของเรา แต่ในลักษณะการรับข้อมูลความผิดพลาดด้วยปริมาณงานสูงและความเสี่ยงต่อการสูญหายของข้อมูล (เนื่องจากการจำลองแบบ) แต่เป็น FS ที่ HDFS ขาดสุ่มอ่านและเขียนเข้าถึง นี่คือสิ่งที่ HBase เข้ามาในภาพ มันเป็นคลังข้อมูลขนาดใหญ่แบบกระจายปรับขนาดได้ซึ่งจำลองตาม BigTable ของ Google มันเก็บข้อมูลเป็นคู่ของคีย์ / ค่า
มาถึงรังผึ้ง มันให้บริการด้านคลังข้อมูลแก่เราบนคลัสเตอร์ Hadoop ที่มีอยู่ พร้อมกับให้SQL เช่น interface ซึ่งทำให้งานของคุณง่ายขึ้นในกรณีที่คุณมาจากพื้นหลัง SQL คุณสามารถสร้างตารางใน Hive และเก็บข้อมูลได้ที่นี่ นอกจากนั้นคุณยังสามารถแมปตาราง HBase ที่มีอยู่ไปยัง Hive และดำเนินการกับมันได้
ในขณะที่ Pig นั้นเป็นภาษาดาต้าโฟลว์ที่ช่วยให้เราสามารถประมวลผลข้อมูลจำนวนมหาศาลได้อย่างง่ายดายและรวดเร็ว หมูโดยทั่วไปมี 2 ส่วนหมูล่ามและภาษาPigLatin คุณเขียนสคริปต์ Pig ใน PigLatin และใช้ล่าม Pig ในการประมวลผล หมูทำให้ชีวิตของเราง่ายขึ้นมิฉะนั้นการเขียน MapReduce นั้นไม่ใช่เรื่องง่ายเสมอไป ในความเป็นจริงในบางกรณีมันอาจกลายเป็นความเจ็บปวด
ฉันได้เขียนบทความเกี่ยวกับการเปรียบเทียบสั้น ๆ ของเครื่องมือต่าง ๆ ของระบบนิเวศ Hadoopเมื่อเร็ว ๆ นี้ มันไม่ใช่การเปรียบเทียบเชิงลึก แต่เป็นการแนะนำสั้น ๆ เกี่ยวกับเครื่องมือเหล่านี้ซึ่งสามารถช่วยคุณในการเริ่มต้น (เพียงเพิ่มคำตอบของฉันไม่มีการส่งเสริมการขายด้วยตนเอง)
ข้อความค้นหาทั้ง Hive และ Pig จะถูกแปลงเป็นงาน MapReduce ภายใต้ประทุน
HTH
yarn
ระบบนิเวศ Hadoop :(.
ฉันใช้แพลตฟอร์ม Hive Data ใน บริษัท ของฉันเมื่อเร็ว ๆ นี้และสามารถพูดกับมันในคนแรกตั้งแต่ฉันเป็นทีมชายคนหนึ่ง
ฉันเปรียบเทียบตัวเลือกต่อไปนี้:
HBaseเป็นเหมือนแผนที่ หากคุณรู้กุญแจคุณสามารถรับค่าได้ทันที แต่ถ้าคุณต้องการทราบจำนวนคีย์จำนวนเต็มใน Hbase อยู่ระหว่าง 1000000 ถึง 2000000 ที่ไม่เหมาะสำหรับHbaseเพียงอย่างเดียว
หากคุณมีข้อมูลที่จะต้องมีการรวบรวมรีดขึ้นวิเคราะห์ในแถวแล้วพิจารณาHive
หวังว่านี่จะช่วยได้
Hiveจริงหิน ... ฉันรู้ว่าฉันยังมีชีวิตอยู่มันเป็นเวลา 12 เดือนในขณะนี้ ... ดังนั้นไม่HBase ...
Hadoopเป็นเฟรมเวิร์กที่อนุญาตให้ทำการประมวลผลชุดข้อมูลขนาดใหญ่แบบกระจายข้ามกลุ่มคอมพิวเตอร์โดยใช้โมเดลการเขียนโปรแกรมอย่างง่าย
มีสี่โมดูลหลักใน Hadoop
Hadoop Common : ยูทิลิตี้ทั่วไปที่สนับสนุนโมดูล Hadoop อื่น ๆ
Hadoop Distributed File System ( HDFS ™ ): ระบบไฟล์แบบกระจายที่ให้การเข้าถึงข้อมูลแอ็พพลิเคชัน
Hadoop YARN : เฟรมเวิร์กสำหรับการจัดตารางเวลางานและการจัดการทรัพยากรคลัสเตอร์
Hadoop MapReduce : ระบบที่ใช้ YARN สำหรับการประมวลผลแบบขนานของชุดข้อมูลขนาดใหญ่
ก่อนที่จะดำเนินการเพิ่มเติมโปรดทราบว่าเรามีข้อมูลสามประเภทที่แตกต่างกัน
โครงสร้าง : ข้อมูลที่มีโครงสร้างมีสคีมาที่แข็งแกร่งและสคีมาจะถูกตรวจสอบในระหว่างการดำเนินการเขียนและอ่าน เช่นข้อมูลในระบบ RDBMS เช่น Oracle, MySQL Server เป็นต้น
ไม่มีโครงสร้าง : ข้อมูลไม่มีโครงสร้างใด ๆ และสามารถเป็นรูปแบบใดก็ได้ - บันทึกการใช้เว็บเซิร์ฟเวอร์อีเมลรูปภาพ ฯลฯ
กึ่งโครงสร้าง : ข้อมูลไม่ได้มีโครงสร้างอย่างเคร่งครัด แต่มีโครงสร้างบางอย่าง เช่นไฟล์ XML
ขึ้นอยู่กับประเภทของข้อมูลที่จะประมวลผลเราต้องเลือกเทคโนโลยีที่เหมาะสม
บางโครงการเพิ่มเติมซึ่งเป็นส่วนหนึ่งของ Hadoop:
HBase ™ : ฐานข้อมูลแบบกระจายปรับขนาดได้ที่รองรับการจัดเก็บข้อมูลที่มีโครงสร้างสำหรับตารางขนาดใหญ่
Hive ™: โครงสร้างพื้นฐานคลังข้อมูลที่ให้การสรุปข้อมูลและการสอบถามเฉพาะกิจ
Pig ™ : ภาษากระแสข้อมูลระดับสูงและกรอบการดำเนินการสำหรับการคำนวณแบบขนาน
การเปรียบเทียบHive Vs PIGสามารถพบได้ในบทความนี้และโพสต์อื่น ๆ ของฉันที่คำถาม SE นี้
HBASEจะไม่แทนที่แผนที่ย่อ HBaseเป็นฐานข้อมูลแบบกระจายที่ปรับขนาดได้ & การลดแผนที่เป็นรูปแบบการเขียนโปรแกรมสำหรับการประมวลผลข้อมูลแบบกระจาย การลดแผนที่อาจกระทำกับข้อมูลใน HBASE ในการประมวลผล
คุณสามารถใช้HIVE / HBASEสำหรับข้อมูลที่มีโครงสร้าง / กึ่งโครงสร้างและประมวลผลด้วย Hadoop Map Reduce
คุณสามารถใช้SQOOPเพื่อนำเข้าข้อมูลที่มีโครงสร้างจากฐานข้อมูล RDBMS ดั้งเดิม Oracle, SQL Server และประมวลผลด้วย Hadoop Map Reduce
คุณสามารถใช้FLUMEสำหรับการประมวลผลข้อมูลและกระบวนการที่ไม่มีโครงสร้างด้วย Hadoop Map Reduce
มีลักษณะที่: Hadoop กรณีการใช้งาน
Hiveควรใช้สำหรับการวิเคราะห์ข้อมูลที่รวบรวมในช่วงระยะเวลาหนึ่ง เช่นคำนวณแนวโน้มสรุปบันทึกเว็บไซต์ แต่ไม่สามารถใช้สำหรับการค้นหาตามเวลาจริง
HBaseเหมาะสำหรับการสอบถาม Big Data แบบเรียลไทม์ Facebook ใช้สำหรับการส่งข้อความและการวิเคราะห์ตามเวลาจริง
PIGสามารถใช้ในการสร้างดาต้าโฟลว์, เรียกใช้งานตามกำหนดเวลา, บีบอัดข้อมูลจำนวนมากรวม / สรุปและจัดเก็บลงในระบบฐานข้อมูลที่เกี่ยวข้อง เหมาะสำหรับการวิเคราะห์แบบเฉพาะกิจ
Hiveสามารถใช้สำหรับการวิเคราะห์ข้อมูลแบบเฉพาะกิจ แต่ไม่สามารถรองรับรูปแบบข้อมูลที่ไม่มีโครงสร้างทั้งหมดซึ่งแตกต่างจาก PIG
พิจารณาว่าคุณทำงานกับ RDBMS และต้องเลือกสิ่งที่จะใช้ - การสแกนตารางเต็มรูปแบบหรือการเข้าถึงดัชนี - แต่เพียงหนึ่งในนั้น
หากคุณเลือกการสแกนแบบเต็มตาราง - ใช้ไฮฟ์ หากเข้าถึงดัชนี - HBase
สำหรับเปรียบเทียบระหว่าง Hadoop Vs คาสซานดรา / HBase อ่านโพสต์
โดยทั่วไป HBase ช่วยให้การอ่านและเขียนได้อย่างรวดเร็วด้วยความสามารถในการปรับขยายได้ รวดเร็วและปรับขนาดได้อย่างไร Facebookใช้เพื่อจัดการสถานะผู้ใช้รูปภาพข้อความแชท ฯลฯ HBase นั้นรวดเร็วมากบางครั้ง Facebook ได้รับการพัฒนาโดยใช้ HBase เป็นแหล่งข้อมูลสำหรับ Hive เอง
Where As Hive เป็นเหมือนโซลูชันคลังข้อมูลมากขึ้น คุณสามารถใช้ไวยากรณ์ที่คล้ายกับ SQL เพื่อเคียวรีเนื้อหา Hive ซึ่งส่งผลให้งานลดขนาดแผนที่ ไม่เหมาะสำหรับระบบที่รวดเร็วและทำธุรกรรม
ฉันทำงานเกี่ยวกับการประมวลผลสถาปัตยกรรมแลมบ์ดาแบบเรียลไทม์และโหลดเป็นชุด การประมวลผลแบบเรียลไทม์จำเป็นต้องมีการตัดสินใจที่รวดเร็วในกรณีของสัญญาณเตือนไฟไหม้ส่งโดยเซ็นเซอร์หรือการตรวจจับการฉ้อโกงในกรณีของการทำธุรกรรมธนาคาร การประมวลผลแบบแบตช์จำเป็นต้องมีเพื่อสรุปข้อมูลที่สามารถป้อนเข้าสู่ระบบ BI
เราใช้เทคโนโลยีระบบนิเวศHadoopสำหรับการใช้งานด้านบน
การประมวลผลตามเวลาจริง
Apache Storm: การประมวลผลข้อมูลสตรีมแอปพลิเคชันกฎ
HBase: Datastore สำหรับการให้บริการแดชบอร์ดแบบเรียลไทม์
การประมวลผลแบบแบทช์ Hadoop: การบีบอัดข้อมูลจำนวนมหาศาล ภาพรวม 360 องศาหรือเพิ่มบริบทให้กับเหตุการณ์ อินเทอร์เฟซหรือกรอบงานเช่น Pig, MR, Spark, Hive, Shark ช่วยในการคำนวณ เลเยอร์นี้ต้องการตัวกำหนดตารางเวลาสำหรับ Oozie ซึ่งเป็นตัวเลือกที่ดี
เลเยอร์การจัดการเหตุการณ์
Apache Kafka เป็นเลเยอร์แรกที่ใช้เหตุการณ์ความเร็วสูงจากเซ็นเซอร์ Kafka ให้บริการการไหลของข้อมูลการวิเคราะห์แบบเรียลไทม์และแบทช์ผ่านตัวเชื่อมต่อ Linkedin
เข้าใจในเชิงลึก
Hadoop
Hadoop
เป็นโครงการโอเพ่นซอร์สของApache
มูลนิธิ มันเป็นกรอบการเขียนในการJava
พัฒนามาโดย Doug Cutting ในปี 2005 มันถูกสร้างขึ้นเพื่อรองรับการกระจายสำหรับNutch
เครื่องมือค้นหาข้อความ Hadoop
ใช้Map Reduce
เทคโนโลยีระบบไฟล์ของ Google และ Google เป็นรากฐาน
คุณสมบัติของ Hadoop
Hadoop
สำหรับปริมาณงานสูงมากกว่าเวลาหน่วงต่ำ เป็นการดำเนินการแบบกลุ่มที่จัดการกับข้อมูลจำนวนมหาศาล ดังนั้นเวลาตอบสนองจะไม่ทันทีRDBMS
แต่ก็ไม่เปลี่ยนสำหรับรุ่นของ Hadoop
มีสองรุ่นHadoop
:
Hadoop 1.0
มันมีสองส่วนหลัก:
1. กรอบการจัดเก็บข้อมูล
เป็นระบบไฟล์อเนกประสงค์ที่เรียกว่า Hadoop Distributed File System ( HDFS
)
HDFS
สคีมาน้อย
มันเก็บไฟล์ข้อมูลและไฟล์ข้อมูลเหล่านี้สามารถอยู่ในรูปแบบใดก็ได้
แนวคิดคือการจัดเก็บไฟล์ให้ใกล้เคียงกับรูปแบบดั้งเดิมที่สุด
สิ่งนี้จะช่วยให้หน่วยธุรกิจและองค์กรมีความยืดหยุ่นและความคล่องตัวที่จำเป็นมากโดยไม่ต้องกังวลมากเกินไปกับสิ่งที่สามารถนำไปใช้ได้
2. กรอบการประมวลผลข้อมูล
นี้เป็นเรื่องง่ายแบบการเขียนโปรแกรมการทำงานที่นิยมในขั้นแรกโดย Google MapReduce
เป็น
มันใช้ฟังก์ชั่นสองอย่าง: MAP
และREDUCE
ประมวลผลข้อมูล
"ตัวทำแผนที่" ใช้เวลาในชุดของคู่คีย์ - ค่าและสร้างข้อมูลกลาง (ซึ่งเป็นรายการของคู่ของคีย์ - ค่าอื่น)
"Reducers" จากนั้นดำเนินการกับอินพุตนี้เพื่อสร้างข้อมูลเอาต์พุต
ฟังก์ชั่นทั้งสองดูเหมือนจะทำงานแยกกันได้ทำให้การประมวลผลนั้นมีการกระจายอย่างสูงในแบบขนานสูงทนต่อความผิดพลาดและปรับขนาดได้
ข้อ จำกัด ของ Hadoop 1.0
ข้อ จำกัด แรกคือข้อกำหนดของMapReduce
ความเชี่ยวชาญด้านการเขียนโปรแกรม
รองรับการประมวลผลแบบแบตช์เท่านั้นซึ่งเหมาะสำหรับงานต่าง ๆ เช่นการวิเคราะห์บันทึก, โครงการขุดข้อมูลขนาดใหญ่ แต่ไม่เหมาะสำหรับโครงการประเภทอื่น ๆ
ข้อ จำกัด ที่สำคัญอย่างหนึ่งก็Hadoop 1.0
คือมีการคำนวณร่วมกันอย่างแน่นหนาMapReduce
ซึ่งหมายความว่าผู้ให้บริการด้านการจัดการข้อมูลที่จัดตั้งขึ้นจะทิ้งความคิดเห็นไว้สองข้อ:
คุณอาจเขียนฟังก์ชันการทำงานใหม่MapReduce
เพื่อให้สามารถทำงานในHadoop
หรือ
ดึงข้อมูลจากหรือประมวลผลด้านนอกของHDFS
Hadoop
ไม่มีตัวเลือกใดที่ทำงานได้เนื่องจากนำไปสู่กระบวนการที่ไม่มีประสิทธิภาพซึ่งเกิดจากข้อมูลถูกย้ายเข้าและออกจากHadoop
คลัสเตอร์
Hadoop 2.0
ในHadoop 2.0
, HDFS
ยังคงเป็นกรอบการจัดเก็บข้อมูล
อย่างไรก็ตามเฟรมเวิร์กการจัดการทรัพยากรใหม่และแยกต่างหากที่เรียกว่าY et A nother R esource N egotiater ( YARN ) ถูกเพิ่มเข้ามา
แอปพลิเคชันใด ๆ ที่สามารถแบ่งตัวเองออกเป็นงานคู่ขนานได้รับการสนับสนุนโดย YARN
YARN ประสานงานการจัดสรรงานย่อยของแอปพลิเคชั่นที่ส่งซึ่งจะช่วยเพิ่มความยืดหยุ่นความยืดหยุ่นและประสิทธิภาพของแอปพลิเคชัน
มันทำงานได้โดยมีApplication MasterแทนJob Trackerเพื่อรันแอปพลิเคชันบนทรัพยากรที่ควบคุมโดยNode Managerใหม่
ApplicationMaster สามารถที่จะเรียกใช้โปรแกรมใด ๆ MapReduce
และไม่เพียง
ซึ่งหมายความว่ามันไม่เพียง แต่รองรับการประมวลผลแบทช์ แต่ยังรวมถึงการประมวลผลแบบเรียลไทม์ MapReduce
ไม่มีตัวเลือกการประมวลผลข้อมูลอีกต่อไปเท่านั้น
ข้อดีของ Hadoop
มันเก็บข้อมูลในท้องถิ่นของมันจาก ไม่มีโครงสร้างที่กำหนดในขณะที่ป้อนข้อมูลหรือจัดเก็บข้อมูล HDFS
สกีมาน้อยลง ในภายหลังก็ต่อเมื่อจำเป็นต้องประมวลผลข้อมูลที่กำหนดโครงสร้างข้อมูลดิบ
มันสามารถปรับขนาดได้ Hadoop
สามารถจัดเก็บและแจกจ่ายชุดข้อมูลที่มีขนาดใหญ่มากในเซิร์ฟเวอร์ราคาถูกหลายร้อยเครื่องที่ทำงานแบบขนาน
มันมีความยืดหยุ่นต่อความล้มเหลว Hadoop
คือการยอมรับความผิด มันทำการจำลองแบบของข้อมูลอย่างขยันขันแข็งซึ่งหมายความว่าเมื่อใดก็ตามที่ข้อมูลถูกส่งไปยังโหนดใด ๆ ข้อมูลเดียวกันก็จะถูกจำลองแบบไปยังโหนดอื่น ๆ ในคลัสเตอร์ดังนั้นจึงมั่นใจได้ว่าในกรณีที่โหนดล้มเหลวจะมีสำเนาของข้อมูล
มันมีความยืดหยุ่น ข้อดีอย่างหนึ่งที่สำคัญของHadoop
มันคือมันสามารถทำงานกับข้อมูลประเภทใดก็ได้: โครงสร้างไม่มีโครงสร้างหรือกึ่งโครงสร้าง นอกจากนี้การประมวลผลยังเร็วมากHadoop
เนื่องจากกระบวนทัศน์ "ย้ายรหัสไปยังข้อมูล"
ระบบนิเวศ Hadoop
ต่อไปนี้เป็นองค์ประกอบของHadoop
ระบบนิเวศ:
HDFS : Hadoop
ระบบไฟล์แบบกระจาย มันเก็บไฟล์ข้อมูลใกล้เคียงกับรูปแบบดั้งเดิมที่สุดเท่าที่จะทำได้
HBase : มันเป็นฐานข้อมูล Hadoop RDBMS
และเมื่อเปรียบเทียบกับ สนับสนุนการจัดเก็บข้อมูลที่มีโครงสร้างสำหรับตารางขนาดใหญ่
Hive : ช่วยให้สามารถวิเคราะห์ชุดข้อมูลขนาดใหญ่โดยใช้ภาษาที่คล้ายคลึงกับมาตรฐานANSI SQL
ซึ่งหมายความว่าทุกคนในครอบครัวSQL
จะสามารถเข้าถึงข้อมูลในHadoop
คลัสเตอร์ได้
หมู : มันเป็นภาษากระแสข้อมูลที่เข้าใจง่าย Hadoop
มันจะช่วยให้มีการวิเคราะห์ชุดข้อมูลขนาดใหญ่ซึ่งค่อนข้างสั่งซื้อกับ Pig
สคริปต์จะถูกแปลงเป็นMapReduce
งานโดยอัตโนมัติโดยPig
ล่าม
ZooKeeper : เป็นบริการประสานงานสำหรับแอปพลิเคชันแบบกระจาย
Oozie : เป็นschedular
ระบบเวิร์กโฟลว์เพื่อจัดการHadoop
งานApache
Mahout : เป็นห้องสมุดเรียนรู้เครื่องจักรที่ปรับขนาดได้และคลังข้อมูล
Chukwa : เป็นระบบรวบรวมข้อมูลสำหรับจัดการระบบกระจายขนาดใหญ่
Sqoop : มันถูกใช้เพื่อถ่ายโอนข้อมูลจำนวนมากระหว่างHadoop
และที่เก็บข้อมูลที่มีโครงสร้างเช่นฐานข้อมูลเชิงสัมพันธ์
Ambari : เป็นเครื่องมือบนเว็บสำหรับจัดเตรียมจัดการและตรวจสอบHadoop
กลุ่ม
รัง
Hive
Hadoop
เป็นเครื่องมือที่มีโครงสร้างพื้นฐานคลังข้อมูลในการประมวลผลข้อมูลที่มีโครงสร้างใน มันอยู่ด้านบนของHadoop
เพื่อสรุปข้อมูลขนาดใหญ่และทำให้การสืบค้นและการวิเคราะห์ง่ายขึ้น
กลุ่มไม่ใช่
ฐานข้อมูลเชิงสัมพันธ์
การออกแบบสำหรับการประมวลผลธุรกรรมออนไลน์ ( OLTP
)
ภาษาสำหรับการสืบค้นตามเวลาจริงและการอัปเดตระดับแถว
คุณสมบัติของไฮฟ์
HDFS
มันเก็บคีมาในฐานข้อมูลและการประมวลผลข้อมูลลงใน
OLAP
มันถูกออกแบบมาสำหรับ
มันมีSQL
ภาษาชนิดที่เรียกว่าสำหรับการสอบถามหรือHiveQL
HQL
มันเป็นแฟมิลี่ที่รวดเร็วปรับขนาดได้และขยายได้
สถาปัตยกรรมรังผึ้ง
ส่วนประกอบต่อไปนี้มีอยู่ใน Hive Architecture:
ส่วนติดต่อผู้ใช้ : Hive
เป็นโครงสร้างพื้นฐานที่สามารถสร้างปฏิสัมพันธ์ระหว่างผู้ใช้และdata warehouse
HDFS
ส่วนต่อประสานผู้ใช้ที่Hive
รองรับคือ Hive Web UI, บรรทัดคำสั่ง Hive และ Hive HD Insight (ใน Windows Server)
MetaStore : Hive
เลือกตามลำดับdatabase
servers
เพื่อจัดเก็บสคีมาหรือMetadata
ของตารางฐานข้อมูลคอลัมน์ในตารางประเภทข้อมูลและHDFS
การแมป
HiveQL กระบวนการเครื่องยนต์ : HiveQL
มีความคล้ายคลึงกับสำหรับการสอบถามข้อมูลเกี่ยวกับสคีบนSQL
Metastore
มันเป็นหนึ่งในวิธีการแทนที่แบบดั้งเดิมสำหรับMapReduce
โปรแกรม แทนการเขียนMapReduce
ในJava
เราสามารถเขียนแบบสอบถามหาMapReduce
และประมวลผล
Exceution Engine : ส่วนร่วมของเอ็นจิ้นHiveQL
กระบวนการและMapReduce
เป็นHive
Execution Engine MapReduce results
เครื่องมือการดำเนินการประมวลผลแบบสอบถามและสร้างผลเป็นเช่นเดียวกับ MapReduce
จะใช้รสชาติของ
HDFS หรือ HBase : Hadoop
ระบบไฟล์แบบกระจายหรือHBase
เป็นเทคนิคการจัดเก็บข้อมูลเพื่อจัดเก็บข้อมูลลงในระบบไฟล์
ก่อนอื่นเราควรจะได้รับที่ชัดเจนว่าHadoopถูกสร้างขึ้นเป็นทางเลือกที่เร็วขึ้นเพื่อRDBMS ในการประมวลผลข้อมูลจำนวนมากในอัตราที่รวดเร็วซึ่งก่อนหน้านี้ใช้เวลานานใน RDBMS
ตอนนี้หนึ่งควรรู้สองคำ:
ข้อมูลที่มีโครงสร้าง : นี่คือข้อมูลที่เราใช้ใน RDBMS ดั้งเดิมและแบ่งออกเป็นโครงสร้างที่กำหนดไว้อย่างดี
ข้อมูลที่ไม่มีโครงสร้าง : สิ่งนี้เป็นสิ่งสำคัญที่ต้องเข้าใจข้อมูลประมาณ 80% ของโลกนั้นไม่มีโครงสร้างหรือกึ่งโครงสร้าง นี่คือข้อมูลที่อยู่ในรูปแบบดิบและไม่สามารถประมวลผลได้โดยใช้ RDMS ตัวอย่าง: facebook, twitter data ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html )
ดังนั้นข้อมูลจำนวนมากถูกสร้างขึ้นในช่วงไม่กี่ปีที่ผ่านมาและข้อมูลส่วนใหญ่ไม่มีโครงสร้างที่ให้กำเนิด HADOOP มันถูกใช้เป็นหลักสำหรับข้อมูลจำนวนมากที่ต้องใช้เวลาในการจัดการ RDBMS มันมีข้อเสียมากมายที่ไม่สามารถใช้สำหรับข้อมูลขนาดเล็กเมื่อเปรียบเทียบกับแบบเรียลไทม์ แต่พวกเขาก็จัดการเพื่อลบข้อเสียในรุ่นที่ใหม่กว่า
ก่อนที่จะดำเนินการต่อไปฉันอยากจะบอกว่าเครื่องมือข้อมูลขนาดใหญ่ใหม่ถูกสร้างขึ้นเมื่อพวกเขาเห็นความผิดพลาดในเครื่องมือก่อนหน้านี้ ดังนั้นเครื่องมือใดก็ตามที่คุณจะเห็นว่าถูกสร้างขึ้นได้ถูกแก้ไขเพื่อแก้ไขปัญหาของเครื่องมือก่อนหน้านี้
Hadoopสามารถกล่าวว่าเป็นเพียงสิ่งที่สอง: MapReduceและHDFS Mapreduce เป็นที่ที่การประมวลผลเกิดขึ้นและ HDFS เป็นฐานข้อมูลที่จัดเก็บข้อมูล โครงสร้างนี้เป็นไปตามหลักการของหนอนคือเขียนครั้งเดียวอ่านหลายครั้ง ดังนั้นเมื่อเราเก็บข้อมูลใน HDFS แล้วเราจะไม่สามารถเปลี่ยนแปลงได้ สิ่งนี้นำไปสู่การสร้างHBASEซึ่งเป็นผลิตภัณฑ์ NOSQL ที่เราสามารถทำการเปลี่ยนแปลงข้อมูลได้หลังจากที่เขียนครั้งเดียว
แต่เมื่อเวลาผ่านไปเราก็เห็นว่า Hadoop มีข้อบกพร่องมากมายและเพื่อที่เราจะสร้างสภาพแวดล้อมที่แตกต่างไปจากโครงสร้าง Hadoop PIG และ HIVE เป็นสองตัวอย่างยอดนิยม
HIVEถูกสร้างขึ้นสำหรับผู้ที่มีพื้นหลังSQL คำสั่งที่เขียนคล้ายกับ SQL ชื่อเป็นHIVEQL HIVE ได้รับการพัฒนาในการประมวลผลอย่างสมบูรณ์ข้อมูลที่มีโครงสร้าง มันไม่ได้ใช้สำหรับข้อมูลที่เก็บไว้
หมูในมืออื่น ๆ มีภาษาแบบสอบถามของตัวเองเช่นละติน มันสามารถใช้สำหรับทั้งโครงสร้างเช่นเดียวกับข้อมูลที่ไม่มีโครงสร้าง
การย้ายไปสู่ความแตกต่างเหมือนเมื่อใช้ HIVE และเมื่อใช้ PIG ฉันไม่คิดว่าคนอื่นนอกจากสถาปนิกของ PIG จะพูดได้ ติดตามลิงค์: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html
Hadoop:
HDFS ย่อมาจาก Hadoop Distributed File System ซึ่งใช้การประมวลผลแบบจำลองการคำนวณแผนที่ - ลด
HBase:
HBase เป็นที่เก็บคีย์ - ค่าเหมาะสำหรับการอ่านและการเขียนแบบเรียลไทม์
Hive:
Hive ใช้สำหรับการดึงข้อมูลจาก HDFS โดยใช้ไวยากรณ์คล้าย SQL ใช้ภาษา HQL
หมู:
Pig เป็นภาษาของ data flow สำหรับการสร้าง ETL มันเป็นภาษาสคริปต์
ให้ฉันลองตอบด้วยคำสองสามคำ
Hadoop เป็นระบบนิเวศซึ่งประกอบด้วยเครื่องมืออื่น ๆ ทั้งหมด ดังนั้นคุณไม่สามารถเปรียบเทียบ Hadoop ได้ แต่คุณสามารถเปรียบเทียบ MapReduce
นี่คือไม่กี่เซ็นต์ของฉัน:
หมู: มันจะดีกว่าที่จะจัดการกับไฟล์และตัวอย่างข้อมูลการทำความสะอาด: การลบค่า Null, การจัดการสตริง, ค่าที่ไม่จำเป็น Hive: สำหรับการสอบถามข้อมูลที่ล้าง
1. เราใช้ Hadoop ในการจัดเก็บข้อมูลขนาดใหญ่ (iestructure, Unstructure และ Semist โครงสร้าง data) ในรูปแบบไฟล์ฟอร์มเช่น txt, csv
2. ถ้าเราต้องการการอัปเดตเรียงเป็นแนวในข้อมูลของเราเราจะใช้เครื่องมือ Hbase
3. ในกรณีของไฮฟ์เรากำลังจัดเก็บข้อมูลขนาดใหญ่ซึ่งอยู่ในรูปแบบที่มีโครงสร้างและนอกเหนือจากนั้นเรากำลังให้การวิเคราะห์ข้อมูลนั้น
4.Pig เป็นเครื่องมือที่ใช้ภาษา Pig latin เพื่อวิเคราะห์ข้อมูลที่อยู่ในรูปแบบใด ๆ (โครงสร้างกึ่งโครงสร้างและโครงสร้าง)
การล้างข้อมูลในหมูนั้นง่ายมากวิธีการที่เหมาะสมคือการล้างข้อมูลด้วยหมูแล้วประมวลผลข้อมูลผ่านรังและอัพโหลดในภายหลังไปยัง hdfs
การใช้ Hive, Hbase และ Pig wrt ประสบการณ์เรียลไทม์ของฉันในโครงการต่างๆ
ไฮฟ์ส่วนใหญ่จะใช้สำหรับ:
จุดประสงค์ของการวิเคราะห์ที่คุณต้องทำการวิเคราะห์ข้อมูลประวัติ
การสร้างรายงานธุรกิจขึ้นอยู่กับคอลัมน์บางคอลัมน์
จัดการข้อมูลอย่างมีประสิทธิภาพพร้อมกับข้อมูลเมตาดาต้า
การเข้าร่วมตารางในคอลัมน์บางคอลัมน์ที่ใช้บ่อยโดยใช้แนวคิดการจัดเก็บข้อมูล
การจัดเก็บและการสืบค้นที่มีประสิทธิภาพโดยใช้แนวคิดการแบ่งพาร์ติชัน
ไม่มีประโยชน์สำหรับการดำเนินการระดับธุรกรรม / แถวเช่นอัปเดตลบ ฯลฯ
หมูส่วนใหญ่จะใช้สำหรับ:
การวิเคราะห์ข้อมูลบ่อยครั้งในข้อมูลขนาดใหญ่
การสร้างมูลค่า / จำนวนรวมบนข้อมูลขนาดใหญ่
การสร้างตัวบ่งชี้ประสิทธิภาพระดับคีย์องค์กรบ่อยมาก
Hbase ส่วนใหญ่จะใช้:
สำหรับการประมวลผลข้อมูลตามเวลาจริง
สำหรับการจัดการ schema ที่ซับซ้อนและซ้อนกันอย่างมีประสิทธิภาพ
สำหรับการสืบค้นตามเวลาจริงและผลลัพธ์ที่เร็วขึ้น
เพื่อให้ปรับขยายได้ง่ายด้วยคอลัมน์
มีประโยชน์สำหรับการดำเนินการระดับธุรกรรม / แถวเช่นอัปเดตลบ ฯลฯ
คำตอบสั้น ๆ สำหรับคำถามนี้คือ -
Hadoop - เป็น Framework ที่อำนวยความสะดวกให้กับระบบไฟล์แบบกระจายและรูปแบบการเขียนโปรแกรมซึ่งช่วยให้เราสามารถจัดเก็บข้อมูลขนาดมหึมาและประมวลผลข้อมูลในรูปแบบการกระจายอย่างมีประสิทธิภาพมากและใช้เวลาประมวลผลน้อยกว่าวิธีการแบบดั้งเดิม
(HDFS - ระบบไฟล์กระจาย Hadoop) (ลดแผนที่ - โมเดลการเขียนโปรแกรมสำหรับการประมวลผลแบบกระจาย)
Hive - เป็นภาษาคิวรีที่ช่วยให้สามารถอ่าน / เขียนข้อมูลจากระบบไฟล์แบบกระจายของ Hadoop ใน SQL ที่เป็นที่นิยมเช่นแฟชั่น สิ่งนี้ทำให้ชีวิตง่ายขึ้นสำหรับคนที่ไม่มีพื้นหลังของการเขียนโปรแกรมเนื่องจากพวกเขาไม่จำเป็นต้องเขียนโปรแกรมลดแผนที่อีกต่อไปยกเว้นในสถานการณ์ที่ซับซ้อนมากซึ่งไม่รองรับ Hive
Hbase - เป็นฐานข้อมูล NoSQL เรียงเป็นแนว เลเยอร์การจัดเก็บข้อมูลพื้นฐานสำหรับ Hbase นั้นเป็น HDFS อีกครั้ง กรณีการใช้งานที่สำคัญที่สุดสำหรับฐานข้อมูลนี้คือสามารถจัดเก็บหลายพันล้านแถวด้วยล้านคอลัมน์ คุณลักษณะความหน่วงแฝงต่ำของ Hbase ช่วยให้การเข้าถึงเรกคอร์ดแบบเร็วกว่าและเข้าถึงข้อมูลแบบกระจายเป็นคุณลักษณะที่สำคัญมากที่จะทำให้มีประโยชน์สำหรับโครงการที่ซับซ้อนเช่นเอนเดอร์เอ็นจิ้น นอกจากนี้ยังมีความสามารถในการกำหนดรุ่นระดับระเบียนให้ผู้ใช้สามารถจัดเก็บข้อมูลธุรกรรมได้อย่างมีประสิทธิภาพ (ซึ่งจะช่วยแก้ปัญหาการอัปเดตระเบียนที่เรามีด้วย HDFS และ Hive)
หวังว่านี่จะเป็นประโยชน์ในการทำความเข้าใจคุณสมบัติ 3 ข้อข้างต้นอย่างรวดเร็ว
ฉันเชื่อว่าหัวข้อนี้ไม่ได้ดำเนินการโดยเฉพาะกับ HBase และ Pig โดยเฉพาะ ในขณะที่ฉันเชื่อว่า Hadoop เป็นตัวเลือกของระบบไฟล์แบบกระจายที่มีความยืดหยุ่นสำหรับการใช้งานทะเลสาบขนาดใหญ่ แต่ตัวเลือกระหว่าง HBase และ Hive นั้นมีการแยกกันโดยเฉพาะ
เช่นเดียวกับในกรณีการใช้งานจำนวนมากมีความต้องการเฉพาะของ SQL like หรือ No-SQL like interfaces ด้วย Phoenix ที่อยู่เหนือ HBase แม้ว่าความสามารถด้าน SQL จะสามารถทำได้อย่างแน่นอนอย่างไรก็ตามประสิทธิภาพการผสานรวมของบุคคลที่สามการอัพเดทแดชบอร์ดเป็นประสบการณ์ที่เจ็บปวด อย่างไรก็ตามมันเป็นตัวเลือกที่ยอดเยี่ยมสำหรับฐานข้อมูลที่ต้องการปรับสเกลแนวนอน
โดยเฉพาะอย่างยิ่งหมูที่ยอดเยี่ยมสำหรับชุดที่ไม่เกิดซ้ำเช่นการคำนวณหรือท่อส่ง ETL (บางแห่งที่มันมีประสิทธิภาพสูงกว่า Spark โดยระยะทางที่สะดวกสบาย) นอกจากนี้ยังมีการใช้งาน dataflow ในระดับสูงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการทำแบบสอบถามและสคริปต์ ตัวเลือกระหว่าง Pig และ Hive นั้นสำคัญกับความต้องการของไคลเอนต์หรือสคริปต์ฝั่งเซิร์ฟเวอร์, รูปแบบไฟล์ที่ต้องการ, ฯลฯ Pig รองรับรูปแบบไฟล์ Avro ซึ่งไม่เป็นจริงในกรณีของ Hive ตัวเลือกสำหรับ 'ภาษาดาต้าโฟลว์ขั้นตอน' กับ 'ภาษาการไหลของข้อมูลที่เปิดเผย' ยังเป็นข้อโต้แย้งที่แข็งแกร่งสำหรับตัวเลือกระหว่างหมูกับรัง