使用Docker部署Apache Superset结合内网穿透实现远程访问本地服务

文章目录

    • 前言
    • 1. 使用Docker部署Apache Superset
      • 1.1 第一步安装docker 、docker compose
      • 1.2 克隆superset代码到本地并使用docker compose启动
    • 2. 安装cpolar内网穿透,实现公网访问
    • 3. 设置固定连接公网地址

前言

Superset是一款由中国知名科技公司开源的“现代化的企业级BI(商业智能)Web应用程序”,其通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。Superset在数据处理和可视化方面具有强大的功能,能够满足企业级的数据分析需求,并为用户提供直观、灵活的数据探索和展示方式。通过Superset,用户可以轻松地从海量数据中提取有价值的信息,帮助企业做出更加明智的决策。另外,团队协作进行数据分析,可以结合国内流行的内网穿透工具实现公网的实时远程访问数据。

Superset Logo

1. 使用Docker部署Apache Superset

使用Docker compose在docker中部署Apache Superset

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

All About Docker & Containers - What Is It & Why Do We Need It?

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 kcheckpolicy                  x86_64    2.5-8.el7                     base                                              295 kcontainer-selinux            noarch    2:2.119.2-1.911c772.el7_8     extras                                             40 kfuse-overlayfs               x86_64    0.7.2-6.el7_8                 extras                                             54 kfuse3-libs                   x86_64    3.6.1-4.el7                   extras                                             82 klibcgroup                    x86_64    0.41-21.el7                   base                                               66 klibsemanage-python           x86_64    2.5-14.el7                    base                                              113 kpolicycoreutils-python       x86_64    2.5-34.el7                    base                                              457 kpython-IPy                   noarch    0.75-6.el7                    base                                               32 ksetools-libs                 x86_64    3.3.8-4.el7                   base                                              620 kslirp4netns                  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登录界面

324596c479f7f17ff706a94656d2745

48a53d5f42840b330bc9d9e25717dfc

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

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

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

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

image-20231010171854756

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

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

20230322092214

20230322092215

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

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

  2. 协议:选择http协议

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

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

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

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

a66424e89856e2586c0ee15a9fd18fe

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

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

ac8b45b9d98ebfb2e07bb57a89e09b1

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

31c35254841b7e07c1272632b335383

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

c68f8a462c6b1f0a048c6800e3a6801

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

64e1524540e7a0154e98629f197da24

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

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

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

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

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

58c44d3b81d5630a66ce425b6c90da0

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

670a38ff09001f378bfd59a9fcaaf99

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

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

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

f1d4bfd091a8ee948fd97994e24ed26

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

5de37f7aaa6eca018514a366bfab9e8

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

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

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

相关文章

PSEUDO-LIDAR++:自动驾驶中 3D 目标检测的精确深度

论文地址:PSEUDO-LIDAR: ACCURATE DEPTH FOR 3D OBJECT DETECTION IN AUTONOMOUS DRIVING 论文代码:https://github.com/mileyan/Pseudo_Lidar_V2 摘要 3D 检测汽车和行人等物体在自动驾驶中发挥着不可或缺的作用。现有方法很大程度上依赖昂贵的激光雷…

ChatGPT Claude Bard 生成式 AI 免责声明

ChatGPT Claude Bard 生成式 AI 免责声明 ChatGPT can make mistakes. Consider checking important information.Claude.ai is in beta release and may display incorrect or harmful informationBard may display inaccurate info, including about people, so double-check…

华为数通方向HCIP-DataCom H12-831题库(判断题:81-100)

第81题 基本QinQ能根据业务种类选择外层Tag封装的方式 正确 错误 答案: 错误 解析: 基本QinQ是基于端口方式实现的,不能根据业务种类选择外层TAG封装的方式。 第82题 display interface GE0/0/0-次,发现Total Error计数(该接口物理层的错误报文总数目)不是此时可以断定当前…

【Spring Boot 3】【Redis】集成Redisson

【Spring Boot 3】【Redis】集成Redisson 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花…

CentOS7 开启防火墙及开放指定端口

CentOS7 开启防火墙及开放指定端口 查看防火墙状态systemctl status firewalld启动防火墙systemctl start firewalld停止防火墙systemctl stop firewalld查看防火墙已经开放的端口firewall-cmd --list-port添加开放指定防火墙firewall-cmd --zonepublic --add-port这里是需要开…

登录页面(附源码)

特色&#xff1a; 点击登录之后卡片翻转效果 话不多说&#xff0c;看展示。 还在等什么&#xff0c;赶快白嫖起来吧 HTML文件 <div id"window" style"display: none"><div class"page page-front"><div class"page-content&…

一些 AI 机构

