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。