วิธีการติดตั้ง HIVE บน Ubuntu (คู่มือการดาวน์โหลดและการตั้งค่า)
⚡ สรุปอย่างชาญฉลาด
ติดตั้ง Apache Hive บน Ubuntu โดยทำหน้าที่เป็นชั้นคลังข้อมูลขนาดเล็กที่อยู่เหนือคลัสเตอร์ Hadoop ที่กำลังทำงานอยู่ การติดตั้งจึงส่วนใหญ่เป็นเรื่องของการแตกไฟล์เก็บถาวรหนึ่งไฟล์และกำหนดค่าตัวแปรสภาพแวดล้อมสามตัวให้ชี้ไปยังไดเร็กทอรีที่ถูกต้อง
ก่อนการติดตั้ง Apache Hive เราต้องการพื้นที่เฉพาะ Hadoop การติดตั้ง เริ่มต้นและรันด้วย Hadoop daemons ทั้งหมด
สำหรับการติดตั้ง Hadoop โปรดตรวจสอบที่นี่ ลิงค์.
เมื่อ daemon ของ Hadoop ทั้งหมดทำงานได้อย่างราบรื่นแล้ว ให้เริ่มติดตั้งส่วนของ Hive ได้เลย ขั้นตอนการติดตั้งด้านล่างนี้แบ่งออกเป็นสี่ขั้นตอน:
ขั้นตอนการติดตั้ง Apache Hive
- ข้อกำหนดเบื้องต้นและความเข้ากันได้ของเวอร์ชัน
- การติดตั้งไฮฟ์
- การเริ่มต้นสคีมา Metastore
- คำสั่งเชลล์ไฮฟ์
ข้อกำหนดเบื้องต้นสำหรับการติดตั้ง Apache Hive บน Ubuntu
Hive ไม่ใช่ฐานข้อมูลแบบสแตนด์อโลน มันเป็นเพียงเลเยอร์การสืบค้นข้อมูลที่แปลง HiveQL ให้เป็นงานที่ทำงานบนคลัสเตอร์ที่มีอยู่แล้ว ดังนั้นการติดตั้งที่ล้มเหลวเกือบทุกครั้งจึงเกิดจาก HiveQL tracกลับไปยังข้อกำหนดเบื้องต้นที่ขาดหายไปแทนที่จะเป็น Hive เอง โปรดตรวจสอบสิ่งต่อไปนี้ก่อนดาวน์โหลดอะไรก็ตาม:
- JDK ที่รองรับ Hive 4.1.x ทำงานบน JDK 17 ในขณะที่ Hive 4.2.x เพิ่มขั้นต่ำเป็น JDK 21 ตรวจสอบเวอร์ชันด้วย java -version และตรวจสอบให้แน่ใจว่าได้ส่งออกตัวแปร JAVA_HOME แล้ว
- คลัสเตอร์ Hadoop ที่กำลังทำงานอยู่ ทั้ง NameNode และ DataNode ต้องทำงานอยู่ รันคำสั่ง JPS และตรวจสอบให้แน่ใจว่า NameNode, DataNode, ResourceManager และ NodeManager ปรากฏอยู่ในรายการทั้งหมด
- สิทธิ์ในการเขียนไปยัง HDFS บัญชีผู้ใช้ที่เริ่มต้นใช้งาน Hive จำเป็นต้องได้รับอนุญาตในการสร้างไดเร็กทอรีภายใต้ เอชดีเอฟเอส.
- เวอร์ชันที่ตรงกัน Hive 4.2.0 สร้างขึ้นบน Hadoop 3.4.1 และ Tez 0.10.5 ตระกูล Hive 3.x สิ้นสุดการสนับสนุนในเดือนตุลาคม 2024 ดังนั้นการติดตั้งใหม่ควรเลือกใช้ตระกูล 4.x
- แหล่งข้อมูลฟรี ระบบการเรียนรู้แบบโหนดเดียวสามารถทำงานได้อย่างสะดวกสบายด้วย RAM ประมาณ 4 GB และพื้นที่ว่างในดิสก์ 20 GB
เมื่อตรวจสอบเงื่อนไขเหล่านั้นครบถ้วนแล้ว ขั้นตอนการดาวน์โหลดและแตกไฟล์ด้านล่างจะดำเนินไปโดยไม่มีปัญหาใดๆ
วิธีการติดตั้ง Hive บน Ubuntu
ด้านล่างนี้เป็นกระบวนการทีละขั้นตอนเกี่ยวกับวิธีการติดตั้ง Hive Ubuntu:
ขั้นตอนที่ 1) ดาวน์โหลดและติดตั้ง Hive บน Ubuntu
หากต้องการดาวน์โหลดโปรแกรมติดตั้ง Hive เวอร์ชันเสถียร โปรดดูที่... อาปาเช่ URL ตามที่กล่าวไว้ด้านล่างนี้
https://www.apache.org/dyn/closer.cgi/hive/ — ไปที่ URL และเลือกที่ลิงก์ดาวน์โหลดมิเรอร์ของ Apache หน้าดาวน์โหลด Apache Hive แสดงรายการว่ารุ่นใดใช้งานร่วมกับ Hadoop เวอร์ชันใด
หน้าเว็บจำลองจะเปิดขึ้นพร้อมรายการไดเร็กทอรีการเผยแพร่ Hive ที่มีอยู่ ดังที่แสดงด้านล่าง
เลือกเวอร์ชันล่าสุดของโปรแกรมติดตั้ง Hive (ในกรณีของฉันคือ Hive เวอร์ชัน 3.1.2) โฟลเดอร์ release จะแสดงไฟล์ไบนารีและไฟล์ซอร์สโค้ดควบคู่กันไป
คลิกที่ไฟล์ .bin แล้วการดาวน์โหลดจะเริ่มต้นขึ้น
ขั้นตอนที่ 2) ตัวอย่างเช่นtract ไฟล์ tar
ไปที่ตำแหน่งไฟล์ tar ที่ดาวน์โหลดมา จากนั้นแตกไฟล์tracแตกไฟล์ tar โดยใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Hive บน Ubuntu ในระบบของคุณ
tar -xvf apache-hive-3.1.2-bin.tar.gz
เทอร์มินัลจะแสดงข้อความของแต่ละไฟล์ขณะที่กำลังแตกไฟล์ลงในไดเร็กทอรี Hive ใหม่
ขั้นตอนที่ 3) วางคุณสมบัติการกำหนดค่าที่แตกต่างกันใน Apache Hive
ในขั้นตอนนี้ เราจะทำสองสิ่งต่อไปนี้:
- การระบุพาธโฮมของ Hive ในไฟล์ bashrc
- การระบุตำแหน่งพาธโฮมของ Hadoop ในไฟล์ hive-config.sh
1) ระบุพาธของ Hive ในไฟล์ ~/.bashrc
เปิดไฟล์เพื่อแก้ไขโดยใช้คำสั่งที่แสดงด้านล่าง
- เปิดไฟล์ bashrc ตามที่แสดงในภาพหน้าจอข้างต้น
- ระบุพาธโฮมของ Hive หรือก็คือพาธ HIVE_HOME ในไฟล์ bashrc และส่งออกพาธนั้นดังที่แสดงด้านล่าง
Code นำไปใส่ไว้ในไฟล์ bashrc:
export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin" export PATH=$PATH:$HIVE_HOME/bin
โหลดไฟล์ใหม่ด้วย แหล่ง ~ / .bashrc ดังนั้นเส้นทางใหม่จะมีผลในเซสชันเทอร์มินัลปัจจุบัน
2) การส่งออกพาธ Hadoop ในไฟล์ hive-config.sh
ในการสื่อสารกับระบบนิเวศของ Hadoop เราจะกำหนดพาธโฮมของ Hadoop ในไฟล์การกำหนดค่าของ Hive เปิดไฟล์ hive-config.sh ตามที่แสดงด้านล่าง
ระบุพาธ HADOOP_HOME ในไฟล์ hive-config.sh ดังที่แสดงด้านล่าง
ขั้นตอนที่ 4) สร้างไดเร็กทอรี Hive ใน Hadoop
ในการสื่อสารกับ Hadoop เราจำเป็นต้องสร้างไดเร็กทอรีใน Hadoop ดังแสดงด้านล่าง Hive จะเขียนข้อมูลตารางที่จัดการแล้วลงในไดเร็กทอรี warehouse และเขียนเอาต์พุตชั่วคราวลงในไดเร็กทอรี tmp
การให้สิทธิ์ระดับ root ในการสร้างโฟลเดอร์ Hive ใน Hadoop หากไม่มีข้อความแสดงข้อผิดพลาดใดๆ แสดงว่า Hadoop ได้ให้สิทธิ์แก่โฟลเดอร์ Hive เรียบร้อยแล้ว
ขั้นตอนที่ 5) เข้าสู่เชลล์ Hive
เข้าสู่ Hive shell โดยการป้อน - /รัง' คำสั่งดังแสดงด้านล่าง
วิธีการเริ่มต้นใช้งาน Schema ของ Hive Metastore
Hive เก็บชื่อตาราง ชื่อคอลัมน์ และชนิดข้อมูลทั้งหมดไว้ในฐานข้อมูลเชิงสัมพันธ์ที่เรียกว่า metastore ในการติดตั้งใหม่ metastore จะว่างเปล่า และตั้งแต่ Hive เวอร์ชัน 3.x เป็นต้นไป shell จะไม่ยอมเริ่มทำงานจนกว่าตาราง schema จะมีอยู่ ยูทิลิตี้ schematool ที่มาพร้อมกับ Hive ในไดเร็กทอรี bin จะสร้างตารางเหล่านั้นขึ้นมา
สำหรับการตั้งค่าการเรียนรู้สำหรับผู้ใช้คนเดียว ฐานข้อมูล Derby ที่มาพร้อมกับโปรแกรมก็เพียงพอแล้ว:
$HIVE_HOME/bin/schematool -dbType derby -initSchema
คำสั่งนี้จะแสดงเวอร์ชันสคีมาที่สร้างขึ้นและจบลงด้วย schemaTool เสร็จสมบูรณ์แล้วDerby จะเขียนไฟล์ลงในไดเร็กทอรีเดียวกับที่เรียกใช้คำสั่ง ดังนั้นจึงต้องเรียกใช้ Hive จากไดเร็กทอรีเดียวกันนั้นเสมอหลังจากนั้น
Derby อนุญาตให้มีเซสชันที่ใช้งานอยู่ได้เพียงครั้งละหนึ่งเซสชันเท่านั้น ทำให้ไม่เหมาะสำหรับคลัสเตอร์ที่ใช้ร่วมกัน Point Hive ที่ MySQL โดยการเพิ่มคุณสมบัติการเชื่อมต่อลงในไฟล์ hive-site.xml แล้วเรียกใช้เครื่องมืออีกครั้งโดยใช้ประเภทฐานข้อมูลที่แตกต่างกัน:
$HIVE_HOME/bin/schematool -dbType mysql -initSchema
รายชื่อสถานที่ทั้งหมดและการจัดวางตำแหน่งคนขับจะอธิบายไว้ในคู่มือวิธีการใช้งาน กำหนดค่า Hive metastore ด้วย MySQLนอกจากนี้ยังมีธงอีกสองแบบที่ควรค่าแก่การจดจำ:
- -ข้อมูล รายงานเวอร์ชันสคีมาที่บันทึกไว้ในเมตาสโตร์ในปัจจุบัน โดยไม่เปลี่ยนแปลงอะไรเลย
- -อัปเกรดสคีมา ย้าย metastore ที่มีอยู่ไปยังเวอร์ชัน schema ของ Hive เวอร์ชันใหม่ที่ติดตั้ง
เมื่อกำหนดโครงสร้างข้อมูลเรียบร้อยแล้ว ระบบก็พร้อมที่จะรับคำสั่ง HiveQL แรก
คำสั่งเชลล์ไฮฟ์
ในที่นี้เราจะสร้างตารางตัวอย่างโดยใช้คำสั่ง "create" ใน Hive shell พร้อมระบุชื่อคอลัมน์
ตัวอย่างโค้ดสำหรับการสร้างฐานข้อมูลใน Hive ภาพหน้าจอด้านล่างแสดงคำสั่งสร้างและผลลัพธ์การอธิบายฐานข้อมูลทีละขั้นตอน
จากภาพหน้าจอข้างต้น เราสามารถสังเกตได้ดังต่อไปนี้:
1) การสร้างตารางตัวอย่างที่มีชื่อคอลัมน์ใน Hive
- ชื่อตารางคือ "ผลิตภัณฑ์" โดยมีชื่อคอลัมน์สามคอลัมน์ สินค้า ชื่อ และราคา
- ชื่อคอลัมน์ทั้งสามนั้นระบุด้วยชนิดข้อมูลที่เกี่ยวข้อง
- ทุกช่องข้อมูลจะปิดท้ายด้วยเครื่องหมายจุลภาค ', '
2) การแสดงข้อมูลตาราง Hive
- การใช้คำสั่ง “describe” จะช่วยให้เราสามารถดูข้อมูลตารางที่มีอยู่ใน Hive ได้
- ต่อไปนี้คือการแสดงชื่อคอลัมน์พร้อมชนิดข้อมูลที่เกี่ยวข้องซึ่งปรากฏอยู่ในโครงสร้างตาราง
- ในตอนท้าย ระบบจะแสดงเวลาที่ใช้ในการดำเนินการคำสั่งนี้และจำนวนแถวที่ดึงมาได้
ตัวอย่างโค้ดสำหรับการสร้างฐานข้อมูลใน รัง (สำหรับตรวจสอบตนเอง)
1) สร้างตาราง product (product int, pname string, price float)
Row format delimited Fields terminated by ',';
2) อธิบายรายละเอียดสินค้า;
เมื่อตารางตอบสนองต่อคำอธิบายแล้ว เชลล์ เมตาสโตร์ และ HDFS ก็จะเชื่อมต่อเข้าด้วยกัน จากนั้นเซสชันเดียวกันนี้ก็จะยอมรับข้อมูลที่กว้างขึ้น สร้าง แก้ไข และลบตาราง คำแถลงและ เรียงลำดับตาม จัดกลุ่มตาม และจัดกลุ่มตาม คำสั่ง
ข้อผิดพลาดทั่วไปในการติดตั้ง Hive บน Ubuntu และจะแก้ไขอย่างไร
ความล้มเหลวในการใช้งานครั้งแรกส่วนใหญ่เกิดจากสภาพแวดล้อมรอบๆ Hive มากกว่าตัว Hive เอง ตารางด้านล่างแสดงความสัมพันธ์ระหว่างข้อความที่ปรากฏบ่อยที่สุด สาเหตุ และคำสั่งที่ใช้แก้ไขปัญหา
| ข้อความบนหน้าจอ | สาเหตุน่าจะ | แก้ไขปัญหา |
|---|---|---|
| hive: ไม่พบคำสั่ง | โฟลเดอร์ HIVE_HOME/bin ไม่อยู่ใน PATH | ตรวจสอบบรรทัดการส่งออกในไฟล์ bashrc อีกครั้ง จากนั้นเรียกใช้คำสั่ง แหล่ง ~ / .bashrc |
| ไม่พบข้อมูลเวอร์ชันใน metastore | โครงสร้างข้อมูลเมตาสโตร์ไม่เคยได้รับการเริ่มต้นใช้งาน | เรียกใช้ schematool ด้วยตัวเลือก -initSchema สำหรับประเภทฐานข้อมูลที่เลือก |
| การเรียกไปยัง localhost:9000 ล้มเหลวเนื่องจากข้อผิดพลาดในการเชื่อมต่อ | HDFS ไม่ทำงาน | เริ่มการทำงานของ Hadoop daemon และตรวจสอบว่า NameNode และ DataNode ปรากฏอยู่ในรายการหรือไม่ JPS |
| โหนดชื่ออยู่ในโหมดปลอดภัย | NameNode ยังคงอยู่ในโหมดปลอดภัยในการเริ่มต้นระบบ | ออกจากโหมดปลอดภัยด้วย hdfs dfsadmin -safemode leave |
| การอนุญาตถูกปฏิเสธ: การเข้าถึง = เขียน บน /user/hive/warehouse | ไดเร็กทอรีคลังสินค้าขาดสิทธิ์ในการเขียนแบบกลุ่ม | สมัครใหม่ hdfs dfs -chmod g+w ในไดเร็กทอรีคลังสินค้าและ tmp |
| NoSuchMethodError บน Preconditions.checkArgument | Hive และ Hadoop มีไฟล์ jar ของ Guava เวอร์ชันที่แตกต่างกัน | ลบไฟล์ Guava jar เวอร์ชันเก่าในไดเร็กทอรี lib ของ Hive แล้วคัดลอกไฟล์ Hadoop jar เข้าไปแทนที่ |
วิธีง่ายๆ ในการแยกแยะปัญหาของ Hive ออกจากปัญหาของ Hadoop คือการรันคำสั่งต่อไปนี้ JPS ขั้นแรก หากไม่มีเดมอน แสดงว่าคลัสเตอร์มีปัญหา หากมีเดมอนอยู่แต่เชลล์ยังคงใช้งานไม่ได้ แสดงว่าปัญหาอยู่ที่การตั้งค่า Hive หรือสคีมาของเมตาสโตร์ เมื่อเชลล์เสถียรแล้ว... ตัวดำเนินการและฟังก์ชันในตัวของ HiveQL การอ้างอิงคือขั้นตอนต่อไปที่เหมาะสม








