Centos7.6系统里安装Superset,连接ClickHouse

news2025/1/18 4:30:48

本文是在centos 7 虚拟机中安装Superset和clickhouse,首先要有

安装python3环境

Centos7.6默认有python2,要先安装python3,下边这个python3安装教程很详细。

参考连接:CentOS7下安装Python3,超详细完整教程_centos7安装python3_清香可口柑的博客-CSDN博客​​​​​​

在安装过程中会遇到 环境变量配置的相关内容,对~/.bash_profile 配置文件的修改方法,可以参考这个连接:

修改vim .bash_profile_vim ~/.bash_profile_SmallMartin的博客-CSDN博客

安装 ClickHouse

1. 添加 ClickHouse 的 YUM 源:

sudo yum install -y yum-utils 
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG 
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64

2. 安装 ClickHouse:

sudo yum install -y clickhouse-server clickhouse-client

3. 启动 ClickHouse 服务:

sudo systemctl enable clickhouse-server 
sudo systemctl start clickhouse-server

安装 Superset

1. 安装依赖包:

sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel

2. 安装 Superset:

sudo pip3 install superset

然后需要将superset 配置环境变量,与配置python3、pip3的方法类似。

a. 找到Superset执行文件的位置,使用find命令:

sudo find / -name superset

这里可能会返回很多,选择一个就可以,我的路径是 /home/Python-3.6.10/bin/superset

b. 手动将 Superset 的执行文件添加到 PATH 路径中,方法与配置python3 和 pip3 的类似,可以编辑 ~/.bashrc~/.bash_profile 文件
i 输入命令:

vi ~/.bash_profile

ii 键入I,进入 Insert模式,编辑该文件,在文件末尾添加:

export PATH=/path/to/superset/bin:$PATH

注意:其中 /path/to/superset /bin 是 superset 命令所在的目录,例如我的这行代码就是export PATH=/home/Python-3.6.10/bin:$PATH,不需要加superset那一层

iii编辑完时候按 Esc退出编辑,输入: 不编辑文本即为推出成功,输入wq 保存

iiii 更新环境变量

source ~/.bash_profile

3. 安装环境
如果忽略这步,直接第4步也是可以的,可能会提醒No module named 'xxx',可以缺什么就补什么pip3 install xxx,但是需要考虑flask、werkzeug等的版本问题,推荐使用以下方法下载指定的版本:
i 新建一个superset_requirements.txt文本文档,

vi superset_requirements.txt

ii 在这个文件中添加以下内容:

