“本文介绍Presto环境搭建,在之前安装好的Hadoop 3集群之上搭建Presto环境。”
1. 环境
1.1 设置主机名,配置hosts文件
准备3台虚拟机(CentOS 7),一台 master,两台 slave。master 作为coordinator,slave 均作为worker。
master : master.test.com
slave1 : node1.test.com
slave2 : node2.test.com
由于之前安装了Hadoop环境,/etc/hosts文件、NTP配置等不再重复。
1.2 设置环境变量
系统中安装jdk,将下载的presto 压缩包解压至/opt/presto,之后配置环境变量:
mkdir -p /opt/presto
tar --strip-components=1 -zxvf presto-server-0.225.tar.gz -C /opt/presto/
- /etc/profile中添加
#java
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#presto
export PRESTO_HOME=/opt/presto
export PATH=$PATH:$PRESTO_HOME/bin
2. Presto配置
2.1 新建用户及用户组
为presto组件建立单独的用户presto, 加入hadoop组
useradd presto -g hadoop
chown -R presto:hadoop /opt/presto
2.2 创建相关目录
-
新建日志目录
mkdir /opt/presto/etc/ mkdir /opt/presto/data/ chown presto:hadoop /opt/presto
2.3 配置文件
共需要配置/opt/presto/etc/目录下的5个配置,分别是
- node.properties
- jvm.config
- config.properties
- log.properties
- catalog配置
2.3.1 node.properties
node.environment=production
node.id=1
node.data-dir=/opt/presto/data
2.3.2 jvm.config
-server
-Xmx1G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
2.3.3 config.properties
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=18080
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://master.test.com:18080
coordinator=false
http-server.http.port=18080
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://master.test.com:18080
2.3.4 log.properties
com.facebook.presto=INFO
2.3.5 Catalog配置
Presto通过connectors访问数据,这些connectors挂载在catalogs上,通过在etc/catalog目录下创建catalog属性文件来完成catalogs的注册。
- JMX配置
可以先创建一个etc/catalog/jmx.properties文件,文件中的内容如下,完成在jmxcatalog上挂载一个jmxconnector:
connector.name=jmx
- hive配置 hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://node1.test.com:9083
3. 集群操作测试
-
- 启动master
su presto -c 'launcher start'
-
- 停止master
su presto -c 'launcher stop'
-
- Spark UI http://master.test.com:18080/
3.4 命令行接口
命令行接口
Presto CLI为用户提供了一个用于查询的可交互终端窗口。CLI是一个可执行JAR文件, 这也就意味着你可以像UNIX终端窗口一样来使用CLI。
下载presto-cli-0.255-executable.jar,重名名为 presto-cli , 使用 chmod +x 命令设置可执行权限,然后执行:
./presto-cli --server 127.0.0.1:18080 --catalog hive --schema default