百度MapReduce BMR

    Presto

    Presto简介

    Presto是一个分布式SQL查询引擎,用于查询分布在一个或多个不同数据源中的大数据集。Presto通过使用分布式查询,可以快速高效的完成海量数据的查询,并提供了Web UI页面方便用户查看任务查询详情与服务运行状态。

    创建集群

    登录百度云控制台,选择“产品服务->百度MapReduce BMR”,点击“创建集群”,进入集群创建页,BMR2.0.0及以上版本已支持 Presto 组件集成,购置集群时勾选 Presto 组件即可, 如下图所示:

    image2019-5-23_14-42-6.png

    使用简介

    Presto支持本地和远程两种操作方式。

    本地连接presto

    登录集群机器

    输入命令,进入presto终端交互页面:presto --catalog XXX --schema XXX ,示例如下: (参数含义:--catalog 是使用的数据源配置;--schema 用户选择查询的schema)

    presto --catalog hive --schema test
    presto:test>

    执行查询命令,示例如下:

    presto:test> select * from t2;
       id
    ---------
     1
    (1 row)
     
    Query 20190517_075918_00019_hs9fa, FINISHED, 1 node
    Splits: 17 total, 17 done (100.00%)
    0:01 [1 rows, 208B] [1 rows/s, 324B/s]

    远程连接presto

    将集群机器/opt/bmr/presto/bin目录下的presto-cli-0.219-executable.jar拷贝到本地 配置OpenVPN 执行连接命令:./presto-cli-0.219-executable.jar --server internal_ip:8089 --catalog XXX --schema XXX 即可连接到presto服务

    Presto UI界面

    访问步骤:

    1. 配置OpenVPN
    2. 在Master节点上执行 hostname 命令获取主机名
    3. 访问http://hostname:port (master_hostname:8089) 即可查看presto的监控页面,提供服务监控与查询详情等信息:

      2.png

    4. 可以通过页面的state选项可以对查询任务进行筛选:

      3.png

    5. 点击查询编号,可以进一步查看查询详情;对于失败的任务,也可以在查询详情页面查看相关日志:

      .

      .

      .

    注意事项

    由于Hive3 对managed tables实现了全控制,所以Persto不支持Hive的managed table查询、更改等操作;若需要通过Presto对Hive table进行查询等操作,请通过Hive创建External tables。 https://github.com/prestodb/presto/issues/12484 示例如下: 通过hive创建external tables,通过presto进行查询,查询成功:

    # 连接hive,创建外表
    hive> create external table test1 (id bigint) stored as textfile;
    hive> insert into test1 values(123);
    
    # 连接Presto,查询
    presto:test> select * from test1;
     id
    -----
     123
    (1 row)

    通过hive创建managed tables,通过presto进行查询,查询失败:

    # 连接hive,创建managed table
    hive> create table test2(id bigint) stored as textfile;
    
    # 连接Presto,查询
    presto:test> select * from test2;
    Query XXX failed: XXX
    上一篇
    Ranger
    下一篇
    Zeppelin