【大數據】Docker部署HMS(Hive Metastore Service)并使用Trino訪問Minio

本文參考鏈接置頂:?Presto使用Docker獨立運行Hive Standalone Metastore管理MinIO(S3)_hive minio_BigDataToAI的博客-CSDN博客

一. 背景

團隊要升級大數據架構,需要摒棄hadoop,底層使用Minio做存儲,應用層用trino火spark訪問minio。在使用trino訪問minio時,需要使用hive的metastore service,經過調查HMS(Hive Metastore Service)是可以獨立于hive組件的,即不需要整體安裝hive,只部署HMS就可以使用trino通過HMS來訪問minio。

二. 環境和步驟

1. 一臺centos7服務器,裝有docker, IP地址10.38.199.202

2. 使用mysql5.7.35作為HMS的元數據存儲,使用dockers部署mysql服務

3. 使用docker部署HMS,這里部署在另外一臺server上,IP地址10.38.199.201

4. 部署minio對象存儲服務(本篇略去,使用已提供的服務)

5. 部署trino,配置metasotre服務及訪問minio,trino部署在IP地址10.38.199.203

三. 部署mysql服務

1.拉取mysql鏡像,版本5.7.35

docker pull mysql:5.7.35

2.查看鏡像

docker images|grep mysql

3.啟動mysql服務

docker run -p 3306:3306 --name mysql --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.35

4.查看mysql容器

docker ps|grep mysql

5.查看mysql日志

docker logs -f mysql

啟動成功

6.使用DBEVEA連接mysql服務,成功連接,并查看database

7.創建一個HMS的空數據庫metastore,后面HMS會用這個數據庫存儲元數據

四. 部署HMS,mestasotre service

1.部署前需要幾個安裝包

  • jdk安裝包,自行下載,版本1.8以上
  • HMS安裝包hive-standalone-metastore-3.1.2-bin.tar.gz,地址Central Repository: org/apache/hive/hive-standalone-metastore/3.1.2
  • mysql connect jar包mysql-connector-java-5.1.49.jar,地址https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.49
  • hadoop環境包hadoop-3.2.2.tar.gz,HMS需要依賴于它,地址Index of /dist/hadoop/common/hadoop-3.2.2

2.編寫metastore.xml

編寫前注意幾個參數

minio的參數必須給出

  • fs.s3a.endpoint
  • fs.s3a.access.key
  • fs.s3a.secret.key

mysql參數

  • javax.jdo.option.ConnectionURL
  • javax.jdo.option.ConnectionUserName
  • javax.jdo.option.ConnectionPassword

metastore參數

  • metastore.thrift.uris? 準備發布的metastore service URL
  • metastore.warehouse.dir hive表數據存儲位置
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>fs.s3a.access.key</name><value>bymOcmUZ6K8n5ApBu7Ee</value></property><property><name>fs.s3a.secret.key</name><value>lVtSARGXqypPpCRQ7LesGsfhRw3dE4imZoBs8ydS</value></property><property><name>fs.s3a.connection.ssl.enabled</name><value>false</value></property><property><name>fs.s3a.path.style.access</name><value>true</value></property><property><name>fs.s3a.endpoint</name><value>http://10.38.199.211:9000</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://10.38.199.202:3306/metastore?useSSL=false&amp;serverTimezone=UTC</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><property><name>metastore.thrift.uris</name><value>thrift://10.38.199.201:9083</value><description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description></property><property><name>metastore.task.threads.always</name><value>org.apache.hadoop.hive.metastore.events.EventCleanerTask</value></property><property><name>metastore.expression.proxy</name><value>org.apache.hadoop.hive.metastore.DefaultPartitionExpressionProxy</value></property><property><name>metastore.warehouse.dir</name><value>/tmp</value></property>
</configuration>

將這些包和metastore.xml文件放在同一目錄

3.創建Dockerfile

編寫Dockerfile

FROM centos:centos7WORKDIR /installADD jdk.tar.gz /installRUN pwd
ADD hive-standalone-metastore-3.1.2-bin.tar.gz /install
RUN mv /install/apache-hive-metastore-3.1.2-bin metastoreADD hadoop-3.2.2.tar.gz /install
#RUN mv /install/hadoop-3.2.2 hadoopRUN ls
ADD mysql-connector-java-5.1.49.jar ./metastore/libENV JAVA_HOME=/install/jdk
ENV HADOOP_HOME=/install/hadoop-3.2.2RUN rm -f /install/metastore/lib/guava-19.0.jar \&& cp ${HADOOP_HOME}/share/hadoop/common/lib/guava-27.0-jre.jar /install/metastore/lib \&& cp ${HADOOP_HOME}/share/hadoop/tools/lib/hadoop-aws-3.2.2.jar /install/metastore/lib \&& cp ${HADOOP_HOME}/share/hadoop/tools/lib/aws-java-sdk-bundle-*.jar /install/metastore/lib# copy Hive metastore configuration file
ADD metastore-site.xml /install/metastore/conf/# Hive metastore data folder
VOLUME ["/tmp"]WORKDIR /install/metastoreRUN bin/schematool -initSchema -dbType mysqlCMD ["/install/metastore/bin/start-metastore"]