#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile --output-file=requirements.txt setup.py
#
alembic==1.3.2            # via flask-migrate
amqp==2.5.2               # via kombu
apispec[yaml]==1.3.3      # via flask-appbuilder
attrs==19.3.0             # via jsonschema
babel==2.8.0              # via flask-babel
backoff==1.10.0           # via apache-superset (setup.py)
billiard==3.6.3.0         # via celery
bleach==3.1.0             # via apache-superset (setup.py)
celery==4.4.1             # via apache-superset (setup.py)
cffi==1.13.2              # via cryptography
click==7.1.1              # via apache-superset (setup.py), flask, flask-appbuilder
colorama==0.4.3           # via apache-superset (setup.py), flask-appbuilder
contextlib2==0.6.0.post1  # via apache-superset (setup.py)
croniter==0.3.31          # via apache-superset (setup.py)
cryptography==2.8         # via apache-superset (setup.py)
decorator==4.4.1          # via retry
defusedxml==0.6.0         # via python3-openid
flask-appbuilder==2.2.4   # via apache-superset (setup.py)
flask-babel==1.0.0        # via flask-appbuilder
flask-caching==1.8.0      # via apache-superset (setup.py)
flask-compress==1.4.0     # via apache-superset (setup.py)
flask-jwt-extended==3.24.1  # via flask-appbuilder
flask-login==0.4.1        # via flask-appbuilder
flask-migrate==2.5.2      # via apache-superset (setup.py)
flask-openid==1.2.5       # via flask-appbuilder
flask-sqlalchemy==2.4.1   # via flask-appbuilder, flask-migrate
flask-talisman==0.7.0     # via apache-superset (setup.py)
flask-wtf==0.14.2         # via apache-superset (setup.py), flask-appbuilder
flask==1.1.1              # via apache-superset (setup.py), flask-appbuilder, flask-babel, flask-caching, flask-compress, flask-jwt-extended, flask-login, flask-migrate, flask-openid, flask-sqlalchemy, flask-wtf
geographiclib==1.50       # via geopy
geopy==1.20.0             # via apache-superset (setup.py)
gunicorn==20.0.4          # via apache-superset (setup.py)
humanize==0.5.1           # via apache-superset (setup.py)
importlib-metadata==1.4.0  # via jsonschema, kombu
isodate==0.6.0            # via apache-superset (setup.py)
itsdangerous==1.1.0       # via flask
jinja2==2.10.3            # via flask, flask-babel
jsonschema==3.2.0         # via flask-appbuilder
kombu==4.6.8              # via celery
mako==1.1.1               # via alembic
markdown==3.1.1           # via apache-superset (setup.py)
markupsafe==1.1.1         # via jinja2, mako
marshmallow-enum==1.5.1   # via flask-appbuilder
marshmallow-sqlalchemy==0.21.0  # via flask-appbuilder
marshmallow==2.19.5       # via flask-appbuilder, marshmallow-enum, marshmallow-sqlalchemy
more-itertools==8.1.0     # via zipp
msgpack==0.6.2            # via apache-superset (setup.py)
numpy==1.18.1             # via pandas, pyarrow
pandas==0.25.3            # via apache-superset (setup.py)
parsedatetime==2.5        # via apache-superset (setup.py)
pathlib2==2.3.5           # via apache-superset (setup.py)
polyline==1.4.0           # via apache-superset (setup.py)
prison==0.1.2             # via flask-appbuilder
py==1.8.1                 # via retry
pyarrow==0.16.0           # via apache-superset (setup.py)
pycparser==2.19           # via cffi
pyjwt==1.7.1              # via flask-appbuilder, flask-jwt-extended
pyrsistent==0.15.7        # via jsonschema
python-dateutil==2.8.1    # via alembic, apache-superset (setup.py), croniter, flask-appbuilder, pandas
python-dotenv==0.10.5     # via apache-superset (setup.py)
python-editor==1.0.4      # via alembic
python-geohash==0.8.5     # via apache-superset (setup.py)
python3-openid==3.1.0     # via flask-openid
pytz==2019.3              # via babel, celery, flask-babel, pandas
pyyaml==5.3               # via apache-superset (setup.py), apispec
retry==0.9.2              # via apache-superset (setup.py)
selenium==3.141.0         # via apache-superset (setup.py)
simplejson==3.17.0        # via apache-superset (setup.py)
six==1.14.0               # via bleach, cryptography, flask-jwt-extended, flask-talisman, isodate, jsonschema, pathlib2, polyline, prison, pyarrow, pyrsistent, python-dateutil, sqlalchemy-utils, wtforms-json
sqlalchemy-utils==0.36.1  # via apache-superset (setup.py), flask-appbuilder
sqlalchemy==1.3.12        # via alembic, apache-superset (setup.py), flask-sqlalchemy, marshmallow-sqlalchemy, sqlalchemy-utils
sqlparse==0.3.0           # via apache-superset (setup.py)
urllib3==1.25.8           # via selenium
vine==1.3.0               # via amqp, celery
webencodings==0.5.1       # via bleach
werkzeug==0.16.0          # via flask, flask-jwt-extended
wtforms-json==0.3.3       # via apache-superset (setup.py)
wtforms==2.2.1            # via flask-wtf, wtforms-json
zipp==2.0.0               # via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools

参考:superset所需环境的博客
iii 在该文件目录下,安装依赖包

pip3 install -r superset_requirements.txt 

4. 初始化数据库:
如果不是第一次启动,直接这两个命令就可以初始化数据库,

