基于docker搭建superset可视化分析平台

对于可视化分析方面,因为自己tableau已经用的很熟了,想增加对superset的认识和熟练程度,想搭建一个superset可视化分析平台,以便于自己在平时工作时使用。查看了superset的官方文档,发现superset必须使用python2.7或者python3.4,但我平时工作使用的是python3.6,存在版本的冲突,直接在自己电脑上安装比较麻烦。刚好对docker容器技术有一些了解,但没实践过,所以周末花了一点时间研究了一下如何基于docker来搭建一个可用于实际工作的superset可视化分析环境。如果你对此也感兴趣,可参考如下文档在自己的电脑上进行安装。

环境搭建好以后

  • 在docker容器里面运行superset应用,将端口映射到宿主机,这样可在宿主机中通过浏览器访问docker中开启的superset应用。
  • 将宿主机中存储sqlite数据库文件的目录映射给docker容器内superset应用的数据目录,这样只需要将数据存储到宿主机指定目录即可,方便进行分析。

我在windows和macOS上都进行了测试,本文分享的内容是针对Windows来写的.

1. windows10专业版,确认电脑的CPU支持虚拟化,且开启windows的hyper-v虚拟化功能
  • 家庭版的windows没有hyper-v虚拟化功能,不能够运行docker
  • 专业版的windows要确保处理器支持虚拟化技术并且已开启虚拟化,如下图所示显示虚拟化已启用才可以。
image
image
  • 要开启windows上的hyper-v虚拟化技术,默认情况下hyper-v是没有开启的,按Windows键,输入hyper-v,点击启用或关闭windows功能,开启hyper-v,然后重启电脑即可。
2. 安装docker的windows版本

网址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

下载完成后,直接双击安装即可。安装完成后,配置一个国内的docker镜像,这样在拉取仓库时的速度更快。我使用的是daocloud.io提供镜像加速服务,是免费的,只需要注册一个账号即可。

网址如下:http://www.daocloud.io/

注册后点击加速器,就会自动给你生成一个链接

将该链接复制,打开docker程序的设置选项,将此链接加入到镜像网址列表,点击apply,docker会进行重启,然后生效。

3. 在docker仓库中拉取包含打包好的superset应用的镜像(images)
  • 在镜像站中搜索与superset有关的镜像
