資料生態第四彈 | OpenMLDB Hive Connector,架構起資料倉儲到特徵工程的生態橋樑

openmldb發表於2023-02-14

導讀

近日,OpenMLDB 實現了與開源資料倉儲軟體 Hive 的連線,繼完成與 Kafka、Pulsar、RocketMQ 等實時資料來源生態整合後,持續構建離線資料生態,期待建設一個更加全面一體的上下游生態圈,在吸引更多使用者的同時也能降低使用者的使用門檻。

OpenMLDB Hive Connector

背景

OpenMLDB Hive Connector 的開發解決了 OpenMLDB 無法輕鬆連線使用 Hive 資料來源的問題,利用其可以簡單地對 Hive 資料進行讀寫,**最佳化使用者使用體驗和降低時間成本**。

介紹

透過 OpenMLDB Hive Connector 可以連線 Hive 資料來源,對其進行資料訪問和後設資料操作。Hive 資料來源的訪問透過 Hive Metastore Service (HMS)。在使用 Hive Connector 之前,要確保 HMS 已啟動。

優勢

  • Connector 聯通 Hive 之後,只需配置好 Hive,就可以在 OpenMLDB 中用 hive:// 方式讀寫 Hive 表。

  • 學習成本低,易上手。Hive 是 Apache Hadoop 上的 SQL 介面,可以寫 SQL 語句來對資料進行處理和運算。

注意

  • 在使用 Hive Connector 之前,必須啟動 HMS。

  • 目前只支援整表匯入,不支援分割槽匯入。

配置操作

OpenMLDB 版本要求:v0.6.7 及以上。

關鍵流程

  1. 啟動 Hive 與 Hive metastore 服務

  2. OpenMLDB 配置 Hive metastore URI

  3. 啟動 OpenMLDB 叢集

  4. 測試——從 Hive 匯入資料到 OpenMLDB 、從 OpenMLDB 匯出資料到 Hive 表

具體操作

1. Docker 上拉取並執行 OpenMLDB 映象(映象下載大小大約 1GB,解壓後約 1.7 GB):

docker run -it 4pdosc/openmldb:0.6.7 bash


2. 安裝支援

a. 安裝 jdk8:Docker 映象內預設為 jdk11,Hive 不支援 jdk11,建議安裝 jdk8:

apt-get update && apt-get install -y gnupg2
curl -s | apt-key add -
apt-get update && apt-get install -y adoptopenjdk-8-hotspot
export JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64
export PATH=$JAVA_HOME/bin:$PATH

b. 安裝 Hadoop:

curl -SLO 
tar zxf hadoop-3.2.3.tar.gz
export HADOOP_HOME=`pwd`/hadoop-3.2.3
curl -SLO 
tar zxf apache-hive-3.1.3-bin.tar.gz
export HIVE_HOME=`pwd`/apache-hive-3.1.3-bin

c. 由於 Hadoop 和 Hive 的 Guava 版本不一致,執行以下命令調整為一致版本:

rm $HIVE_HOME/lib/guava-19.0.jar
cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib/
$HIVE_HOME/bin/schematool -dbType derby -initSchema


3. 使用 Hive 客戶端建立表

使用 Hive 客戶端建立表 htable(表會建立到預設資料庫 default,如需使用其他資料庫,請保證資料庫已存在,OpenMLDB 不會自動建立 Hive 資料庫);插入一條資料,可以查詢出已插入的資料:

$HIVE_HOME/bin/hive

CREATE TABLE htable(key INT, value STRING NOT NULL);
INSERT INTO htable VALUES (NULL, "n"), (1,"a"), (2,"b");
SELECT * FROM htable;


4. 啟動 Hive metastore 服務(預設埠號為 9083):

$HIVE_HOME/bin/hive --service metastore > metastore.log 2>&1 &


5. OpenMLDB 配置 Hive 連線,並啟動 OpenMLDB 叢集

有多種方式配置 Hive 連線,具體請參考 Hive 配置文件。此處使用“在 taskmanager 配置檔案中新增 Hive 連線配置”的方式。