# 创建一个空数据库
superset db upgrade
# superset初始化
superset init

在你第一次启动 Superset 时,需要创建一个管理员帐户,步骤如下
i 创建一个空数据库

superset db upgrade

ii 创建一个管理员账户

export FLASK_APP=superset
export FLASK_ENV=development
superset fab create-admin

我的版本是0.999.0,会遇到 no such command "create-admin" 的错误,可能是因为superset版本比较旧,可以使用以下这个命令

FLASK_APP=superset FLASK_ENV=production superset fab create-admin

之后会提醒设置用户名和密码,创建完成后,就可以使用这个帐户登录Superset 了。

iii 加载数据

iiii 初始化superset环境

superset init

5. 启动 Superset:
i在虚拟机中,可以使用以下命令来查看虚拟机的 IP 地址:

ifconfig

在命令输出中,找到网络接口的 IP 地址,通常以 eth0enp0s3 等命名,例如:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        ...

在这个例子中,虚拟机的 IP 地址为 192.168.1.100。然后,在启动 Superset 时,将 superset run 命令中的 -h 参数设置为这个 IP 地址,例如:

superset run -h 192.168.1.100 -p 8088 --with-threads --reload --debugger

这将使 Superset 只监听虚拟机的 IP 地址 192.168.1.100,并使用端口号为 8088。此时,你可以使用主机上的浏览器来访问 Superset,只需在浏览器中输入虚拟机的 IP 地址和端口号即可。

6. 访问 Superset 网页界面:
在浏览器中访问 http://IP地址:端口号,即可打开 Superset 的网页界面,开始使用。例如:http://192.168.1.100:8088

Superset 连接 Clickhouse

1. 安装 ClickHouse 数据库驱动:
如果需要连接 ClickHouse 数据库,还需要安装 ClickHouse 数据库驱动。安装的时候需要注意版本号是否匹配。

i 安装 greenlet

sudo pip3 install greenlet==0.4.17 -i https://pypi.tuna.tsinghua.edu.cn/simple```

ii 安装clickhouse-sqlalchemy

sudo pip3 install clickhouse-sqlalchemy==0.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple

2. Superset 连接 clickhouse数据库
完成上一章的第6步,进入到superset系统后,点击source中的databases
在这里插入图片描述
点击右上角的➕
在这里插入图片描述
在这里插入图片描述

Database中填写在superset中的新名称,SQLAlchemyURL的格式为:

clickhouse://<username>:<password>@<host>:<port>/<database>

其中:

  • <username>:ClickHouse 数据库的用户名(如果没有设置用户名,默认default)
  • <password>:ClickHouse 数据库的密码(如果没有设置密码,则留空)
  • <host>:ClickHouse 数据库的主机名或 IP 地址,如果和superset是一台主机,可以用localhost,或者127.0.0.1
  • <port>:ClickHouse 数据库的端口号,默认是 8123,检测端口是否已经打开且可以访问http://localhost:8123,返回ok既是没有问题
  • <database>:需要连接的 ClickHouse 数据库名

例如,假设 ClickHouse 数据库的 IP 地址、端口号是默认的 ,也没有设置用户名和密码,需要连接的数据库名是 mydatabase,那么对应的 SQLAlchemy URL 是:

clickhouse://default:@localhost:8123/mydatabase

勾选Allow Csv Upload ,Allow CREATE TABLE AS, Allow DML
点击Test Connection,返回Seems OK!即连接上了,点击Save保存。

参考博客:CLICKHOUSE+SUPERSET搭建数据平台(三)-SUPERSET安装并连接CLICKHOUSE–灰信网

容易报错的点

  1. 使用superset 命令行的时候,提醒 “superset: 未找到命令…”

    首先检查已经完成了pip install superset 的步骤,如果完成了,找一下是否已经有superset,使用find命令:

    sudo find / -name superset
    

    如果存在,检查是否加入环境变量,参考《安装superset》章节中的第2步;
    如果已经加入环境变量,就用source命令激活一下环境变量就可以了。

    source ~/.bash_profile
    
  2. 安装click-sqlalchemy出现的各种错误:
    指定要安装的greenletclick-sqlalchemy版本,参考《Superset 连接 Clickhouse》章节的 第一步

  3. superset所需要的依赖,按照版本装,不然容易冲突,参考《安装Superset》的第三步。

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

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

