https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.181/presto-server-0.181.tar.gz
目前最新的presto版本是0.181,要求jdk不能低于1.8.0_92
主机名 | ip | role |
---|---|---|
slave1 | 192.168.1.115 | coordinator |
slave2 | 192.168.1.116 | worker |
主机名slave1和slave2没有任何意义,这是以前安装的虚拟机的遗留问题,请忽视这个细节
tar -zxvf presto-server-0.181.tar.gz
cd presto-server-0.181
mkdir etc
cd etc
mkdir catalog
mkdir -p /home/qun/data/presto #这个是数据目录,存放日志以及一些配置文件
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/home/qun/data/presto
注意node.id在整个集群必须唯一,值可以随便填,没有固定格式
-server
-Xmx2G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
因为我用的是虚拟机所以调小了jvm内存,官方设置-Xmx16G
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8999
query.max-memory=2GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://slave1:8999
vi etc/log.properties,内容如下
com.facebook.presto=INFO
connector.name=mysql
connection-url=jdbc:mysql://192.168.1.116:3306
connection-user=root
connection-password=123456
将slave1上配置好的安装包复制到slave2节点上
scp -r presto-server-0.181 qun@slave2:~/
mkdir -p /home/qun/data/presto
coordinator=false
http-server.http.port=8999
query.max-memory=2GB
query.max-memory-per-node=1GB
discovery.uri=http://slave1:8999
和coordinator不一样的是coordinator=false,代表这是一个worker节点
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-fffffffffff1
node.data-dir=/home/qun/data/presto
和coordinator不一样的是node.id=ffffffff-ffff-ffff-ffff-fffffffffff1,node.id必须集群唯一
[qun@slave2 presto-server-0.181]$ tree -I *.jar
.
|-- bin
| |-- launcher
| |-- launcher.properties
| |-- launcher.py
| `-- procname
| `-- Linux-x86_64
| `-- libprocname.so
|-- etc
| |-- catalog
| | `-- mysql.properties
| |-- config.properties
| |-- jvm.config
| `-- node.properties
|-- lib
|-- NOTICE
|-- plugin
| |-- accumulo
| |-- atop
| |-- blackhole
| |-- cassandra
| |-- example-http
| |-- hive-hadoop2
| |-- jmx
| |-- kafka
| |-- localfile
| |-- memory
| |-- ml
| |-- mongodb
| |-- mysql
| |-- postgresql
| |-- presto-thrift
| |-- raptor
| |-- redis
| |-- resource-group-managers
| |-- sqlserver
| |-- teradata-functions
| `-- tpch
`-- README.txt
在所有的节点上执行如下命令,一般情况下先启动coordinator,再启动worker
./bin/launcher start
[qun@slave2 log]$ ll /home/qun/data/presto/var/log/
总用量 8388
-rw-rw-r-- 1 qun qun 8306295 7月 30 22:40 http-request.log
-rw-r--r--. 1 qun qun 1512 7月 29 21:24 launcher.log
-rw-rw-r-- 1 qun qun 26582 7月 30 17:37 server.log
presto集成kerberos,只需要在coordinator上进行配置,worker和coordinator之间的通行还是采用之前的http方式,客户端(presto-cli,jdbc等)访问coordinator需要通过https并且需要进行kerberos认证;presto集群集成kerberos认证只需要在coordinator 节点上进行修改,worker节点保持不变,配置完后我们将用presto-cli的方式连接presto集群
yum install krb5-libs.x86_64 krb5-workstation.x86_64 krb5
修改/etc/krb5.conf,内容如下
[root@slave1 qun]# vi /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = XIAOMI.PRESTO
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
XIAOMI.PRESTO = {
kdc = xiaobin
admin_server = xiaobin
}
[domain_realm]
.xiaomi.presto = XIAOMI.PRESTO
xiaomi.presto = XIAOMI.PRESTO
kadmin -p admin/admin -q "addprinc -randkey [email protected]"
kadmin -p admin/admin -q "addprinc -randkey qun/[email protected]"
kadmin -p admin/admin -q "ktadd -k /etc/qun.keytab [email protected]"
kadmin -p admin/admin -q "ktadd -k /etc/qun.keytab qun/[email protected]"
需要注意的是alias需要和启动presto的用户名一样
[root@slave1 qun]# keytool -genkeypair -alias qun -keyalg RSA -keystore qunkeystore.jks
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: slave1
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的省/市/自治区名称是什么?
[Unknown]:
该单位的双字母国家/地区代码是什么?
[Unknown]:
CN=slave1, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
[否]: y
输入 <qun> 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
wget http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
将解压的jar放到如下目录中,主要是local_policy.jar和US_export_policy.jar
$JAVA_HOME/jre/lib/security/
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8999
query.max-memory=2GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://slave1:8999
http-server.authentication.type=KERBEROS
http.server.authentication.krb5.service-name=qun
http.server.authentication.krb5.keytab=/home/qun/presto-server-0.181/qun.keytab
http.authentication.krb5.config=/home/qun/presto-server-0.181/krb5.conf
http-server.https.enabled=true
http-server.https.port=7778
http-server.https.keystore.path=/home/qun/presto-server-0.181/qunkeystore.jks
http-server.https.keystore.key=keystorepd
-server
-Xmx2G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-Dsun.security.krb5.debug=true
-Dlog.enable-console=true
修改完后重启coordinator节点
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.181/presto-cli-0.181-executable.jar
cp presto-cli-0.181-executable.jar presto-cli
chmod +x presto-cli
[qun@slave1 ~]$ java -jar presto-cli-0.181-executable.jar \
--server https://slave1:7778 \
--enable-authentication \
--krb5-config-path /etc/krb5.conf \
--krb5-principal [email protected] \
--krb5-keytab-path /home/qun/presto-server-0.181/qun.keytab \
--krb5-remote-service-name qun \
--keystore-path /home/qun/presto-server-0.181/qunkeystore.jks \
--keystore-password keystorepd
presto> select count(*) from mysql.test.user;
_col0
-------
1
(1 row)
Query 20170730_021003_00003_bpf6r, FINISHED, 1 node
Splits: 18 total, 18 done (100.00%)
0:00 [1 rows, 0B] [3 rows/s, 0B/s]
./presto-cli \
--server https://slave1:7778 \
--enable-authentication \
--krb5-config-path /etc/krb5.conf \
--krb5-principal [email protected] \
--krb5-keytab-path /home/qun/qun.keytab \
--krb5-remote-service-name qun \
--keystore-path /home/qun/qunkeystore.jks \
--keystore-password keystorepd
presto> select count(*) from mysql.test.user;
_col0
-------
1
(1 row)
Query 20170730_021003_00003_bpf6r, FINISHED, 1 node
Splits: 18 total, 18 done (100.00%)
0:00 [1 rows, 0B] [3 rows/s, 0B/s]
kadmin -p admin/admin -q "addprinc -randkey [email protected]"
kadmin -p admin/admin -q "ktadd -k /etc/test1.keytab [email protected]"
[test@slave3 ~]$ ./presto-cli \
> --server https://slave1:7778 \
> --enable-authentication \
> --krb5-config-path /etc/krb5.conf \
> --krb5-principal [email protected] \
> --krb5-keytab-path test1.keytab \
> --krb5-remote-service-name qun \
> --keystore-path qunkeystore.jks \
> --keystore-password keystorepd
presto> show catalogs;
Catalog
---------
mysql
system
(2 rows)
Query 20170801_134406_00005_wa4q4, FINISHED, 1 node
Splits: 1 total, 1 done (100.00%)
0:00 [0 rows, 0B] [0 rows/s, 0B/s]
presto> select count(*) from mysql.test.user;
_col0
-------
1
(1 row)
Query 20170801_134419_00006_wa4q4, FINISHED, 1 node
Splits: 18 total, 18 done (100.00%)
0:00 [1 rows, 0B] [3 rows/s, 0B/s]
presto> show catalogs;
Error running command: javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.1.116 not verified:
certificate: sha256/i+KNkzrrH/NHzUruc9R+f0a/P8Ql/OhOKh9n3JtL1qg=
DN: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
subjectAltNames: []
这种问题由keystore生成的时候host指定错误造成的,您的名字与姓氏是什么?[Unknown]: slave1,slave1即是hostname
2. Authentication failed for token
com.facebook.presto.server.security.SpnegoFilter Authentication failed for token
Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)
解决办法如下,下载JCE
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
解压后替换$JAVA_HOME/jre/lib/security目录下的local_policy.jar,US_export_policy.jar
文章浏览阅读303次。转载自:https://www.cnblogs.com/hzl6255/p/4141505.html阅读目录1 介绍 2 详细内容 3 Attribute PDU 4 Attribute Protocol PDU回到顶部1 介绍ATT,Attribute Protocol,用于发现、读、写对端设备的协议(针对BLE设备)ATT允许设备作为服务端提供拥有关联值的属性集..._blc_gatt_pushreadbytyperequest什么意思
文章浏览阅读1.5k次。好的项目结构可以让后期的开发工作更好的展开_springboot service层的抽取baseservice
文章浏览阅读1.4k次,点赞3次,收藏4次。地址:https://www.codewars.com/582789178yy80255681.注册‘sign up’2.选择语言 python3.答题(1)The code does not execute properly. Try to figure out why. 找出代码的错误def multiply(a, b): ..._codewars换头像
文章浏览阅读270次。1.目的实现 bean 于jsonString 的转换2.引入maven依赖如下 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>..._jacksonsupport.tostring()
文章浏览阅读2.6k次。调试时发现的一个错误,异常内容为Err:java.sql.SQLException: Value 0000-00-00 can not be represented as java.sql.Timestamp原因:数据库中原来Data列的问题把原来可NULL的Date列改为非空后,MySql 默认把所有NULL值填为“0000-00-00 00:00:00“,导致错误发生 。解决方法: _can not be represented as java.sql.timestamp
文章浏览阅读137次。chattr:配置文件隐藏属性(注意:chattr命令只在Ext2/Ext3的文件系统上生效)语法:chattr [+-=][ASacdistu] 文件或目录名称参数:+ :添加某一个特殊参数,其他原本存在参数不动。- :移除某一个特殊参数,其他原本存在参数不动。= :配置后面接的参数A :当使用了A这个属性时,若你有存取此文件(或目录)时,他的存取时间atime 将 ..._lsattr文件只读
文章浏览阅读4.2k次。多GPU 进行深度学习_秋叶 多 gpu 训练
文章浏览阅读976次。BZOJ离线题库_bzoj
文章浏览阅读9.2k次。AltStore是一个iOS应用程序,允许您仅使用Apple ID将其他应用程序(.ipa文件)侧面加载到您的iOS设备上。AltStore使用您的个人开发证书对应用程序进行签名,然后将其发送到桌面应用程序AltServer,后者使用iTunes WiFi同步将重新签名的应用程序安装回您的设备。为了防止应用程序过期,当与AltServer使用相同的WiFi时,AltStore也将在后台定期刷新您的..._安装altstore显示server returned invalid response
文章浏览阅读273次。JDK1.7中引入了新的文件操作类java.nio.file这个包,其中有个Files类它包含了很多有用的方法来操作文件,比如检查文件是否为隐藏文件,或者是检查文件是否为只读文件。开发者还可以使用Files.readAllBytes(Path)方法把整个文件读入内存,此方法返回一个字节数组,还可以把结果传递给String的构造器,以便创建字符串输出。此方法确保了当读入文件的所有字节内容时,无论是否...
文章浏览阅读97次。 这里我们介绍文件上传的知识,使用的是apache的Commons FileUpload框架。文件上传的使用项目的部分结构如下:一、使用Commons FileUpload的上传功能,我们需要引入两个jar包:commons-fileupload和commons-io。首先我们列出html的部分<!DOCTYPE html><html lang="e...
文章浏览阅读2.2k次。IDEA2020.1新建项目后的maven是默认配置,设置安装好的maven仓库File —> New Prijects Settings —> Setting for New Projects…2. 进入后设置Build, Execution, Deployment —> Build Tools —> Maven_idea2020.1.1打开新项目时自动匹配maven