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


本站和网页 https://www.jianshu.com/p/d5978b439080 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

基于docker搭建superset可视化分析平台 - 简书登录注册写文章首页下载APP会员IT技术基于docker搭建superset可视化分析平台ccccfys关注赞赏支持基于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
要开启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系统。
推荐阅读更多精彩内容Docker-Linux-01一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...R_X阅读 4,103评论 0赞 27Docker文档整理与汇总写这篇文章主要是为了今后毕业论文素材上的整理,同时对docker进行巩固温习。大纲: docker简介docker...胡图仙人阅读 6,838评论 2赞 96Docker — 云时代的程序分发方式Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...ahohoho阅读 15,025评论 15赞 147Azure CTO谈Docker,Windows及Container趋势8月中旬,微软发布了Windows Server 2016预览版,正式加入了Container的特性,发布之前,M...灵雀云阅读 804评论 0赞 4职场人为什么一定要多读书文/古尔浪洼 大多数人的回答是:“很少。” 原因你可能会想得到:太忙,没时间! 真的吗?我认为的真的。 对吗?我认...古尔浪洼阅读 1,617评论 3赞 19《那些不曾发生的过去》第三十八章 假如,爱情曹凯这段时间真的很烦,至于为什么,他自己也是不清楚。照道理讲,他应该过得很舒服,跑盟上了正轨,活动经费也是不欠缺。...树不在了阅读 82评论 0赞 1Just for funHello jianshuchuter阅读 72评论 0赞 1芭蕾女王 Mary helen几个动作让你身姿更完美对跳芭蕾的姑娘而言,身材和体态都有一种自带优雅的气质。在欧洲,但凡家里有点钱的,都会让孩子去学芭蕾。 最出名的就是...SOULD舞蹈中心阅读 1,222评论 0赞 0作业:08 中国风表格排版其实,我选的背景图片,底下部分的横条和顶部是一样的,图片尺寸不对,裁剪也救不了,所以只能做成这样了...哎,我怎么...酗酒的猫阅读 304评论 5赞 1评论2赞1515赞16赞赞赏更多好文