資料生態第四彈 | OpenMLDB Hive Connector,架構起資料倉儲到特徵工程的生態橋樑
導讀
近日,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 及以上。
關鍵流程
-
啟動 Hive 與 Hive metastore 服務
-
OpenMLDB 配置 Hive metastore URI
-
啟動 OpenMLDB 叢集
-
測試——從 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。
-
面向線上資料生態,如: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 產品文件:
若您有相關問題,可以加入微信交流群:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026745/viewspace-2935253/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hive:資料倉儲構建步驟Hive
- 構建資料安全合作生態,守護資料安全
- 美團DB資料同步到資料倉儲的架構與實踐架構
- 週日直播|OpenMLDB Pulsar Connector,高效打通實時資料到特徵工程特徵工程
- 基於Hadoop生態圈的資料倉儲實踐 —— 環境搭建(三)Hadoop
- 基於Hadoop生態圈的資料倉儲實踐 —— 環境搭建(二)Hadoop
- 資料湖+資料倉儲 = 資料湖庫架構架構
- hive資料倉儲匯入資料的方法Hive
- 讀資料湖倉04資料架構與資料工程架構
- 大資料生態中的 RocketMQ 5.0大資料MQ
- 騰訊雲資料庫生態經資料庫
- 前端人眼中的大資料生態鏈前端大資料
- Docker生態架構及部署Docker架構
- 資料倉儲建模工具之一——Hive學習第四天Hive
- 2024 開源資料工程生態系統全景圖
- 構建大資料健康發展的安全生態環境大資料
- 資料倉儲架構分層設計架構
- 大資料計算生態之資料計算(二)大資料
- 大資料計算生態之資料計算(一)大資料
- 雲生態下的基礎架構資源管理利器Terraform架構ORM
- 構建資料倉儲
- 分層架構在資料倉儲的應用架構
- 黑猴子的家:Hive 資料倉儲位置配置Hive
- 融合資料庫生態:利用 EventBridge 構建 CDC 應用資料庫
- mysqldump同步生產到生產資料MySql
- 一文教你看懂大資料的技術生態圈 Hadoop,hive,spark大資料HadoopHiveSpark
- 一、HIVE基本語法:建立資料倉儲Hive
- 資料編織:交易資料和分析資料的橋樑【含示例】
- 資料倉儲的構建(ZT)
- 巨杉資料庫入選中國資料管理生態報告資料庫
- 資料湖 VS 資料倉儲之爭?阿里提出大資料架構新概念:湖倉一體阿里大資料架構
- 讀資料湖倉08資料架構的演化架構
- 大資料生態圈技術框架總攬大資料框架
- 資訊圖:大資料企業生態圖譜大資料
- 資料量不大的資料倉儲方案有必要用 hive 嗎?Hive
- 華雲資料"信創+"生態釋出 :賦能信創生態,成就信創夥伴
- 資料倉儲(5)數倉Kimball與Inmon架構的對比架構
- 資料倉儲、資料集市、資料湖,你的企業更適合哪種資料管理架構?架構