相关文章

使用vercel免费搭建vue项目

之前是通过Github作为服务器来发布静态网站&#xff0c;今天有人告诉我&#xff0c;这里有一个叫vercel的商家可以直接白嫖&#xff0c;来试试给他上一课。 1 注册账号 进入官网vercel.com进行注册&#xff0c;并且绑定自己的 Github 2 项目代码 若是自己的项目就不用管; 不是…

夏令营教育小程序开发功能和优势有哪些?

随着人们生活水平的提高&#xff0c;对于孩子的教育问题也是越来越重视&#xff0c;无论是教育方式还是教育内容上都追求新颖、多样化。在暑假期间&#xff0c;很多家长也希望孩子能够在这个长假期之间参加一些活动&#xff0c;培养孩子兴趣的同时也丰富假期内容&#xff0c;让…

【云原生进阶之PaaS中间件】第一章Redis-2.1架构综述

1 Redis组件模型 Redis 组件的系统架构如图所示&#xff0c;主要包括事件处理、数据存储及管理、用于系统扩展的主从复制/集群管理&#xff0c;以及为插件化功能扩展的 Module System 模块。 Redis的客户端与服务端的交互过程如下所示&#xff1a; 1.1 事件处理机制 Redis 中的…

21天学会C++:Day3----缺省参数

CSDN的uu们&#xff0c;大家好。这里是C入门的第三讲。 座右铭&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;C专题 目录 1. 知识引入 2. 缺省参数知识点 2.1 全缺省 2.2 半缺省 2.3 函数定义给缺…

MySQL 数据库 高可用 MAH

概述 什么是 MHA MHA&#xff08;Master High Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最…

数据结构-堆和堆排序-TopK问题

内容总览 1.堆的定义2.堆的实现接口&#xff08;大堆&#xff09;2.1 堆结构体定义2.2 堆的初始化与销毁2.3 堆的向上调整算法和插入2.4 堆的向下调整算法和删除堆顶元素2.5 堆的其他接口&#xff08;调整堆递归版本&#xff09; 3.建堆效率问题分析3.1 向上建堆3.2 向下建堆 4…

Java中的TCP (Android通用)

TCP服务端&#xff0c;创建了一个线程的接口 public class TCPServer implements Runnable {private static final String TAG "TCPServer";private String chaSet "UTF-8";private int port;private boolean isListen true;public TCPServer(int port)…

TypeScript 学习笔记 (学习中)

学习视频1&#xff1a;coderwhy 学习视频2&#xff1a;尚硅谷 文章目录 TypeScript 学习笔记概述TypeScript 开发环境搭建 类型注解类型推断 数据类型JS的7个原始类型Array数组object、Object 和 {}1.可选属性 ? 2.type 类型别名 和 接口interface函数TS类型: any类型 | unkno…

分享Python采集66个css3代码,总有一款适合您

分享Python采集66个css3代码&#xff0c;总有一款适合您 Python采集的66个css3代码下链接&#xff1a; 百度网盘 请输入提取码 提取码&#xff1a;mads css3svg炫酷水滴Loading特效 css剪裁GIF背景图片动画特效 纯CSS制作辛普森一家卡通人物动画特效 CSS3图片遮罩层变形…

1688商品详情数据采集技术,支持整站数据高并发采集

一、如何通过手动方式查看1688商品详情页面的数据 1.1688商品详情 API 接口&#xff08;item_get - 获得1688商品详情接口&#xff09;&#xff0c;1688API 接口代码对接可以获取到宝贝 ID&#xff0c;宝贝标题&#xff0c;价格&#xff0c;优惠价&#xff0c;掌柜名称&a…

ArcSWAT报错:-2147217385;创建栅格数据集失败

