EMR-3.33.0及后续版本或EMR-4.6.0及后续版本的集群已经默认支持Hue访问E-MapReduce(EMR)集群的Presto服务。本文为您介绍EMR-3.33.0以前版本或EMR-4.6.0以前版本的集群如何通过配置Hue访问Presto服务。

前提条件

  • 已创建EMR-3.33.0以前版本或EMR-4.6.0以前版本的集群,并选择了Presto服务,详细信息请参见创建集群
  • 已打开8888端口,详细信息请参见访问链接与端口
    注意 设置安全组规则时要针对有限的IP范围。禁止在配置的时候对0.0.0.0/0开放规则。

步骤一:下载Presto的JDBC驱动

  1. 使用SSH方式登录到集群,详细信息请参见登录集群
  2. 创建presto-jdbc的目录。
    mkdir -p  /opt/apps/presto-jdbc/
  3. 下载相应版本的JDBC JAR包,并上传至/opt/apps/presto-jdbc/目录。
    1. 下载presto-jdbc
      例如,本文示例创建的是EMR-3.32.0版本的集群,因为Presto版本是338,所以您可以下载338版本的JDBC JAR包。Presto_version
      下载下图中的JAR包。JDBC-JAR
    2. 上传JAR包至/opt/apps/presto-jdbc/目录,详情请参见上传文件
  4. 执行以下命令,修改文件权限。
    chmod 644 /opt/apps/presto-jdbc/*
  5. 执行以下命令,编辑文件hue.sh
    vim /etc/profile.d/hue.sh
  6. 添加以下内容至文件hue.sh最后一行。
    export CLASSPATH=/opt/apps/presto-jdbc/*:$CLASSPATH
    如下图所示:Edit file

步骤二:加载Presto的JDBC驱动

  1. 进入Hue配置页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,选择集群服务 > Hue
    6. 在Hue服务页面,单击配置页签。
    7. 服务配置区域,单击hue
  2. 添加Hue自定义配置。
    1. 单击右上角的自定义配置
    2. 新增配置项对话框中,添加配置信息。
      参数 描述
      notebook.interpreters.presto.name 固定值为Presto
      notebook.interpreters.presto.interface 固定值为jdbc
      notebook.interpreters.presto.options 固定值为{"url": "jdbc:presto://emr-header-1:9090/hive/default", "driver": "com.facebook.presto.jdbc.PrestoDriver", "user": "hadoop", "password": ""}
    3. 配置信息添加完成后,单击确定
  3. 保存配置。
    1. 单击右上角的保存
    2. 确认修改对话框,填写执行原因,并开启自动更新配置
    3. 单击确定
  4. 部署配置。
    1. 单击上方的部署客户端配置
    2. 执行集群操作对话框,选择执行范围和失败处理策略,填写执行原因。
    3. 单击确定
    4. 确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。
  5. 重启Hue。
    1. 在Hue集群服务页面,选择操作 > 重启Hue
    2. 执行集群操作对话框,选择执行范围和失败处理策略,填写执行原因。
    3. 单击确定
    4. 确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。

步骤三:通过Hue访问EMR集群的Presto服务

  1. 在左侧导航栏,单击访问链接与端口
  2. 单击Hue所在行的链接。
    Hue_port

    使用默认管理员admin登录,初始密码请参见查看初始密码

  3. 在Hue页面已显示Presto。
    表示您可以通过Hue访问EMR集群的Presto服务。Presto
  4. 可选:测试连通性。
    1. 选择查询 > 编辑器 > Presto
      Presto-hue
    2. 输入以下命令,查询集群上Schema的列表。
      show schemas
      返回如下信息:Presto_schema