Superset是一款轻量级BI工具。您可以使用Superset连接多个数据源自助分析并可视化、定义图表和看板、导入或导出看板,并且可以对用户和角色进行权限管理。本文以EMR-3.34.0版本的集群为例为您介绍如何使用Superset。

背景信息

Superset对E-MapReduce Druid做了深度集成,同时也支持多种关系型数据库。因为E-MapReduce Druid也支持SQL,所以您可以通过Superset以两种方式访问E-MapReduce Druid,即Apache Druid原生查询语言和SQL方式。

前提条件

已创建E-MapReduce(简称EMR)的Hadoop或Druid集群,并选择了Superset服务,详情请参见创建集群

使用限制

  • Superset默认安装在emr-header-1节点,暂不支持HA。
  • Superset不支持通过KNOX访问Web UI。
  • 在使用Superset前,确保您的主机能够正常访问emr-header-1,详情请参见通过SSH隧道方式访问开源组件Web UI

使用Superset访问Druid

  1. 登录Superset。
    您需要在SSH连接中创建隧道以查看开源组件的Web页面,详情请参见通过SSH隧道方式访问开源组件Web UI
    默认用户名和密码均为admin,请您登录后及时修改密码。
    说明 首次登录后默认是英文界面。
  2. 在Superset页面,单击右上角的language图标,选择Chinese
    显示中文界面。
  3. 添加Druid集群。
    1. 选择数据源 > Druid集群
    2. 单击Add图标。
    3. 添加Druid集群页面,配置如下参数。
      Add Druid
      参数 描述
      代理主机 固定填写为emr-header-1
      代理端口 需要在开源端口前加1。

      例如,开源Broker端口为8082,E-MapReduce中为18082。

      Cluster Name 您在E-MapReduce中创建的集群名称。
    4. 单击保存
  4. 添加数据源。
    1. 选择数据源 > Druid数据源
    2. 单击Add图标。
    3. 添加Druid数据源页面,配置如下参数。
      datasource
      参数 描述
      数据库名称 您可以自定义数据库的名称。
      集群 您添加的Druid集群的名称。
    4. 单击保存
      保存之后,您可以单击Edit图标,填写相应的维度列与指标列等信息。
  5. 查看添加的E-MapReduce Druid。
    数据源添加成功后,您可以单击数据源名称,进入查询页面进行查询。check-datasource

使用Superset访问Hive数据库

Superset提供了SQLAlchemy以多种语言支持各种各样的数据库,包括MySQL、Oracle、PostgreSQL和Microsoft SQL Server等关系型数据库,以及Hive、Presto和Druid等大数据查询引擎。这里以E-MapReduce Hadoop集群默认安装的Hive引擎为例,更多的数据库类型访问方式请参见SQLAlchemy

  1. 登录Superset。
    您需要在SSH连接中创建隧道以查看开源组件的Web页面,详情请参见通过SSH隧道方式访问开源组件Web UI

    默认用户名和密码均为admin,请您登录后及时修改密码。

  2. 在Superset页面,单击language图标,选择Chinese
    登录后默认是英文界面。
  3. 添加Hive数据库。
    1. 选择数据源 > 数据库
    2. 单击Add图标。
    3. 添加数据库页面,填写数据库名称和SQLAlchemy URI。
      DataBase
      参数 描述
      数据库 您添加的数据库的名称。
      SQLAlchemy URI 填写为hive://emr-header-1:10000/
    4. 单击保存
  4. 添加数据表。
    1. 选择数据源 > 数据表
    2. 单击Add图标。
    3. 导入一个已定义的表页面,配置如下参数。
      add table
      参数 描述
      数据库 您添加的数据库的名称。
      表名 您添加的数据库中存在的表的名称。

      本文示例添加的是test表。

    4. 单击保存
  5. 查询数据库。
    1. 选择SQL工具箱 > SQL编辑器
    2. 选择添加的数据库Hive JDBC Server。
    3. 选择default模式。
    4. 您可以执行Hive命令查看数据库信息。
      如下图所示。check_table

常见问题

  • 问题现象:EMR-4.6和EMR-3.33之前版本的集群,使用admin用户第一次登录Superset的Web UI时,报错invalid login。
  • 解决方法:
    1. 使用SSH方式登录到集群主节点,详情请参见登录集群
      注意 请使用root用户进行以下操作。
    2. 执行以下命令,进入Superset命令行。
      source /usr/lib/superset-current/bin/activate
    3. 执行以下命令,创建管理员用户。
      superset fab create-admin
      根据如下提示信息输入用户名、密码和确认密码等。
      Username [admin]:
      User first name [admin]:
      User last name [user]:
      Email [admin@fab.org]:
      Password:
      Repeat for confirmation:
      Recognized Database Authentications.
      Admin User admin created.
    4. 初始化用户。
      1. 执行以下命令,初始化数据库。
        superset db upgrade
      2. 执行以下命令,初始化Superset。
        superset init

        创建完成后,您需要创建隧道以查看开源组件的Web页面,然后使用新创建的用户登录Superset。创建隧道详情,请参见通过SSH隧道方式访问开源组件Web UI