【详细版】基于AWS EC2使用Docker安装部署Superset v2.0

文章目录

    • 1. SuperSet介绍
    • 2. 实验说明
    • 3. 实验配置
    • 4. SSH连接云实例
    • 5. 系统版本查看
    • 6. 主机名映射
    • 7. Docker安装
    • [可选] Docker Compose安装
    • 8. 安装superset
    • 9. 初始化superset容器
    • 10. 为superset加入连接Athena需要的依赖
    • 11. 为superset准备一个具有权限的IAM用户
    • 12. 添加此IAM用户的权限策略
    • 13. 登录Superset控制面板
    • 14. 使用superset与Athena连接
    • 15. 导入数据集
    • 16. 制作Charts
    • 17. 开启并嵌入仪表盘Dashboard
    • 18. 常见报错问题
    • 19. 参考链接

1. SuperSet介绍

image-20231128174832251

Apache Superset是一个开源的数据可视化和数据探索工具,它可以帮助用户通过创建交互式仪表板来探索和呈现数据。Superset最初由Airbnb开发,后来成为Apache软件基金会的一个孵化项目,目前是Apache顶级项目之一。

以下是Apache Superset的一些关键特点和功能:

  1. 数据连接:Superset支持多种不同类型的数据源,包括关系型数据库(如MySQL、PostgreSQL、SQL Server)、NoSQL数据库(如MongoDB)、云服务(如Amazon Redshift、Google BigQuery)以及文件格式(如CSV、Excel等)。

  2. 仪表板创建:用户可以使用Superset创建交互式仪表板,将数据可视化呈现为各种图表类型,包括柱状图、折线图、饼图、地图、热力图等。

  3. 数据探索:Superset提供了一个探索功能,允许用户探索和分析数据,执行数据切片和切块操作,以便更深入地了解数据。

  4. 自定义查询:用户可以使用SQL或图形化界面创建自定义查询,并将结果可视化为图表。

  5. 安全性:Superset提供了许多安全性功能,包括身份验证和授权,以确保只有授权的用户可以访问敏感数据。

  6. 集成:Superset可以与其他工具和平台集成,如Apache Druid、Apache Kafka、以及各种BI工具和数据存储系统。

  7. 社区支持:由于Superset是一个开源项目,它有一个活跃的社区,不断更新和改进软件,提供文档和支持。

总的来说,Apache Superset是一个功能强大的数据可视化和探索工具,可以帮助数据分析师、数据科学家和决策者更好地理解数据,从而做出更明智的决策。它的灵活性和可扩展性使其成为各种组织和项目的理想选择。

2. 实验说明

本实验是基于Amazon EC2实例,基于CentOS 7.9系统以Docker的安装方式,部署搭建Superset 2.0 版本。用于实现数据库接入、数据采集、数据图表制作、数据控制面板制作,数据可视化展示等相关功能。

3. 实验配置

云主机操作系统系统配置Docker版本Superset版本Superset访问端口
Amazon EC2CentOS 7.98C16GBv24.0.7v 2.08088

4. SSH连接云实例

ssh -i <密钥>  centos@<ip地址>

5. 系统版本查看