創建鏡像,創建的同時會在mysql的metastore數據庫中創建基表

查看mysql中的metastore數據庫中是否創建了基表,成功

4.啟動metastore service容器并查看狀態

--啟動容器
docker run -d -p 9083:9083/tcp --name minio-hive-metastore minio-hive-standalone-metastore:v1.0--查看容器
docker ps|grep minio-hive-metastore

五. 部署并配置trino

trino單機部署不再介紹,catalog中參數配置如下,最新配置了hiveminio.properties這個catalog

啟動trino

bin/launcher start

六.測試trino通過HMS訪問minio

1.進入trino控制臺

./trino --server http://10.38.199.203:8091 --catalog hiveminio --schema default
show schemas;show tables;

2.創建一個schemas “zytest”,指向mino的buket “zytest”,并創建一張表sample_table,插入一行數據,檢查mimio界面是否插入成功

3.文件掛載,在minio的zytest下面,創建一個新的path external_path,然后放入一個parquet文件

在trino中創建表掛載這個目錄,并查詢表數據

至此,整個測試完成!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166268.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166268.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166268.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

干貨 | 攜程酒店基于血緣元數據的數據流程優化實踐

作者簡介 九號&#xff0c;攜程數據技術專家&#xff0c;關注數據倉庫架構、數據湖、流式計算、數據治理。 一、背景 元數據MetaData狹義的解釋是用來描述數據的數據&#xff0c;廣義的來看&#xff0c;除了業務邏輯直接讀寫處理的那些業務數據&#xff0c;所有其它用來維持整個…

kafka詳細講解與安裝

Kafka是一種分布式流處理平臺&#xff0c;具有高吞吐量、可擴展性和容錯性。它最初由LinkedIn開發&#xff0c;現已成為Apache軟件基金會的頂級項目。Kafka廣泛應用于實時數據流處理、日志收集、消息隊列等場景。 以下是關于Kafka的簡要講解和安裝步驟&#xff1a; 一、Kafka…

ubuntu22.04 arrch64版操作系統編譯zlmediakit

腳本 系統沒有cmake&#xff0c;需要通過apt先進行下載&#xff0c;下面的腳本已經包含了 # 安裝依賴 gcc-c.x86_64 這個不加的話會有問題 sudo yum -y install gcc gcc-c libssl-dev libsdl-dev libavcodec-dev libavutil-dev ffmpeg git openssl-devel gcc-c.x86_64 ca…

csrf漏洞修復

漏洞說明&#xff1a;通過篡改請求頭中的Referer值依舊能夠訪問到接口。 通過http請求頭里面的Referer隨意訪問接口 通過下面兩個代碼類程序來實現你的程序不會被攻擊&#xff0c;里面有兩個實體&#xff0c;如果你感覺這個程序對你有用&#xff0c;聯系我&#xff0c;我私發…

CentOS 7 安裝 Weblogic 14 版本

安裝JDK程序 注意&#xff1a;安裝weblogic前&#xff0c;先安裝JDK&#xff01;&#xff08;要求jdk(1.7以上)&#xff09;&#xff1a; 一、創建用戶組weblogic及用戶weblogic groupadd weblogic useradd -g weblogic weblogic二、將下載好的jdk及weblogic上傳至/home/webl…

2分鐘快速實現非邏輯卷磁盤擴容

在虛擬機環境中&#xff0c;您可以擴展虛擬硬盤的大小而不影響數據。以下是擴展 /dev/sdb 磁盤從200G到500G并擴展 /dev/sdb1 分區到新大小的步驟&#xff1a; 關閉相關服務&#xff1a;確保沒有服務正在訪問 /app 分區。 關閉虛擬機&#xff1a;關閉您要更改磁盤大小的虛擬機…

「首屆廣州百家新銳企業」名單出爐!數說故事遴選入圍

11月20日&#xff0c;由中共廣州市委統戰部、市工商聯、市工信局、市國資委、市科技局聯合主辦的首屆廣州百家新銳企業融通創新交流會在廣州成功舉辦。 為推動廣州市中小民營企業的創新發展&#xff0c;踐行新發展理念&#xff0c;厚植廣州產業根基&#xff0c;現場發布首屆廣…

qt實現播放視屏的時候,加載外掛字幕(.srt文件解析)

之前用qt寫了一個在windows下播放視頻的軟件&#xff0c;具體介紹參見qt編寫的視頻播放器&#xff0c;windows下使用&#xff0c;精致小巧_GreenHandBruce的博客-CSDN博客 后來發現有些視頻沒有內嵌字幕&#xff0c;需要外掛字幕&#xff0c;這時候&#xff0c;我就想著把加載…

SELinux零知識學習二十六、SELinux策略語言之類型強制(11)

