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
登录Superset。
您需要在SSH连接中创建隧道以查看开源组件的Web页面,详情请参见通过SSH隧道方式访问开源组件Web UI。
默认用户名和密码均为admin,请您登录后及时修改密码。
说明首次登录后默认是英文界面。
在Superset页面,单击右上角的图标,选择Chinese。
显示中文界面。
添加Druid集群。
选择 。
单击图标。
在添加Druid集群页面,配置如下参数。
参数
描述
代理主机
固定填写为emr-header-1。
代理端口
需要在开源端口前加1。
例如,开源Broker端口为8082,E-MapReduce中为18082。
Cluster Name
您在E-MapReduce中创建的集群名称。
单击保存。
添加数据源。
选择 。
单击图标。
在添加Druid数据源页面,配置如下参数。
参数
描述
数据库名称
您可以自定义数据库的名称。
集群
您添加的Druid集群的名称。
单击保存。
保存之后,您可以单击图标,填写相应的维度列与指标列等信息。
查看添加的E-MapReduce Druid。
数据源添加成功后,您可以单击数据源名称,进入查询页面进行查询。
使用Superset访问Hive数据库
Superset提供了SQLAlchemy以多种语言支持各种各样的数据库,包括MySQL、Oracle、PostgreSQL和Microsoft SQL Server等关系型数据库,以及Hive、Presto和Druid等大数据查询引擎。这里以E-MapReduce Hadoop集群默认安装的Hive引擎为例,更多的数据库类型访问方式请参见SQLAlchemy。
登录Superset。
您需要在SSH连接中创建隧道以查看开源组件的Web页面,详情请参见通过SSH隧道方式访问开源组件Web UI。
默认用户名和密码均为admin,请您登录后及时修改密码。
在Superset页面,单击图标,选择Chinese。
登录后默认是英文界面。
添加Hive数据库。
选择 。
单击图标。
在添加数据库页面,填写数据库名称和SQLAlchemy URI。
参数
描述
数据库
您添加的数据库的名称。
SQLAlchemy URI
填写为hive://emr-header-1:10000/。
单击保存。
添加数据表。
选择 。
单击图标。
在导入一个已定义的表页面,配置如下参数。
参数
描述
数据库
您添加的数据库的名称。
表名
您添加的数据库中存在的表的名称。
本文示例添加的是test表。
单击保存。
查询数据库。
选择 。
选择添加的数据库Hive JDBC Server。
选择default模式。
您可以执行Hive命令查看数据库信息。
如下图所示。
常见问题
问题现象:EMR-4.6和EMR-3.33之前版本的集群,使用admin用户第一次登录Superset的Web UI时,报错invalid login。
解决方法:
使用SSH方式登录到集群主节点,详情请参见登录集群。
重要请使用root用户进行以下操作。
执行以下命令,进入Superset命令行。
source /usr/lib/superset-current/bin/activate
执行以下命令,创建管理员用户。
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.
初始化用户。
执行以下命令,初始化数据库。
superset db upgrade
执行以下命令,初始化Superset。
superset init
创建完成后,您需要创建隧道以查看开源组件的Web页面,然后使用新创建的用户登录Superset。创建隧道详情,请参见通过SSH隧道方式访问开源组件Web UI。