[root@superset ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

6. 主机名映射

$ sudo vim /etc/hosts
# 添加如下:
172.31.23.163   superset
52.82.109.114   superset
按:wq保存退出。

7. Docker安装

✨Docker安装参考链接:https://docs.docker.com/engine/install/centos/

  • 卸载旧版Docker
# Images, containers, volumes, and networks stored in /var/lib/docker/ aren't automatically removed when you uninstall Docker.
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
  • 安装Docker
# 安装yum-utils包(它提供yum-config-manager实用程序)
$ sudo yum install -y yum-utils# 设置存储库
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装Docker Engine、containerd和Docker Compose
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 启动docker服务
$ systemctl start docker && systemctl enable docker
$ systemctl status docker# 查看docker信息
$ docker version
Client: Docker Engine - CommunityVersion:           24.0.7API version:       1.43Go version:        go1.20.10Git commit:        afdd53bBuilt:             Thu Oct 26 09:11:35 2023OS/Arch:           linux/amd64Context:           default

[可选] Docker Compose安装

# 安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose# 授权
sudo chmod +x /usr/local/bin/docker-compose# 添加环境变量并生效
$ sudo vim .bashrc
# 添加内容如下:
export PATH=/usr/local/bin:$PATH
按:wq保存退出即可。$ source .bashrc# 查看docker-compose版本
$ docker-compose version

8. 安装superset

# 从互联网下载Superset docker镜像
$ sudo docker pull amancevice/superset:2.0.0【此实验使用的是2.0版本】
amancevice/superset:1.4.2
amancevice/superset:2.0.0
amancevice/superset:3.0.0# 检查是否已经完成镜像的下载
$ sudo docker images
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
amancevice/superset   3.0.0     4988654f9c90   6 weeks ago     2.49GB
amancevice/superset   2.0.0     893d72bb0d3a   11 months ago   2.54GB# 启动superset容器
`$ sudo docker run -p 8088:8088 -d amancevice/superset:2.0.0`$ docker run -d --name superset -u root  -p 8088:8088 -v /opt/module/docker/superset/conf:/etc/superset -v /opt/module/docker/superset/data:/var/lib/superset amancevice/superset:2.0.0# 更新数据库
$ docker exec -it superset superset db upgrade# 创建superset管理员用户
$ docker exec -it superset superset fab create-admin# 初始化
$ docker exec -it superset superset init# 查看Superset容器运行状态
$ sudo docker psdocker exec -it superset superset run --with-threads --reload --debugger

image-20231116212911579
image-20231128150909087

9. 初始化superset容器

# 执行docker exec -it CONTAINERID superset-init
$ sudo docker exec -it superset superset-init
Username [admin]: admin
User first name [admin]: admin
User last name [user]: admin
Email [admin@fab.org]: admin
Password:
Repeat for confirmation:
logging was configured successfully

image-20231116221637568

10. 为superset加入连接Athena需要的依赖

# docker exec -it CONTAINERID pip install PyAthenaJDBC/PyAthena
$ sudo docker exec -it a00173a7f026 pip install PyAthenaJDBC
或
$ sudo docker exec -it superset pip install PyAthena# 重启系统生效
$ reboot

image-20231116222354827

至此,完成了Superset的安装和对接Athena的准备工作。


11. 为superset准备一个具有权限的IAM用户

开通此用户superset访问密钥

image-20231117181352996

12. 添加此IAM用户的权限策略

AmazonAthenaFullAccessAmazonS3FullAccessAWSGlueConsoleFullAccess

image-20231117181318281

13. 登录Superset控制面板

image-20231128174540474
image-20231117181913552
image-20231117182136063

14. 使用superset与Athena连接

在添加数据库页面,需要填写Database名称,和SQLAlchemy URI,SQLAlchemy URI格式组成如下:

awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com.cn/{schema_name}?s3_staging_dir={s3_staging_dir}&
  • {aws_access_key_id}:{aws_secret_access_key}是刚刚创建的IAM ASSK
  • {region_name}是Athena所在区域
  • {schema_name}是Glue中存放表元数据的数据库名称
  • {s3_staging_dir}是保存查询结果和记录的桶名称和路径(可以填写Athena结果保存路径,或是创建一个新的桶路径填在这里)

例如最终拼接出中国区域的连接地址示例:

awsathena+rest://AKIASJCHSJHN87DXD980:XXXXXXXXXX@athena.cn-northwest-1.amazonaws.com.cn/ml-data-lake?s3_staging_dir=s3://aws-athena-query-results-xx/

全球区域的连接地址示例:

awsathena+rest://AKIAT2RQT5XMNQINWOG7:xxxxxxxxxx@athena.us-east-2.amazonaws.com/ml-data-lake?s3_staging_dir=s3://tmp-263168716248/athena-output/

image-20231117181739941
image-20231117181642569

15. 导入数据集

image-20231119210512578

image-20231119210541391

16. 制作Charts

image-20231119212017940
image-20231128175458769
image-20231128175555197

17. 开启并嵌入仪表盘Dashboard

# 进入super容器
[root@superset ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
amancevice/superset   2.0.0     893d72bb0d3a   11 months ago   2.54GB[root@superset ~]# docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED      STATUS                    PORTS                                       NAMES
f7a2d51fe3aa   amancevice/superset:2.0.0   "gunicorn superset.a…"   3 days ago   Up 23 minutes (healthy)   0.0.0.0:8088->8088/tcp, :::8088->8088/tcp   superset[root@superset ~]# docker exec -it superset /bin/bash
root@f7a2d51fe3aa:/home/superset## 修改config.py配置文件
root@f7a2d51fe3aa:/home/superset# vim /usr/local/lib/python3.8/site-packages/superset/config.py# 若执行vim命令失效,安装即可。
apt-get update
apt-get install vimroot@f7a2d51fe3aa:/home/superset# vim /usr/local/lib/python3.8/site-packages/superset/config.py
将EMNEDDED_SUPWESET的值由"False"修改成"True"# 重启Superset
$ sudo systemctl daemon-reload
$ sudo docker restart superset

image-20231128175155184

image-20231128175345959

18. 常见报错问题

报错一:Refusing to start due to insecure SECRET_KEY

image-20231116214021973

# 生成密钥
$ sudo openssl rand -base64 42
21flr4CawbRD+RwMcXJ6xN5DSJVWjMnt63TLZ+uLibtVTl/DqRKjY1Qq
1lQxdjKhLYa0DFjWQKVi6sS2bOMCOBKPgOiaO1wd6f1dlAfEpySPDRqg# 查看容器
$ docker ps# 进入容器
$ sudo docker exec -it -u root superset /bin/bash
或
$ sudo docker exec -it -u root a00173a7f026 /bin/bash# 进入容器内superset安装目录
$ cd /usr/local/lib/python3.9/site-packages/superset# 修改config.py文件中的SECRET_KEY
$ sed -i 's@SECRET_KEY = os.environ.get("SUPERSET_SECRET_KEY") or CHANGE_ME_SECRET_KEY@SECRET_KEY = "1lQxdjKhLYa0DFjWQKVi6sS2bOMCOBKPgOiaO1wd6f1dlAfEpySPDRqg"@' config.py# 查看原来的SECRET_KEY配置信息
$ cat config.py | grep SECRET_KEY
SECRET_KEY = os.environ.get("SUPERSET_SECRET_KEY") or CHANGE_ME_SECRET_KEY# # 查看替换好的SECRET_KEY配置信息
$ cat config.py | grep SECRET_KEY
SECRET_KEY = "21flr4CawbRD+RwMcXJ6xN5DSJVWjMnt63TLZ+uLibtVTl/DqRKjY1Qq"

报错二:sed: couldn’t open temporary file ./sedtTwnGr: Permission denied

# 以root管理员身份进入容器,即可获得管理员权限。
$ sudo docker exec -it -u root a00173a7f026 /bin/bash
root@a00173a7f026:/home/superset#或者在创建容器实例的时候,增加参数 --privileged=true

注意事项:

境内的亚马逊云无法访问境外的亚马逊云中的数据库。需要使用境外的云主机实例,才能关联Amazon Athena。

19. 参考链接

🎈[1] 【superset安装】史上最全superset安装过程中错误解决方案

🎆[2] 基于docker部署superset容器时出现的Refusing to start due to insecure SECRET_KEY报错解决办法

✨[3] Docker容器里没有权限执行命令,提示Permission denied

🎉[4] Superset安装部署(docker版)

🎁[5] https://bigdata.awspsa.com/4-数据分析与可视化/4_3-实验4.html

🎀[6] Docker部署Superset 2.1.0+开发环境+汉化+匿名访问+创建自定义图表(二次开发)+集成echarts+echarts百度地图

🎨[7] Welcome | Superset

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/189242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESP32-Web-Server编程- 通过滑动条向 Web 提交数据

ESP32-Web-Server编程- 通过滑动条向 Web 提交数据 概述 上一节我们讲述了通过文本框向 ESP32 发送字符串、数字。有时&#xff0c;我们需要向 ESP32 发送连续的值&#xff0c;这种需求可以通过在网页端实现滑动条来实现。 需求及功能解析 本节演示如何在 ESP32 上部署一个…

Spring @Cacheable缓存注解

一、简介 缓存介绍 缓存&#xff0c;在我们的日常开发中用的非常多&#xff0c;是我们应对各种性能问题支持高并发的一大利器。 Spring 从 3.1 开始就引入了缓存的支持。定义了如下两个接口来统一支持不同的缓存技术。 org.springframework.cache.Cacheorg.springframework.ca…

这个sql有点东西,记录一下

我有一个需求&#xff1a;在订单表里面查询指定时间的订单数据&#xff0c;如果要是没有订单的话&#xff0c;需要展示当天日期和数据&#xff0c;数据为0 先看一下效果&#xff1a; 话不多说&#xff0c;直接上SQL SELECTdate_range.date AS 日期,COUNT( oco.id ) AS 总订单…

Hdoop学习笔记(HDP)-Part.14 安装YARN+MR

十四、安装YARNMR 1.MR中间结果存储权限 使用Yarn提交MapReduce任务的时候&#xff0c;中间结果会保存在HDFS&#xff0c;/user/username/&#xff0c;如果/user目录下用户目录下不存在&#xff0c;则被创建&#xff0c;当MR执行结束之后&#xff0c;中间结果会被删除&#x…

【多线程】-- 08 线程状态观测、线程优先级、守护线程

多线程 5 线程状态 5.5 线程状态观测 Thread.State线程可以处于以下状态之一&#xff1a; NEW&#xff1a;尚未启动的线程处于此状态RUNNABLE&#xff1a;在Java虚拟机中执行的线程处于此状态BLOCKED&#xff1a;被阻塞等待监视器锁定的线程处于此状态WAITING&#xff1a;正…

英语助教求职简历模板(通用10篇)

以下10篇简历内容以英语助教招聘需求为背景制作&#xff0c;大家可以借鉴参考&#xff0c;希望能帮助大家在众多候选人中脱颖而出。 英语助教求职简历下载&#xff08;可在线制作)&#xff1a;百度幻主简历 英语助教简历1&#xff1a; 求职意向 求职类型&#xff1a;全职 …

Jmeter分布式压测

一、jmeter为什么要做分布式压测 jmeter本身的局限性 一台压力机的 Jmeter 支持的线程数受限于 Jmeter 其本身的机制和硬件配置&#xff08;内存、CPU等&#xff09;是有限的由于 Jmeter 是 Java 应用&#xff0c;对 CPU 和内存的消耗较大&#xff0c;在需要模拟大量并发用户…

GPT市场将取代插件商店 openAI已经关闭plugins申请,全部集成到GPTs(Actions)来连接现实世界,可以与物理世界互动了。

Actions使用了plugins的许多核心思想&#xff0c;也增加了新的特性。 ChatGPT的"Actions"与"Plugins"是OpenAI在GPT模型中引入的两种不同的功能扩展机制。这两种机制的目的是增强模型的功能&#xff0c;使其能够处理更多样化的任务和请求。下面是对两者的比…

熬夜会秃头——Beta冲刺总结随笔

这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标总结Beta冲刺团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 目录 一、Beta冲刺开始前设立的任务完成…

VMware虚拟机搭建+云平台购买搭建(阿里云+UCloud)【设置主机名以及主机名映射、配置免密登录、配置JDK】

本地虚拟机的搭建 一、准备网段 在VMware的虚拟网络编辑器中将VMnet8虚拟网卡的 网段设置为&#xff1a;192.168.88.0网关设置为&#xff1a;192.168.88.2 二、下载CentOS操作系统文件&#xff0c;并安装 三、克隆多台虚拟机 依照同样的方法&#xff0c;克隆出node2…

设计模式精讲:掌握工厂方法与抽象工厂的精髓

设计模式精讲&#xff1a;掌握工厂方法与抽象工厂的精髓 一、引言&#xff1a;如何学习设计模式&#xff1f;二、工厂方法&#xff08;也叫工厂模式&#xff09;2.1、代码结构2.2、符合的设计原则2.3、小结 三、抽象工厂3.1、代码结构3.2、符合的设计原则3.3、小结 总结 一、引…

rust持续学习 COW

COW我第一次看见还以为是奶牛 很奇怪是个啥 后来了解到是clone on write 缩写的&#xff0c;大乌龙啊 这个有两种enum,一种是borrow&#xff0c;一种是own rust中&#xff0c;数据读写经常涉及到所有权 这个borrow&#xff0c;很显然&#xff0c;就是不可变借用了 own就是可以写…

北邮22级信通院数电:Verilog-FPGA(12)第十二周实验(2)彩虹呼吸灯

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 二.管脚分配 三.实验效果 一.代…

大势智慧荣获2023光合组织解决方案大赛人工智能赛道标杆奖及争先奖!

近日&#xff0c;2023年第三届光合组织解决方案大赛获奖名单正式公布。大势智慧以基于国产化平台的实景三维全流程解决方案&#xff0c;突破层层选拔&#xff0c;最终荣获“集智计划”&#xff08;人工智能赛道&#xff09;标杆奖及争先奖。 实景三维是我国的数字基础设施&…

【Go】protobuf介绍及安装

目录 一、Protobuf介绍 1.Protobuf用来做什么 2. Protobuf的序列化与反序列化 3. Protobuf的优点和缺点 4. RPC介绍 <1>文档规范 <2>消息编码 <3>传输协议 <4>传输性能 <5>传输形式 <6>浏览器的支持度 <7>消息的可读性和…

R语言实验三

1、读取一个文件并进行如下操作。 ①使用命令清空工作空间&#xff0c;使用read.table读取exam_1.txt文件&#xff0c;将文件保存到data变量中&#xff0c;数据第一行设置为列名&#xff0c;第一列是行名。 ②判断对象data是否为矩阵。 ③将对象转换为矩阵&#xff0c;记为d…

【SpringBoot3+Vue3】七【后续2】【番外篇】- (使用docke部署)

目录 一、maven打包后端服务 1、clean 2、package 3、查看jar包 二、部署java后端服务 1、使用dockerfile构建一个java17的镜像 1.1 使用dokcerfile构建容器命令 1.2 方式一 将jar打包进容器镜像 1.3 方式二 jar不打包进容器镜像&#xff0c;通过映射主机目录映射方式…

mysql 查询提取json 并去除双引号

1.建表语句 CREATE TABLE uset_test_demo (id bigint(20) NOT NULL AUTO_INCREMENT,context text,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT4 DEFAULT CHARSETutf8;2.源数据 {"title": "Harry Potter","author": "J.K. Rowling&qu…

Linux基础项目开发1:量产工具——文字系统(四)

前言&#xff1a; 前面我们已经把显示系统&#xff0c;输入系统的框架搭建好了&#xff0c;那么有了输入和显示&#xff0c;显示的内容应该是什么呢&#xff1f;这节就要让我们一起对显示的内容&#xff0c;文字系统进行搭建。 目录 一、数据结构抽象 1.描述一个文字的位图&a…