文章目录 OpenAITHUDMMetaAITIIStability AINousResearch OpenAI hf : https://huggingface.co/openai 官网&#xff1a;https://openai.com THUDM 清华大学 KEG 和 THUDM 团队 Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University hf : https://h…

SCCB接口

文章目录 概述引脚传输时序起始/结束信号三线模式两线模式 传输周期3阶段写传输周期2阶段写传输周期2阶段读传输周期阶段一 ID Address阶段二 子地址/读数据阶段三 写数据 SCCB与IIC区别未完待续(还有代码&#xff09;... 概述 SCCB&#xff08;Serial Camera Control Bus&…

ElementUI简介以及相关操作

ElementUI是一套基于Vue.js的桌面端组件库&#xff0c;提供了丰富的组件帮助开发人员快速构建功能强大、风格统一的页面。以下是ElementUI的简介以及相关操作&#xff1a; 简介&#xff1a;ElementUI是一套为开发者、设计师和产品经理准备的基于Vue 2.0的桌面端组件库&#xff…

aspose-cells-20.7.jar 去除水印及次数限制

1.使用 jd-gui.exe 反编译查看&#xff0c;直接搜索 License 1.修改 public static boolean isLicenseSet() {return (a ! null);}改成 public static boolean isLicenseSet() {return true;}2.修改 public void setLicense(InputStream stream) {Document document null;if (…

【EI会议征稿通知】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议&#xff08;AIAHPC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…

SpringMVC:拦截器

一般我们会做一些统一的操作这个时候我们需要使用springmvc提供的拦截器&#xff0c;例如token的验证&#xff0c;字段必填的操作&#xff0c;接口超时判断&#xff0c;签名验证&#xff0c;字段加密等操作&#xff0c;所以我们需要了解执行先后顺序。 我们来简单介绍下实现过程…

第6章-路由器、交换机及其操作系统介绍

目录 1. 路由器与交换机的作用与特点 1.1. 路由器 1.2. 交换机 1.3. 路由交换 2. H3C路由器与交换机介绍 3. H3C网络设备操作系统Comware 1. 路由器与交换机的作用与特点 1.1. 路由器 1、定义&#xff1a;路由器&#xff08;Router&#xff09;是连接两个或多个网络的硬…

穿越Flink的时间隧道:解锁实时数据之窗,掌握流处理之巅

目录 Flink中的时间和窗口 1时间语义 1.1Flink中的时间语义 1.1.1处理时间 1.1.2事件时间 1.2那种时间语义更重要 2 水位线 2.1 事件时间和窗口 2.2 什么是水位线 2.3 如何生成水位线 2.3.1使用WatermarkGenerator 2.3.2使用SourceFunction 2.4 水位线的传递 2.5 水位…

bvh转fbx python实战代码

目录 参数含义: bvh转fbx python实战代码 参数含义: 参考: Export Scene Operators — Blender Python API filepath (string, (optional, never None)) – File Path, Filepath used for exporting the file check_existing (boolean

R语言中数据框是什么?

在数据分析过程中离不开表格&#xff0c;通常使用Excel来做数据分析&#xff0c;行和列用来存放不同的数据&#xff0c;表格能清晰直观的展示数据&#xff0c;而且可以将多张表组合联系起来&#xff0c;这种不约而同的规范也同样适用于R语言。 R语言中的数据框&#xff08;Data…

2023年度环境电器行业数据分析(洗地机、扫地机器人、吸尘器等)

在家电行业整体消费不振的环境下&#xff0c;环境电器市场也受到影响&#xff0c;2023年度市场大盘销售呈下滑趋势。根据鲸参谋平台的数据显示&#xff0c;2023年京东平台环境电器市场的销量累计约7100万&#xff0c;同比下滑约12%&#xff1b;销售额约360亿&#xff0c;同比下…

移动端自适应解决方法(原理是rem布局)

adaptive 点击跳转官方Git地址 此博客参考笔记 也可以直接复制下方的js文件直接使用 index.js var adaptive {}; (function (win, lib) {var doc win.document;var docEl doc.documentElement;// 设备像素比var devicePixelRatio win.devicePixelRatio;// 我们设置的布…

JavaScript 示例: jsencrypt 私钥 16位密码短语 + cryptojs AES加解密

JavaScript 示例: jsencrypt 私钥 16位密码短语 cryptojs AES加解密 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

[go] Stringer 类型

Stringer是Golang的fmt包中的一个类型。 Stringer由任何具有String方法的值来实现。 实现Stringer的类型与字符串的打印方式相同。Stringer会返回一个字符串。 type Stringer type Stringer interface {String() string }让我们看一个例子&#xff0c;我们有一个结构&#…