presto单机单节点安装搭建与案例

41 篇文章 6 订阅
2 篇文章 0 订阅

一、什么是presto
Presto是Facebook开发的数据查询引擎,可对250PB以上的数据进行快速地交互式分析。
二、搭建presto
首先Centos 7.X 系统,JDK采用的Oracle的1.8.X的版本。presto的版本是采用最新版0.218,Python为版本Python 2.4+
在这里插入图片描述在这里插入图片描述
presto下载地址:
http://prestodb.github.io/resources.html
https://repo1.maven.org/maven2/com/facebook/presto/presto-server/
jdk下载地址:
https://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
三、安装与解压
1、首先安装jdk,安装步骤:
https://jingyan.baidu.com/article/9f7e7ec0f8c26b6f28155433.html
2、解压配置presto

tar zxvf presto-server-0.218.tar.gz

在这里插入图片描述3、创建preston的日志存放目录

mkdir prestoData

在这里插入图片描述
4、创建配置文件

mkdir etc
cd etc
touch node.properties jvm.config config.properties log.properties
mkdir catalog
cd catalog
touch jmx.properties

在这里插入图片描述
在这里插入图片描述
5、编写配置文件config.properties、jvm.config、log.properties、node.properties

vi config.properties
 
coordinator=true
node-scheduler.include-coordinator=false     #单机版的此处为true
query.max-memory=8GB
query.max-memory-per-node=1GB
http-server.http.port=9999    #与discovery.uri的端口一样
discovery-server.enabled=true
discovery.uri=http://192.168.252.152:9999    #ip为本机外网地址

在这里插入图片描述

vi jvm.config
-server
-Xmx8G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError

在这里插入图片描述

vi log.properties
book.presto=INFO

在这里插入图片描述

vi node.properties
node.environment=presto
node.id=presto_f1 #名字随便 但是不要重复
node.data-dir=/home/presto/prestoData  #日志路径

在这里插入图片描述

vi launcher
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export PATH=$JAVA_HOME:$PATH

在这里插入图片描述在这里插入图片描述
四、运行/查看状态/停止

启动

./launcher start

在这里插入图片描述
查看状态

./launcher status

在这里插入图片描述
停止

./launcher stop

访问

http://192.168.252.152:9999/ui/

在这里插入图片描述五、创建字节点
1、与创建主节点一样,但是需要改一下配置如下:

vi config.properties
coordinator=false
http-server.http.port=9999
query.max-memory=1GB
discovery.uri=http://192.168.252.152:9999

在这里插入图片描述在这里插入图片描述六、springboot+presto
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.citydo</groupId>
    <artifactId>springboot_presto</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_presto</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4.1212</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.5</version>
        </dependency>

        <dependency>
            <groupId>com.facebook.presto</groupId>
            <artifactId>presto-jdbc</artifactId>
            <version>0.217</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>1.5.14.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

application.yml

postgresql:
  spring:
    datasource:
      pa:
        driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://localhost:5432/postgres
        username: root
        password: 123456

presto:
  spring:
    datasource:
      marketing:
        driver-class-name: com.facebook.presto.jdbc.PrestoDriver
        url: jdbc:presto://localhost:8080/hive/default?user=databus
        #url: jdbc:presto://localhost:8080/hive/default?root=databus

mybatis:
  type-aliases-package: com.citydo.springboot_presto.domain.domain
  #mapper-location: classpath:mapper/*.xml

package com.citydo.springboot_presto.config;



import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;
/**
 * @ClassName DataSourcePrestoConfig
 * @Description 配置presto数据源
 * @Author qixin
 * @Date 2018/7/6 10:14
 * Version 1.0
 **/
/*marketing数据库*/
@Configuration
@MapperScan(basePackages = "com.citydo.springboot_presto.dao.test", sqlSessionTemplateRef  = "marketingSqlSessionTemplate")
public class DataSourcePrestoConfig {
    private final static Logger logger = LoggerFactory.getLogger(DataSourcePrestoConfig.class);
    @Bean(name = "marketingDataSource")
    @ConfigurationProperties(prefix = "presto.spring.datasource.marketing")
    public DataSource testDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "marketingSqlSessionFactory")
    public SqlSessionFactory testSqlSessionFactory(@Qualifier("marketingDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        /*加载mybatis全局配置文件*/
        //bean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource("classpath:mybatis/mybatis-config.xml"));
        /*加载所有的mapper.xml映射文件*/

        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/test/*.xml"));
        logger.info("加载presto数据库连接......");
        return bean.getObject();
    }

    @Bean(name = "marketingTransactionManager")
    public DataSourceTransactionManager testTransactionManager(@Qualifier("marketingDataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "marketingSqlSessionTemplate")
    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("marketingSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }


}


在这里插入图片描述
参考:https://blog.csdn.net/Alice_qixin/article/details/80976245
参考:https://blog.csdn.net/weixin_43704393/article/details/87275671

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值