统信uos部署presto前必须安装jdk 11并配置系统级java_home:下载jdk-11.0.22_linux-x64_bin.tar.gz,解压至/opt/jdk-11.0.22,创建软链接/usr/lib/jvm/java-11-openjdk-amd64,写入/etc/environment设置java_home,执行source /etc/environment生效。

安装Presto前的环境准备
统信UOS部署Presto需先确认Java运行时版本、系统架构及网络策略是否满足要求,否则后续服务无法启动或查询失败。Presto 0.285+要求JDK 11,UOS默认未预装,且部分国产化环境禁用非信创源软件包。
执行java -version检查当前JDK版本,若输出为1.8或未安装,则必须升级;UOS桌面版默认不启用root登录,所有安装操作需通过sudo提权完成。
下载OpenJDK 11官方二进制包(如jdk-11.0.22_linux-x64_bin.tar.gz),上传至/opt/src目录;解压后创建软链接:sudo ln -sf /opt/jdk-11.0.22 /usr/lib/jvm/java-11-openjdk-amd64。
【必须执行】设置系统级JAVA_HOME并写入/etc/environment:追加JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64",然后运行source /etc/environment立即生效。不执行此步,Presto启动脚本将找不到JVM。
使用tar包手动安装Presto Server
该方式绕过APT源限制,适用于UOS服务器版与信创加固环境,可精确控制部署路径和配置文件位置,避免包管理器自动覆盖关键参数。
访问PrestoDB官网GitHub发布页(https://github.com/prestodb/presto/releases),下载最新稳定版tar包,例如presto-server-0.285.tar.gz;上传至/opt/src。
解压并重命名安装目录:sudo tar -xzf presto-server-*.tar.gz -C /opt && sudo mv /opt/presto-server-* /opt/presto。
创建专用运行用户以符合UOS安全基线:sudo useradd -r -s /sbin/nologin presto;授权目录归属:sudo chown -R presto:presto /opt/presto。
验证基础结构:切换用户后执行sudo -u presto /opt/presto/bin/launcher --help,若返回帮助信息说明二进制可执行。
配置Presto协调节点与工作节点
单机测试场景下,同一实例同时作为coordinator与worker;生产环境须分离部署,但UOS信创环境常受限于资源,故此处按一体化配置说明。
第一步:创建配置目录结构
执行sudo mkdir -p /opt/presto/etc/{node, jvm, config, log };其中node存节点元数据,jvm存JVM参数,config存服务主配置。
第二步:写入节点标识文件
在/opt/presto/etc/node.properties中填入以下内容:
node.environment=production<br>node.id=ffffffff-ffff-ffff-ffff-ffffffffffff<br>node.data-dir=/opt/presto/data;【node.id必须唯一】每次重装需生成新UUID,可用
uuidgen命令生成。第三步:配置JVM启动参数
编辑/opt/presto/etc/jvm.config,写入:
-server<br>-Xmx4G<br>-XX:+UseG1GC<br>-XX:G1HeapRegionSize=32M<br>-XX:+ExplicitGCInvokesConcurrent<br>-Djdk.attach.allowAttachSelf=true<br>-Dfile.encoding=UTF-8<br>-Dsun.jnu.encoding=UTF-8;UOS内存调度策略较严格,
-Xmx4G不可超过物理内存50%,否则systemd启动时被OOM killer终止。第四步:设置协调节点核心参数
新建/opt/presto/etc/config.properties,内容如下:
coordinator=true<br>node-scheduler.include-coordinator=true<br>http-server.http.port=8080<br>query.max-memory=2GB<br>query.max-memory-per-node=1GB<br>discovery-server.enabled=true<br>discovery.uri=http://localhost:8080;注意
discovery.uri必须带协议和端口,缺一不可,否则Worker注册失败。添加Catalog连接器并验证Hive支持
Presto本身不存储数据,需通过Catalog对接外部数据源;UOS环境下最常用的是Hive连接器,依赖Hadoop客户端库与Metastore服务可达性。
方法一:启用内置Hive连接器
创建目录/opt/presto/etc/catalog;新建/opt/presto/etc/catalog/hive.properties,写入:
connector.name=hive-hadoop2<br>hive.metastore.uri=thrift://hive-metastore-host:9083<br>hive.config.resources=/etc/hadoop/core-site.xml,/etc/hadoop/hdfs-site.xml;若UOS未部署Hadoop,此步跳过,改用File或MySQL连接器。
方法二:配置MySQL连接器(轻量替代方案)
下载MySQL JDBC驱动mysql-connector-java-8.0.33.jar,放入/opt/presto/plugin/mysql/(需先创建该目录);新建/opt/presto/etc/catalog/mysql.properties:
connector.name=mysql<br>connection-url=jdbc:mysql://127.0.0.1:3306<br>connection-user=root<br>connection-password=your_password;UOS防火墙默认放行3306,但需确认MySQL已绑定
0.0.0.0而非127.0.0.1。执行sudo -u presto /opt/presto/bin/launcher start启动服务;等待10秒后,运行curl -s http://localhost:8080/v1/info | jq .environment,返回"production"即表示协调节点就绪。
配置Systemd服务并设为开机自启
UOS服务器版强制要求服务由systemd托管,禁止直接后台运行;手动启动的进程在终端关闭后会退出,且无法被统一审计。
创建systemd服务文件:sudo nano /etc/systemd/system/presto.service,填入以下内容:
[Unit]<br>Description=Presto Server<br>After=network.target<br><br>[Service]<br>Type=simple<br>User=presto<br>Group=presto<br>ExecStart=/opt/presto/bin/launcher run<br>Restart=on-failure<br>RestartSec=10<br>LimitNOFILE=65536<br><br>[Install]<br>WantedBy=multi-user.target
重载配置并启用服务:sudo systemctl daemon-reload && sudo systemctl enable presto && sudo systemctl start presto。
检查状态:sudo systemctl status presto,若显示active (running)且无Failed字样,说明服务已托管成功;日志实时查看用sudo journalctl -u presto -f。
开放防火墙端口:sudo ufw allow 8080(UOS桌面版)或sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload(UOS服务器版)。











