本文主要介绍如何在文件存储HDFS版上搭建及使用Presto。
前提条件
- 已开通文件存储HDFS版服务并创建文件系统实例和挂载点。具体操作,请参见文件存储HDFS版快速入门。
- 已在集群中安装Hive。本文使用的Hive版本为2.3.7。
- 已下载Presto安装包和presto-cli-xxx-executable.jar。本文使用的Presto版本为0.265.1。
背景信息
Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询。
说明 在本文中Presto是通过连接Hive的元数据服务来读取
文件存储HDFS版上的数据,在
文件存储HDFS版上使用Presto时需要额外配置一些依赖包。具体操作,请参见
步骤二:配置Presto。
步骤一:Hadoop集群挂载文件存储HDFS版实例
在Hadoop集群中配置文件存储HDFS版实例。具体操作,请参见挂载文件系统。
步骤三:验证Presto
- 执行以下命令,启动Hive的元数据服务。
- 启动Presto Server并连接Hive Metastore。
- 启动Presto Server。
presto-server-0.265.1/bin/launcher start
- 连接Hive Metastore。
presto-server-0.265.1/bin/presto --server localhost:8080 --catalog hive
- 通过Presto在Hive中创建数据库。
- 在文件存储HDFS版实例上创建测试目录。
hadoop fs -mkdir dfs://f-xxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/presto_test
- 在Hive中创建数据库。
CREATE SCHEMA hive.prosto_test
WITH (location = 'dfs://f-xxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/presto_test');

- 在刚创建的数据库中新建表并添加数据。
- 进入刚创建的数据库。
- 创建表。
CREATE TABLE user_info_test (
user_id bigint,
firstname varchar,
lastname varchar,
country varchar
)
WITH (
format = 'TEXTFILE'
);
- 在刚创建表中插入数据。
INSERT INTO user_info_test VALUES(1,'Dennis','Hu','CN'),(2,'Json','Lv','Jpn'),(3,'Mike','Lu','USA');

- 查看文件存储HDFS版实例上是否有刚创建的表数据。
hadoop fs -ls dfs://f-xxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/presto_test/*
如果返回信息显示刚创建的表数据,则表示Presto可以向文件存储HDFS版写入数据。
- 进行Word Count计算,检验Presto能否读取文件存储HDFS版上的数据并计算。
SELECT country,count(*) FROM user_info_test GROUP BY country;
如果返回信息与创建表中的信息一致,则表示Presto可读取
文件存储HDFS版上的数据并计算。
