Apache Superset本地部署结合内网穿透实现无公网IP远程查看数据

## 前言

本文主要介绍如何在 Linux 系统使用 Docker 部署 Apache Superset 并结合内网穿透工具实现远程访问本地服务的详细流程。

Superset 是一款现代化的企业级 BI(商业智能)Web 应用程序",其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。

Superset 在数据处理和可视化方面具有强大的功能,能够满足企业级的数据分析需求,并为用户提供直观、灵活的数据探索和展示方式。

通过 Superset,用户可以轻松地从海量数据中提取有价值的信息,帮助企业做出更加明智的决策。另外,团队协作进行数据分析,可以结合国内流行的内网穿透工具实现公网的实时远程访问数据。

1. 使用 Docker 部署 Apache Superset

使用 Docker compose 在 docker 中部署 Apache Superset

说明:部署步骤按照 superset 官网说明

1.1 第一步安装 docker 、docker compose

这里选择手动下载 rpm 包,然后 yum install *.rpm 方式来安装。 下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

说明:请选择自己对应的系统-可参考这个网页https://docs.docker.com/engine/install/。

下载 rpm 包如下: containerd.io-1.6.18-3.1.el7.x86_64.rpm

docker-ce-cli-23.0.1-1.el7.x86_64.rpm

docker-scan-plugin-0.23.0-1.el7.x86_64.rpm

docker-buildx-plugin-0.10.2-1.el7.x86_64.rpm

docker -ce-rootless-extras-23.0.1-1.el7.x86_64.rpm

docker-ce-23.0.1-1.el7.x86_64.rpm

docker-compose-plugin-2.16.0-1.el7.x86_64.rpm

将这些包手动上传至 centos 系统,例如: 我将这些包上传至/opt/dockerpackage目录