docker search superset
C:\Users\richstone> docker search superset
NAME                            DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
amancevice/superset             [0.20.4] Superset on Debian/Python3             81                                      [OK]
tylerfowler/superset            An extendable Docker image for Airbnb's Su...   1
dailyhotel/superset             Dockerized Superset                             1                                       [OK]
sergekatzmann/superset-oracle   Docker container for Superset (Caravel) wi...   1
tyyzqmf/superset                根据amancevice/superset修改的镜像 主要解决superset联hi...   1                                       [OK]
crobox/superset                 Superset + Clickhouse docker image              1                                       [OK]
mav1/superset_docker            docker for superset                             0                                       [OK]
zmhassan/openshift-superset                                                     0
tddv/superset                   Superset is come from airbub superset open...   0                                       [OK]
peertopark/superset             Peer to Park Superset                           0
huksley/superset                AirBnB Superset with MySQL driver               0                                       [OK]
ssskip/docker-superset          airbnb superset python27 docker image           0                                       [OK]
maedamikio/superset                                                             0
muicoder/superset               Superset is a data exploration platform de...   0                                       [OK]
cnero/superset                                                                  0
xjw263/superset-dev             superset dev. https://github.com/airbnb/su...   0                                       [OK]
ganshanshan/superset_tddv       tddv superset                                   0                                       [OK]
gauseng/superset                                                                0
mnagaku/superset                Docker image for Apache Superset (incubati...   0                                       [OK]
therevoltingx/superset                                                          0
xjw263/superset-base            superset-base                                   0                                       [OK]
treexor/superset                                                                0
linxsysadmin/superset                                                           0
ganshanshan/superset1           superset1                                       0                                       [OK]
harisekhon/superset             Superset open source analytics UI by AirBNB     0                                       [OK]
  • 选择排在第一位,也就是star最多的那个仓库amancevice/superset,我这里指定镜像分支版本为0.20.0,这是我做测试时,最新的版本,将这个版本拉取到本地。
docker pull amancevice/superset:0.20.0

下载完成后如图所示,显示完成,且没有报错信息。

C:\Users\richstone> docker pull amancevice/superset:0.20.0
0.20.0: Pulling from amancevice/superset
219d2e45b4af: Pull complete
059cff580d2e: Pull complete
2a37b6ebe643: Pull complete
Digest: sha256:0b50f1e2d1a069f5be6a23039ad51f20ffa13ce0f8b6322d4b31f0f50d3449c2
Status: Downloaded newer image for amancevice/superset:0.20.0
  • 查看此时docker中的镜像
docker images

可以看到我们刚刚下载的镜像

 PS C:\Users\richstone> docker images
 REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
 amancevice/superset   0.20.0              6556ab9ce2be        13 days ago         1.53GB
4.在docker中运行superset
  • 在本地新建一个文件夹,我新建的文件夹为D:/Data/sqlite。稍后将这个文件夹映射给容器内的一个文件夹,让superset可以直接访问宿主机的数据文件。
  • 需要注意的时,映射给docker容器的宿主机文件夹所在的驱动器要开启共享,可以在docker菜单中进行设置。
  • 开启docker容器内的superset应用,开启的同时进行端口映射,并挂载宿主机的数据文件目录D:/Data/sqlite
docker run -d -p 8088:8088 -v D:/Data/sqlite:/home/superset amancevice/superset:0.20.0

命令解释

-d :后台运行
-p :宿主机和容器进行端口映射
-v :宿主机与容器进行文件位置映射,即将宿主机文件夹挂在到容器

成功开启后将会返回一组字符串,这是容器的ID

C:\Users\richstone> docker run -d -p 8088:8088 -v D:/Data/sqlite:/home/superset amancevice/superset:0.20.0
c2fc56d845eac0919e04dd5b302021f2ac0b5c4f0dcb7c2d6a6c25dded0dfd08
  • 查看开启的docker应用
  docker ps
C:\Users\richstone> docker ps
CONTAINER ID        IMAGE                        COMMAND                CREATED             STATUS                   PORTS
         NAMES
c2fc56d845ea        amancevice/superset:0.20.0   "superset runserver"   9 minutes ago       Up 9 minutes (healthy)   0.0.0.0:8088->80
88/tcp   ecstatic_galileo
5.对superset进行初始化设置

复制容器ID,container的ID,稍后我们要在这个容器内执行一些命令来初始化superset应用。

  • 设定superset的用户名和密码
  docker exec -it c2fc56d845ea  fabmanager create-admin --app superset
C:\Users\richstone> docker exec -it c2fc56d845ea  fabmanager create-admin --app superset
Username [admin]: ****
User first name [admin]: ****
User last name [user]: ****
Email [admin@fab.org]: ****
Password:
Repeat for confirmation:
Recognized Database Authentications.
  • 初始化数据库
  docker exec -it c2fc56d845ea superset db upgrade
  • 创建默认角色和许可
  docker exec -it c2fc56d845ea superset init
  • 开启superset服务
  docker exec -it c2fc56d845ea superset runserver
  • 打开宿主机上的浏览器,输入http://localhost:8088 用你刚刚创建的用户名进行登录即可。
Snip20171017_2.png
6.停止与开启superset服务
  • 列出在运行的容器
docker ps
C:\Users\richstone> docker ps
CONTAINER ID    IMAGE                       COMMAND               CREATED         STATUS            PORTS      NAMES

c2fc56d845ea  amancevice/superset:0.20.0   "superset runserver"   16 minutes ago      Up 16 minutes (healthy)   0.0.0.0:8088->8
088/tcp   ecstatic_galileo
  • 找到运行superset的容器ID,停止
docker stop c2fc56d845ea
  • 列出运行过的容器的ID,找到运行superset的容器ID
docker ps -a
  • 开启superset服务
docker start c2fc56d845ea
7.向宿主机的E:/Data/sqlit文件导入sqlite数据库文件

打开http://localhost:8088登录你的账号名与密码,即可对数据库文件中的表进行查询与可视化分析。

Windows上运行docker很容易出现各种各样的问题,所以推荐Linux系统或者macOS系统。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容