a. 開啟 taskmanager 配置檔案:

vim openmldb/conf/taskmanager.properties

b. 在 spark.default.conf 配置項中新增配置 

spark.hadoop.hive.metastore.uris:
spark.default.conf=...;spark.hadoop.hive.metastore.uris=thrift://localhost:9083

c. 啟動 OpenMLDB 叢集:

/work/init.sh


6. 從 Hive 匯入資料到 OpenMLDB

需要提前建立好 OpenMLDB 表 otable,使用 LOAD DATA語句,只需使用 hive:// 字首並指定 Hive 表名便可匯入表中資料到 OpenMLDB 表 otable。支援匯入到線上和離線。執行以下程式碼匯入到離線:

CREATE DATABASE db;
USE db;
CREATE TABLE otable(key INT, value STRING NOT NULL);
SET @@sync_job=true;
SET @@job_timeout=600000;
LOAD DATA INFILE 'hive://htable' INTO TABLE otable OPTIONS(mode='overwrite');


7. 將 OpenMLDB 表資料匯出到 Hive

使用 SELECT INTO 語句,同樣路徑只需要使用 hive:// 字首並指定表名(表可以不存在,將自動建立)。

USE db;
SET @@sync_job=true;
SET @@job_timeout=600000;
SELECT * FROM otable INTO OUTFILE 'hive://hsaved' OPTIONS(mode='overwrite');

可以在 Hive 中查詢到 hsaved 表,由於演示使用的是 derby 作為後設資料庫,請將 metastore 程式關閉後再使用 $HIVE_HOME/bin/hive 查詢:

SELECT * FROM hsaved;

也可直接在 Hive 的儲存目錄中看到 hsaved 表:

ls /user/hive/warehouse/hsaved

寫在最後

關於 OpenMLDB

OpenMLDB 是一個開源機器學習資料庫,致力於閉環解決 AI 工程化落地的資料治理難題,為企業提供全棧的低門檻特徵資料計算和管理平臺。OpenMLDB 包含 Feature Store 的全部功能,並且提供更為完整的 FeatureOps 全棧方案。除了提供特徵儲存功能,還具有基於 SQL 的低門檻資料庫開發體驗、面向特徵計算最佳化的 OpenMLDB Spark 發行版、針對實時特徵計算最佳化的索引結構、特徵上線服務、企業級運維和管理等功能,讓特徵工程開發迴歸於本質——專注於高質量的特徵計算指令碼開發。

關於 Hive

Hive 是 Facebook 實現並開源的基於 Hadoop 的一個資料倉儲工具。Hive 本質上將 SQL 語句轉換為 MapReduce 任務執行,讓不熟悉 MapReduce 程式設計模型的使用者可以快速地使用 HiveQL 處理和計算儲存在 HDFS 上的結構化資料,適用於離線的批次資料計算。Hive 適用於傳統數倉業務,不適用於低延遲的互動訪問。

生態上下游體系

為了降低開發者使用 OpenMLDB 的門檻,OpenMLDB 社群將持續打造面向上下游技術元件的生態圈,為開發者提供更多簡單易用的生態 Connector。

file

  • 面向線上資料生態,如:Pulsar、Kafka、RocketMQ、Flink、RabbitMQ 等。

  • 面向離線資料生態,如: HDFS、Hive、MaxCompute、HBase、Cassandra、S3 等。

  • 面向模型構建的演算法、框架,如:XGBoost、LightGBM、TensorFlow、PyTorch、OneFlow、ScikitLearn 等。

  • 面向機器學習建模全流程的排程框架、部署工具,如:DolphinScheduler、Airflow、Byzer、Kubeflow、Prometheus、Grafana 等。

相關閱讀

OpenMLDB 文件:

OpenMLDB Hive Connector 產品文件:

若您有相關問題,可以加入微信交流群:

file


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026745/viewspace-2935253/,如需轉載,請註明出處,否則將追究法律責任。

相關文章