文章目录 1 报错内容2 报错分析3 解决方案3.1 数据集路径错误3.2 数据格式不受支持3.3 文件访问权限问题 1 报错内容 此报错通常发生在建立了一个SWAT数据库后&#xff0c;执行Watershed Delineator中的Automatic Watershed Delineation操作中&#xff0c;在选择了DEM数据后弹出…

亚马逊云科技Amazon Compute Optimizer基础设施

亚马逊云科技Amazon Compute Optimizer如今推出了一项新功能&#xff0c;可以利用多个CPU架构&#xff08;包括基于x86的实例和基于Amazon Graviton的实例&#xff09;更轻松地优化EC2实例。Compute Optimizer是一项可选服务基础设施&#xff0c;可为工作负载推荐最佳Amazon资源…

Kali-linux使用OpenVAS

OpenVAS&#xff08;开放式漏洞评估系统&#xff09;是一个客户端/服务器架构&#xff0c;它常用来评估目标主机上的漏洞。OpenVAS是Nessus项目的一个分支&#xff0c;它提供的产品是完全地免费。OpenVAS默认安装在标准的Kali Linux上&#xff0c;本节将介绍配置及启动OpenVAS。…

Flink基础介绍-3 Time与Window

Flink基础介绍-3 Time与Window 三、流处理中的Time与Window3.1 Time3.2 window3.3 Window API3.4 Watermark 三、流处理中的Time与Window 3.1 Time Event Time&#xff1a;是事件创建的时间。它通常由事件中的时间戳描述&#xff0c;例如采集的日志数据中&#xff0c;每一条日…

SpringSecurity原理和实际应用

前提知识 认证&#xff1a;系统提供的用于识别用户身份的功能&#xff0c;通常提供用户名和密码进行登录其实就是在进行认证&#xff0c;认证的目的是让系统知道你是谁。 授权&#xff1a;用户认证成功后&#xff0c;需要为用户授权&#xff0c;其实就是指定当前用户可以操作哪…

Spring Resource接口 学习

Resource 接口是 Spring 资源访问策略的抽象&#xff0c;它本身并不提供任何资源访问实现&#xff0c;具体的资源访问由该接口的实现类完成——每个实现类代表一种资源访问策略。Resource一般包括这些实现类&#xff1a;UrlResource、ClassPathResource、FileSystemResource、S…

MySQL基础(三十二)事务基础知识

1 数据库事务概述 1.1 存储引擎支持情况 SHOW ENGINES 命令来查看当前 MySQL 支持的存储引擎都有哪些&#xff0c;以及这些存储引擎是否支持事务。 能看出在 MySQL 中&#xff0c;只有InnoDB 是支持事务的。 1.2 基本概念 事务&#xff1a;一组逻辑操作单元&#xff0c;使数…

由浅入深理解java集合(三)——集合 List

一、List集合 List集合判断元素相等的标准 List判断两个对象相等只要通过equals()方法比较返回true即可&#xff08;关于equals()方法的详解可以参考第二篇文章中的内容&#xff09;。 下面以用代码具体展示。 创建一个Book类&#xff0c;并重写equals()方法&#xff0c;如果两…

ctf.show MiSC入门 图片篇 (信息附加)

目录 图片篇 信息附加 misc5 misc6 misc7 misc8 misc9 misc10 misc11 misc12 misc13 misc14 misc15 misc16 misc17 misc18 misc19 misc20 misc 21 misc22 misc23 misc41 图片篇 信息附加 misc5 打开后啥也没有 使用16进制编辑器打开&#xff0c;在最下面…

就业内推 | 上市公司招网工运维,有华为、思科、华三认证均可

01 软通动力 &#x1f537;招聘岗位&#xff1a;网络工程师 &#x1f537;职责描述&#xff1a; 1、负责大型数据中心网络运维及变更&#xff0c;包括架构优化、性能调优、服务上线 2、负责网络故障类问题定位及排查&#xff0c;对于复杂故障类问题能够定位、跟进和解决实施等…