接前一篇文章:SELinux零知識學習二十五、SELinux策略語言之類型強制(10) 二、SELinux策略語言之類型強制 3. 訪問向量規則 AV規則就是按照對客體類別的訪問許可指定具體含義的規則,SELinux策略語言目前支持四類AV規則: allow:表示允許主體對客體執行允許的操作。nevera…

docker compose啟動多個服務,如何查看多個服務的日志

使用docker-compose的--scale啟動多個服務&#xff0c;如何查看多個服務的日志 docker-compose -f yml路徑 logs -f --tail 100第一個-f指定yml路徑&#xff0c;不然會報錯誤no configuration file provided: not found 第二個-f是ogs的參數&#xff0c;表示實時刷新&#xff…

YOLOv5結合華為諾亞VanillaNet Block模塊

???YOLOv5實戰寶典--星級指南:從入門到精通,您不可錯過的技巧 ??-- 聚焦于YOLO的 最新版本, 對頸部網絡改進、添加局部注意力、增加檢測頭部,實測漲點 ?? 深入淺出YOLOv5:我的專業筆記與技術總結 ??-- YOLOv5輕松上手, 適用技術小白,文章代碼齊全,僅需 …

力扣labuladong一刷day19天花式遍歷

力扣labuladong一刷day19天花式遍歷 文章目錄 力扣labuladong一刷day19天花式遍歷一、48. 旋轉圖像二、54. 螺旋矩陣三、59. 螺旋矩陣 II 一、48. 旋轉圖像 題目鏈接&#xff1a;https://leetcode.cn/problems/rotate-image/ 思路&#xff1a;把矩陣向右旋轉90度&#xff0c;要…

完美解決AttributeError: ‘NoneType‘ object has no attribute ‘append‘

文章目錄 一、原始代碼二、修改后的代碼--最后一行代碼append進行了修改總結 一、原始代碼 logits_list [] # 創建一個空列表來存儲每個logitslabels_list []for i, batch in enumerate(test_tasks):with torch.no_grad():logits, labels, loss, acc self.fast_adapt(batc…

斯坦福大學引入FlashFFTConv來優化機器學習中長序列的FFT卷積

斯坦福大學的FlashFFTConv優化了擴展序列的快速傅里葉變換(FFT)卷積。該方法引入Monarch分解&#xff0c;在FLOP和I/O成本之間取得平衡&#xff0c;提高模型質量和效率。并且優于PyTorch和FlashAttention-v2。它可以處理更長的序列&#xff0c;并在人工智能應用程序中打開新的可…

【Python百寶箱】Python中的音視頻處理: 探索多樣化的庫和工具

Python中的音視頻處理: 探索多樣化的庫和工具 前言 在數字化時代&#xff0c;音視頻處理不僅僅是娛樂產業的需求&#xff0c;還滲透到了教育、醫療、安防等多個領域。Python作為一門強大而靈活的編程語言&#xff0c;為開發人員提供了豐富的資源來處理和分析音視頻數據。本文…

SQL Server Profiler基礎使用

文章目錄 SQL Server Profiler基礎使用簡介如何打開直接打開Microsoft SQL Server Management Studio工具欄打開 配置跟蹤新建跟蹤跟蹤屬性配置常規配置事件選擇 啟動跟蹤跟蹤時執行腳本跟蹤記錄 暫停跟蹤停止跟蹤 SQL Server Profiler基礎使用 簡介 一個圖形界面工具&#x…

逆矩陣相關性質與例題

1.方陣的行列式&#xff1a;就是將方陣中的每一個元素轉換至行列式中。 1.性質一&#xff1a;轉置方陣的行列式等于轉置前的行列式。&#xff08;對標性質&#xff1a;行列式與它的轉置行列式相等&#xff09; 2.性質二&#xff1a;|ka||a|*k的n次方&#xff0c;n為方陣階數。 …

芯片設計—低功耗isolation cell

&#xff08;一&#xff09;低功耗isolation cell的目的 低功耗架構設計需要前后端拉通規劃&#xff0c;前端設計有PMU功耗管理單元&#xff0c;比如A模塊電壓常開&#xff0c;B模塊電壓可關斷&#xff0c;那么請思考&#xff0c;當B模塊關斷電壓后&#xff0c;B模塊輸出到A模…

PDF控件Spire.PDF for .NET【轉換】演示:將在 C#/VB.NET 中將 PDF 轉換為 PCL

本文我們將演示如何通過調用 Spire.PDF 提供的方法 PdfDocument.SaveToStream() 將 PDF 頁面轉換為 HTML、Word、SVG、XPS、PDF 并將它們保存到流中。并且從Spire.PDF版本4.3開始&#xff0c;它新支持轉換定義范圍的PDF頁面并將其保存到流中。 Spire.Doc 是一款專門對 Word 文…

精益制造中的周轉箱和工具柜優勢

制造業&#xff08;Manufacturing industry&#xff09;是指機械工業時代利用某種資源&#xff08;物料、能源、設備、工具、資金、技術、信息和人力等&#xff09;&#xff0c;按照市場要求&#xff0c;通過制造過程&#xff0c;轉化為可供人們使用和利用的大型工具、工業品與…