美文网首页
presto-0.280部署搭建

presto-0.280部署搭建

作者: 后知不觉1 | 来源:发表于2023-05-14 14:38 被阅读0次

1、下载包

通过七牛云保存了一个官方的包,可以对比md5值
http://qiniu.asdu.cn/presto-server-0.280.tar.gz

2、解压安装包

 tar -xvf  presto-server-0.280.tar.gz -C /opt/

3、配置

在安装目录下创建一个etc目录。在etc目录下配置以下信息:

  • 节点属性(Node Properties):每个节点的环境配置信息

  • JVM配置(JVM Config):JVM的命令行选项

  • 配置属性(Config Properties):PrestoServer的配置信息

  • 日志级别(Log Properties):日志级别配置信息

  • Catalog属性(Catalog Properties):连接器配置信息(数据源)

    cd /opt
    ln -s presto-server-0.280 presto-server
    cd /opt/presto-server-0.280
    mkdir etc

3.1、node.properties
plugin.dir=/opt/presto-server/plugin    #插件包目录
node.environment=production
plugin.config-dir=/opt/presto-server/etc/catalog  # 插件配置目录
node.data-dir=/data1/presto/data   #数据缓存目录
node.id=data1   #节点id,唯一即可
3.2、jvm.properties
-server
-Xmx2G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseGCOverheadLimit
-XX:OnOutOfMemoryError=kill -9 %p
-DHADOOP_USER_NAME=presto
-Duser.timezone=Asia/Shanghai
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=40
-XX:ConcGCThreads=4                         #gc线程数,可以不配置
3.3、Config Properties

coordinator配置

coordinator=true                         #是否成为调度节点
node-scheduler.include-coordinator=true  #是否成为worker节点
query.max-memory=2G                      #一个查询能够在整个集群上能使用的最大内存
query.max-total-memory=2G                #查询可以在整个集群上使用的最大用户和系统内存量
query.max-memory-per-node=1G             #单个查询能够在一台 worker 节点上能使用的最大用户内存
query.max-total-memory-per-node=1G       #查询可以在一台 worker 节点上使用的最大内存量 ,比如给调度节点保留部分资源
http-server.http.port=8285               #http-server.http.port:指定HTTP服务器的端口。Presto使用HTTP进行内部和外部所有通信。
discovery-server.enabled=true            #Presto使用发现服务Discovery service来查找群集中的所有节点。每个Presto实例在启动时都会向Discovery服务注册。为了简化部署并避免运行其他服务,Presto协调器coordinator可以运行Discovery服务的嵌入式版本。它与Presto共享HTTP服务器,因此使用相同的端口
discovery.uri=http://host-192-168-0-28:8285

内存关系,不然无法启动 jvm启动内存 >= max-total-memory >= query.max-memory >= query.max-total-memory-per-node >= query.max-memory-per-node

worker配置

coordinator=false
http-server.http.port=8080
query.max-memory=2GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=1GB
discovery.uri=http://host-192-168-0-28:8285
3.4 Catalog Properties

Presto通过connectors访问数据。这些connectors挂载在catalogs上。 connector可以提供一个catalog中所有的schema和表。 例如: Hive connector 将每个hive的database都映射成为一个schema, 所以如果hive connector挂载到了名为hive的catalog, 并且在hive的web有一张名为clicks的表, 那么在Presto中可以通过hive.web.clicks来访问这张表。
通过在etc/catalog目录下创建catalog属性文件来完成catalogs的注册

connector.name=hive-hadoop2         #hive链接器必须是这个名字
    hive.metastore.uri=thrift://192.168.0.139:9083,thrift://192.168.0.139:9083
hive.config.resources=/etc/hadoop/conf/core-site.xml, /etc/hadoop/conf/hdfs-site.xml
hive.allow-drop-table=false
hive.storage-format=ORC
hive.metastore-cache-ttl=1s
hive.metastore-refresh-interval=1s
hive.metastore-timeout=35m
hive.max-partitions-per-writers=1000

4、启动

cd /opt/presto-server
bin/lunach start

常见问题

1、读取hudi表问题

报错信息

    Caused by: java.lang.UnsupportedOperationException: readDirect unsupported in RemoteBlockReader
            at org.apache.hadoop.hdfs.RemoteBlockReader.read(RemoteBlockReader.java:492)
            at org.apache.hadoop.hdfs.DFSInputStream$ByteBufferStrategy.doRead(DFSInputStream.java:789)
            at org.apache.hadoop.hdfs.DFSInputStream.readBuffer(DFSInputStream.java:823)
            at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:883)
            at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:938)
            at org.apache.hadoop.fs.FSDataInputStream.read(FSDataInputStream.java:143)

原因
是因为版本不兼容问题导致的,hadoop 版本是2.7.3,presto中的版本用的2.7.4,而2.7.3没有这个方法所以报错

image.png

解决
hadoop提供了一个配置,指定读取的访问

dfs.client.use.legacy.blockreader FALSE 当为true时,则读取使用RemoteBlockReader类,当为false时,则使用RemoteBlockReader2类 RemoteBlockReader2为老版本的类

在Catalog中Properties修改hive.properites

hive.config.resources=/etc/hadoop/conf/core-site.xml, /etc/hadoop/conf/hdfs-site.xml,/opt/presto-server/etc/catalog/hdfs-site.xml

编辑/opt/presto-server/etc/catalog/hdfs-site.xml

<configuration  xmlns:xi="http://www.w3.org/2001/XInclude">
  <property>
    <name>dfs.client.use.legacy.blockreader</name>
    <value>false</value>
  </property>
</configuration>

重启presto

测试验证
下载presto-client wget http://rujgjftto.hn-bkt.clouddn.com/presto

 $presto_home/presto --server localhost:8285 --catalog hive --schema test --user hive

相关文章

网友评论

      本文标题:presto-0.280部署搭建

      本文链接:https://www.haomeiwen.com/subject/bavssdtx.html