presto對接TDH5.2.4版本

Presto是什麼?

Presto是一個開源的分佈式SQL查詢引擎,適用於交互式分析查詢,數據量支持GB到PB字節。

Presto的設計和編寫完全是爲了解決像Facebook這樣規模的商業數據倉庫的交互式分析和處理速度的問題。

它可以做什麼?

Presto支持在線數據查詢,包括Hive, Cassandra, 關係數據庫以及專有數據存儲。 一條Presto查詢可以將多個數據源的數據進行合併,可以跨越整個組織進行分析。

Presto以分析師的需求作爲目標,他們期望響應時間小於1秒到幾分鐘。 Presto終結了數據分析的兩難選擇,要麼使用速度快的昂貴的商業方案,要麼使用消耗大量硬件的慢速的“免費”方案。

TDH中和presto一樣的組件叫做inceptor,是星環科技的sql查詢引擎

由於inceptor上層程序連接,時不時會掉線,針對這個問題,現在通過presto進行數據查詢

以下給出presto的配置對接步驟:

需要的包如下:

jdk1.8.0_241

presto-server-0.173.tar.gz

presto-cli-0.161-executable.jar

1.各節點: 創建 presto 用戶,設置密碼。

useradd presto
passwd presto

mkdir -p /opt/presto/data
chown -R presto:presto /opt/presto/data 

 

2.修改用戶資源(root 用戶

各節點:修改用戶可用資源配置。主要涉及: 用戶最大可用的進程數、進程
能夠打開文件的最大數目。
vi /etc/security/limits.conf

* soft noproc 10240
* hard noproc 10240
* soft nofile 10240
* hard nofile 10240


不同服務器的文件名有差異,本文以 90-nproc.conf 爲例。
vi /etc/security/limits.d/90-nproc.conf
* soft nproc 10240
配置完成後,需重新登陸服務器查驗。

su - presto
ulimit -u
ulimit -n 

 

3.準備程序

各節點: 上傳 JDK Presto 程序包,並解壓。
tar -vxf jdk-8u111-linux-x64.tar.gz -C /opt/presto
tar -vxf presto-server-0.173.tar.gz -C /opt/presto

4.配置環境變量


各節點: 配置 presto 用戶的 Java 環境變量。
vi /home/presto/.bash_profile

export JAVA_HOME=/opt/presto/jdk1.8.0_111
export PATH=$PATH:$JAVA_HOME/bin

 


source /home/presto/.bash_profile
java -version
配置 Presto


5.配置 JVM
各節點: 新建 presto-server-0.173/etc 目錄, 在該目錄下新建、配置 jvm.conf
ig 文件。
mkdir /opt/presto/presto-server-0.173/etc
vi /opt/presto/presto-server-0.173/etc/jvm.config

-server
-Xmx32G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-DHADOOP_USER_NAME=hdfs


6.配置日誌級別

各節點: 新建、 配置 log.propertis
vi /opt/presto/presto-server-0.173/etc/log.propertis

com.facebook.presto=INFO

 


7.配置節點屬性
各節點: 新建、配置 node.properties(獲取 node.id, 每個節點的 node.id 須不
一樣)。
uuidgen
vi /opt/presto/presto-server-0.173/etc/node.properties

# presto 名稱, 同一集羣必須相同
node.environment=production

# presto 節點唯一標識, 執行命令 uuidgen 讀取
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
# 日誌目錄、 計算臨時存儲目錄, presto 用戶有讀寫權限
node.data-dir=/opt/presto/data 

 

 
配置屬性
各節點: 新建、配置 config.properties
vi /opt/presto/presto-server-0.173/etc/config.properties
coordinator 節點

coordinator=true
# 是否複用爲 worker 節點, false 爲否。默認爲 false
node-scheduler.include-coordinator=false
# 本節點 presto 服務端口號
http-server.http.port=8888
# query.max-memory-per-node * worker 節點的個數
query.max-memory=54GB
query.max-memory-per-node=18GB
discovery-server.enabled=true
# 本節點、 端口號
discovery.uri=http://coordinator 節點 ip:8888

 


worker 節點

coordinator=false
# 本節點 presto 服務端口號
http-server.http.port=8888
# query.max-memory-per-node * worker 節點的個數
query.max-memory=54GB
query.max-memory-per-node=18GB
# Presto 中 coordinator 所在節點,以及其端口號
discovery.uri=http://coordinator 節點 ip:8888 

 


8.配置 hive 連接信息
各節點: 創建 catalog 子目錄, 在該目錄新建、 配置 hive.properties
mkdir /opt/presto/presto-server-0.173/etc/catalog
vi /opt/presto/presto-server-0.173/etc/catalog/hive.properties

  1 connector.name=hive-hadoop2
  2 hive.metastore.uri=thrift://198.28.1.82:9083
  3 hive.config.resources=/opt/presto/core-site.xml,/opt/presto/hdfs-site.xml
  4 
  5 hive.metastore.authentication.type=KERBEROS
  6 hive.metastore.service.principal=hive/ht-28-tdh82@TDH
  7 hive.metastore.client.principal=hive@TDH
  8 hive.metastore.client.keytab=/opt/presto/inceptor.keytab
  9 
 10 hive.hdfs.authentication.type=KERBEROS
 11 #hive.hdfs.impersonation.enable=true
 12 hive.hdfs.presto.principal= hive@TDH
 13 hive.hdfs.presto.keytab=/opt/presto/inceptor.keytab

注意hive.metastore.service.principal=hive/ht-28-tdh82@TDH 一定要加上hosname,這是與開源hive不同的地方

注意#hive.hdfs.impersonation.enable=true 需要註釋這行,否則會有錯誤:

 

 以上就是presto的配置流程

各節點:啓動 Presto 服務。
/opt/presto/presto-server-0.173/bin/launcher start

通過 Presto 客戶端,訪問 Hive 數據進行驗證。
上傳客戶端,授權。 示例如下,其中 default 爲數據庫名稱。
chmod +x presto-cli-0.161-executable.jar
./presto-cli-0.161-executable.jar --server coordinator 節點 ip:8888 --catalog hive  --schema default
執行該語句後, 可在 Presto Shell 中執行:
presto> show tables;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章