5-install-hive.md


ติดตั้ง HIVE

ดาวน์โหลดฐานข้อมูลจำลอง
แล้วทำการ Import เข้า mysql โดยที่การ import จะมี 2 แบบ เคนเลยเอาใส่ไว้ให้ทั้ง 2 แบบเลยละกัน

sudo apt install git
cd /home/hadoopuser/downloads
git clone https://github.com/datacharmer/test_db
cd test_db

การ import mysql แบบที่ 1

sudo mysql -t < employees.sql

การ import mysql แบบที่ 2

sudo mysql
CREATE DATABASE employees;
USE employees;
SOURCE employees.sql;
quit;

ดาวน์โหลด HIVE

cd /home/hadoopuser/downloads
wget http://apachemirror.wuchna.com/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar -xzvf apache-hive-3.1.2-bin.tar.gz
sudo mv apache-hive-3.1.2-bin /home/hadoopuser/hive

แก้ไข bashrc

sudo nano ~/.bashrc

export HIVE_HOME=/home/hadoopuser/hive
export PATH=$PATH:$HIVE_HOME/bin

source ~/.bashrc

สร้างโฟลเดอร์ HIVE บน HDFS



hdfs dfs -mkdir /tmp
hdfs dfs -mkdir -p /hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /hive/warehouse

แก้ไขไฟล์ hive-env.sh

cd $HIVE_HOME/conf
sudo cp hive-env.sh.template hive-env.sh
sudo nano hive-env.sh

export HADOOP_HOME=/home/hadoopuser/hadoop
export HIVE_CONF_DIR=/home/hadoopuser/hive/conf
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre

สร้าง hiveuser ใน MySQL

sudo mysql
CREATE USER “hiveuser”@”localhost” IDENTIFIED BY “hivepassword”;
GRANT ALL PRIVILEGES ON . TO “hiveuser”@”localhost”;
FLUSH PRIVILEGES;
quit;

แก้ไขไฟล์ hive-site.xml

cd $HIVE_HOME/conf
sudo cp hive-default.xml.template hive-site.xml
sudo nano hive-site.xml

แก้ไขค่าเหล่านี้ในไฟล์ hive-site.xml

วิธีการหาให้กด Ctrl+W พิมพ์คำที่ค้นหาและกด Enter หาคำต่อไปให้กด Window+W หรือ Mac คือ Option+W

name: javax.jdo.option.connectionURL
value: jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true

name: javax.jdo.option.connectionDriverName
value: com.mysql.cj.jdbc.Driver

name: javax.jdo.option.connectionUsername
value: hiveuser

name: javax.jdo.option.connectionPassword
value: hivepassword

name: hive.txn.xlock.iow (ประมาณบรรทัดที่ 3219) ลบตัวอักขระ  ออกจาก description

เพิ่มค่าเหล่านี้ในไฟล์ hive-site.xml

system:java.io.tmpdir/tmp/hive/java

system:user.name${user.name}

รัน hive และแก้ Error

hive

แล้วมันจะต้อง Error: Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

มันคือการ Error ไฟล์ guava ก็ให้ก๊อบปี้จาก hadoop ไปใช้ใน hive

และอีกตัวนึงคือ มันจะ Error ตัว Connector มันใช้ไม่ได้ ให้ทำเหมือนกันคือเอาไฟล์ mysql-connector-java-8.0.23 ที่เคยดาวน์โหลดตอน Sqoop ก๊อบปี้ไปใส่ใน Hive ทำไปพร้อมกันเลยแล้วกัน

rm -rf $HIVE_HOME/lib/guava-19.0.jar
sudo cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib
sudo cp /home/hadoopuser/downloads/mysql-connector-java-8.0.23.jar $HIVE_HOME/lib

สร้างฐานข้อมูล metastore ใน MySQL ผ่าน Hive tool

$HIVE_HOME/bin/schematool -initSchema -dbType mysql

ทดสอบ Import จาก MySQL -> Hive ด้วย Sqoop

สร้าง Database รอไว้ก่อนใน Hive

hive
CREATE DATABASE employees;
quit;

แก้ Error HIVE_CONF_DIR

cd $SQOOP_HOME/conf
sudo cp sqoop-env-template.sh sqoop-env.sh
sudo nano sqoop-env.sh

export HIVE_HOME=/home/hadoopuser/hive
export HIVE_CONF_DIR=/home/hadoopuser/hive/conf

cd $HIVE_HOME/lib
sudo cp hive-common-3.1.2.jar $SQOOP_HOME/lib

คำสั่ง import ทุกๆ table จาก database ที่ต้องการใน mysql

แบบนี้คือแบบที่ไปหามาได้

sqoop import-all-tables –connect jdbc:mysql://localhost/employees –username hiveuser –password hivepassword –hive-import –hive-database employees –create-hive-table –direct -m 1

อันนี้คือแบบที่อาจารย์ให้มา

sqoop import-all-tables –connect jdbc:mysql://localhost/employees –username hiveuser -P –direct -m 1

เช็คว่า Import ไปที่ Hive เข้าไหม

hive
USE employees;
SELECT * FROM departments;

เช็คว่า Import ไปที่ Hive เข้า Hdfs ไหม

hdfs dfs -ls /user/hadoopuser/
hdfs dfs -cat /user/hadoopuser/departments/part-m-00000

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

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้เพื่อการวิเคราะห์

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

บันทึกการตั้งค่า