随后执行 yum install /opt/dockerpackage/*.rpm 即可。

``` 此时,安装docker与docker compose完成。

注意:你这台电脑最好有网,应该会有些依赖项需要安装。

这里列出这些依赖项,如果你没网,那几麻烦了,要自己去找对应版本下载。 audit-libs-python x86_64 2.8.5-4.el7 base 76 k checkpolicy x86_64 2.5-8.el7 base 295 k container-selinux noarch 2:2.119.2-1.911c772.el7_8 extras 40 k fuse-overlayfs x86_64 0.7.2-6.el7_8 extras 54 k fuse3-libs x86_64 3.6.1-4.el7 extras 82 k libcgroup x86_64 0.41-21.el7 base 66 k libsemanage-python x86_64 2.5-14.el7 base 113 k policycoreutils-python x86_64 2.5-34.el7 base 457 k python-IPy noarch 0.75-6.el7 base 32 k setools-libs x86_64 3.3.8-4.el7 base 620 k slirp4netns x86_64 0.4.3-4.el7_8 extras 81 k ```

这里验证 docker 是否安装好 启动 docker: sudo systemctl start docker pull 一个 hello world 执行看看:sudo docker run hello-world 看到 Hello from Docker 就表示可以了。

注意:这里 hello-world 镜像会从仓库 pull,如果没网,需要自己去 dockerhub 下载这个镜像。

1.2 克隆 superset 代码到本地并使用 docker compose 启动

这里不用 git clone 命令,直接下载 zip 包再解压即可 浏览器打开https://github.com/apache/superset网页,Dowanload ZIP 即可。

将下载的 ZIP 包(superset-master.zip)上传至/opt/superset目录,需要自己创建。 使用unzip superset-master.zip 解压后得到 superset-master 文件夹

随后cd superset-master- 如果要修改默认的用户名密码,请先看第 3 步,而后再继续。 执行docker compose -f docker-compose-non-dev.yml pull 这个过程会需要几分钟

上一步完成后,执行docker compose -f docker-compose-non-dev.yml up 等到控制台输出变慢后 就完成了。

此时打开浏览器 输入:http://IP:8088/或 localhost:8088 登录即可。 默认用户名密码是 admin

进入到 Superset 登录界面

2. 安装 cpolar 内网穿透,实现公网访问

这里我们用 cpolar 内网穿透工具,它支持 http/https/tcp 协议,不需要公网 IP,不需要设置路由器,使用不限制流量。

登录 cpolar 官网:https://www.cpolar.com

在 cpolar 的下载页面中,找到对应版本的 cpolar 安装程序,笔者使用的是 Windows 操作系统,因此选择 Windows 版下载。

下载完成后,将下载的文件解压,并双击其中的.msi文件,就能自动执行 cpolar 的安装程序,我们只要一路Next,就能完成安装。

由于 cpolar 会为每个用户创建独立的数据隧道,并辅以用户密码和 token 码保证数据安全,因此我们在使用 cpolar 之前,需要进行用户注册。注册过程也非常简单,只要在 cpolar 主页右上角点击用户注册,在注册页面填入必要信息,就能完成注册。

注册完后,登录 cpolar 的客户端,(可以在浏览器中输入localhost:8088直接访问,也可以在开始菜单中点击 cpolar 客户端的快捷方式),点击客户端主界面左侧隧道管理------创建隧道按钮,进入本地隧道创建页面

  1. 隧道名称:可以看做 cpolar 本地的隧道信息注释,只要方便我们分辨即可

  2. 协议:选择http协议

  3. 本地地址:本地地址即为本地网站的输出端口号,内网默认端口为 192.168.50.170:88,这里填入192.168.50.170:88

注意:如果正常输入 8080 端口,网页出现 400 情况,需要把前面 IP 完整填写到本地地址和点击 高级------Host头域

  1. 域名类型:如果打算创建临时数据隧道,则直接勾选"随机域名",由 cpolar 客户端自行生成网络地址

  2. 地区:与 cpolar 云端预留的信息一样,我们依照实际使用地填写即可

完成这些设置后,就可以点击下方按钮。

数据隧道创建完成后,cpolar 会自动跳转至隧道管理------隧道列表页面。在这个页面,我们可以对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击编辑按钮,对这条数据隧道的信息进行修改。

superset 数据隧道入口(公共互联网访问地址),则可以在状态------在线隧道列表中找到。

复制两个隧道的任意一个公网地址,粘贴到公网浏览器中。

粘贴公网地址到浏览器后,显示公网访问公司的内网 superset 登录界面,登录后实现公网访问内网。

3. 设置固定连接公网地址

由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn 已备案】

注意需要将 cpolar 套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn 已备案】

登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。

保留成功后复制保留成功的二级子域名的名称

返回登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

最后,我们使用固定的公网地址访问 superset,(两个地址复制哪一个都可以)可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,在外面就可以通过外网地址访问 superset 大数据系统了,随时随地查看数据!

相关推荐
泽55318010 分钟前
4.13日总结
开发语言·python·pycharm
CloudWeGo14 分钟前
Kitex Release v0.13.0正式发布!
后端·架构·github
快乐源泉23 分钟前
【设计模式】状态模式,为何状态切换会如此丝滑?
后端·设计模式·go
衝衝23 分钟前
Spring Data JPA技术深度解析
后端
玛奇玛丶25 分钟前
java的Random居然是假随机
后端
码农小站26 分钟前
Elasticsearch 深度分页踩坑指南:从报错到终极解决方案
后端
InsightFuture27 分钟前
Java金额转换实战:从数字到中文大写金额的完整实现
后端
_x_w38 分钟前
【10】数据结构的矩阵与广义表篇章
开发语言·数据结构·笔记·python·线性代数·链表·矩阵
kovlistudio42 分钟前
红宝书第三十六讲:持续集成(CI)配置入门指南
开发语言·前端·javascript·ci/cd·npm·node.js
c-c-developer1 小时前
C++Primer对象移动
开发语言·c++