标签:time 节点 cin import manager rman search 类型 jar包
服务端
https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.228/presto-server-0.228.tar.gz
客户端
https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.228/presto-cli-0.228-executable.jar
相关jar
https://repo1.maven.org/maven2/com/facebook/presto/presto-base-jdbc/0.228/presto-base-jdbc-0.228.jar
https://repo1.maven.org/maven2/com/facebook/presto/presto-spi/0.228/presto-spi-0.228.jar
官方文档:
http://prestodb.github.io/docs/current/connector/elasticsearch.html
tar -zxvf presto-server-0.228.tar.gz
cd presto-server-0.228/
mk dir etc
mkdir etc
mkdir data
cd etc
mkdir catalog
在新建的etc目录下vim config.properties
文件内容:
#是否为Coordinator调度节点
coordinator=true
#是否也作为work。对于大型集群来说,在coordinator里做worker的工作会影响查询性能
node-scheduler.include-coordinator=true
#指定HTTP端口。Presto使用HTTP来与外部和内部进行交流
http-server.http.port=9080
#查询能用到的最大总内存
query.max-memory=8GB
#查询能用到的最大单结点内存
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
#Presto使用Discovery服务去找到集群中的所有结点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署, 不需要额外的服务,Presto的coordinator内置一个Discovery服务。也是使用HTTP端口
discovery-server.enabled=true
#Coordinator节点的域名或者IP,Presto使用Discovery服务去找到集群中的所有结点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署, 不需要额外的服务,Presto的coordinator内置一个Discovery服务。也是使用HTTP端口
discovery.uri=http://xinyi:9080
在新建的etc目录下
vim jvm.config
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
在新建的etc目录下
vim log.properties
com.facebook.presto=INFO
在新建的etc目录下vim log.properties
文件内容:
#自定义环境名字,Presto集群中的结点的环境名字都必须是一样的。
node.environment=production
#唯一标识,每个结点的标识都必须是为一的。就算重启或升级Presto都必须还保持原来的标识。
node.id=ffffffff-ffff-ffff-ffff-fffffffffff1
#数据目录,Presto用它来保存log和其他数据
node.data-dir=/opt/presto-server-0.228/data
cd /安装目录/bin
./launcher start 后台启动
./launcher stop停止
./launcher run 前台启动,输出日志
./launcher restart 重启
通过修改presto安装目录如: /presto/bin/launther
修改launther,引入jdk1.8。
vim launther
PATH=/jdk安装目录/bin:$PATH
exec "$(dirname "$0)/launcher.py" "$@"
launcher.log
server.log
http-request.log
重命名客户端jar包presto-cli-0.228-executable.jar为presto 可执行文件
mv presto-cli-0.228-executable.jar presto
使用命令:
./presto --server locahost:9080 --catalog mysql--schema test
connector.name=mysql
connection-url=jdbc:mysql://localhost:3306
connection-user=root
connection-password=root
/launcher restart
在客户端安装目录执行
./presto --server locahost:9080 --catalog mysql--schema test
presto:es> select * from mysql.test.test;
connector.name=elasticsearch
#elasticsearch.default-schema=default
#指定表定义文件所在目录
elasticsearch.table-description-directory=etc/elasticsearch/
elasticsearch.scroll-size=1000
elasticsearch.scroll-timeout=2s
elasticsearch.request-timeout=2s
elasticsearch.max-request-retries=5
elasticsearch.max-request-retry-time=10s
cd /安装目录/etc/
mkdir elasticsearch
cd elasticsearch
每个表对应建立json映射文件,定义表名,es地址,索引名,类型,字段对应格式
cd elasticsearch
vim test.json
{"tableName": "es_test",
"schemaName": "es",
"host": "es-ip地址",
"port": 9300,
"clusterName": "my-application",
"index": "test",
"indexExactMatch": false,
"type": "test",
"columns": [
{
"name": "name",
"type": "varchar",
"jsonPath":"name",
"jsonType":"varchar"
},
{
"name": "age",
"type": "integer",
"jsonPath":"age",
"jsonType":"integer"
}
]
}
/launcher restart
./presto --server locahost:9080 --catalog elasticsearch --schema es
presto:es> select * from elasticsearch.es.es_test;
name | age
------+-----
HL | 12
HLl | 18
(2 rows)
./presto --server locahost:9080 --catalog elasticsearch --schema es
presto:es> select * from mysql.test.user t left join elasticsearch.es.es_test t1 on t.age=t1.age;
<dependency>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-jdbc</artifactId>
<version>0.228</version>
</dependency>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class PrestoJdbcDemo {
public static void main(String[] args) throws Exception{
Class.forName("com.facebook.presto.jdbc.PrestoDriver");
Connection connection = DriverManager.getConnection("jdbc:presto://localhost:9080/mysql/test","root",null); ;
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("select * from mysql.test.user t left join elasticsearch.es.es_test t1 on t.age=t1.age");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
connection.close();
}
}
presto-mysql、presto-elasticsearch、关联查询、java-presto-jdbc入门实战.
标签:time 节点 cin import manager rman search 类型 jar包
原文地址:https://www.cnblogs.com/yzlsthl/p/11805102.html