Apache-Superset安装笔记-202403

本文详细描述了如何在RockyLinux上手动安装Superset,包括Python依赖的安装、数据库(MySQL和Oracle)连接配置,以及汉化过程。作者强调了生产环境不宜使用官网推荐的Python虚拟机安装方式,并提供了必要的环境变量设置和配置文件操作步骤。
摘要由CSDN通过智能技术生成

基本按官网安装步骤,但没有采用官网的python虚拟机安装方式,直接本地安装,根据官网及运行提示:此安装方式不适合生产环境使用。使用rocky linux 9.5最小安装,安装时系统dnf安装的默认Python 3.9.18版本

1、安装依赖,官网在这里一起安装wheel,但是安装时dnf提示没有wheel,所以这里没装下面使用pip安装

dnf install gcc gcc-c++ libffi-devel python3-devel python3-pip openssl-devel cyrus-sasl-devel openldap-devel 

2、更新安装pip,可以不更

pip3 install --upgrade pip

3、使用pip安装未安装的依赖

pip3 install wheel pillow
 

4、安装superset,未使用官网python虚拟机方式,本来就是虚拟机装linux再来个虚拟机太麻烦
pip install apache-superset

5、新版本要求算key,并且编辑superset_config.py文件写入其中,算key

openssl rand -base64 42

算出来的key类似:C9eOwFWI2Acc4+HmHriq9pvblSZfb+/OdQ421mD8NMD5FLlSQYa/aoMt

在任意你喜欢的位置创建superset_config.py文件写入key的变量内容,我放在root用户目录下面了,所以文件完整路径:~/superset_config.py

SECRET_KEY = 'C9eOwFWI2Acc4+HmHriq9pvblSZfb+/OdQ421mD8NMD5FLlSQYa/aoMt'

输出superset_config.py文件的位置变量给bash:

export SUPERSET_CONFIG_PATH=~/superset_config.py

上面这变量最好写到 /etc/profile 里面去,要不每次重启或者关闭bash还得重新执行下面的命令给bash

6、我用的另一台电脑上的mysql,没有使用自带的sqlite,现在远程数据库上创建superset数据库,然后再在本机操作以下内容

安装mysql依赖,可能官方文档较老,这里有个问题使用mysqlclient无法连接远程数据库(安装时没注意,可能这玩意根本就装不上或者没有了),后来搜罗到使用mysql-connector-python,下面依赖里面仍有mysqlclient,装不上就删掉
pip3 install mysqlclient pymysql mysql-connector-python

编辑第5步中的superset_config.py,写入mysql远程数据库连接

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:xxxx@192.168.1.xxx/superset'

SQLALCHEMY_TRACK_MODIFICATIONS = False

上面两行抄来的,第二行不知道起不起作用,没试,都写到配置文件里了,目前这个文件有三行了。

还得再一次输出文件环境变量给bash

export SUPERSET_CONFIG_PATH=~/superset_config.py

7、先输出flask变量再执行其他命令,否则提示错误
export FLASK_APP=superset

8、搞数据库的命令,创建表啥的
superset db upgrade

9、创建用户的命令,你愿意可以改用户名,我都默认回车,创建的admin用户,最后一步需要输入两次密码,俩命令分开执行

superset fab create-admin

superset init

10、修改firewall防火墙,永久放行8088
firewall-cmd --zone=public --add-port=8088/tcp --permanent
firewall-cmd --reload

11、启动superset,官网那个命令启动后远程浏览器访问不了,改了下

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

每次关闭bash或者重启都要来一次的环境变量输出

export FLASK_APP=superset

export SUPERSET_CONFIG_PATH=~/superset_config.py

把这两行加到/etc/profile里面可以避免每次都来一次,加入后执行下面命令,使当前没有变量的窗口生效

source /etc/profile 

然后再重启superset

到这里就可以使用浏览器登录使用了,下面内容是汉化和连接外部数据库(连接需要分析的外部数据库,这里弄了mysql和oralce)

12、汉化,汉化这一步网上搜罗来的,试了可用,直接抄

在superset_config.py中加入内容


# Setup default language
BABEL_DEFAULT_LOCALE = 'zh'
# Your application default translation path
BABEL_DEFAULT_FOLDER = 'superset/translations'
# The allowed translation for you app
LANGUAGES = {
    'en': {'flag': 'us', 'name': 'English'},
    'zh': {'flag': 'cn', 'name': 'Chinese'},
}

在来一次变量输出,export SUPERSET_CONFIG_PATH=~/superset_config.py ,重启superset即可,重启后浏览器访问右上角有中英文切换,汉化不彻底,有地方还是英文,大多数中文,凑合用可以

13、连接mysql

安装依赖
pip install mysql-connector-python

安装完了,重启superset,重新给变量,然后浏览器登录,在右上角找到创建数据库,写入如下连接
mysql+mysqlconnector://root:bjtaihua@192.168.1.xxx/数据库名

反正我连上了

14、连接Oralce

复制oracle客户端到当前superset所在系统,配置oracle环境变量

Oralce客户端在这下

Instant Client for Linux x86-64 (64-bit) (oracle.com)

找到你需要的版本,我的11.2.0.4,我没下rpm的,rpm我怕安装又缺依赖,而且按照搜罗来的方法还得找文件安装位置,太麻烦,我把对应版本的zip文件都弄下来了,统一解压到默认的instantclient_11_2文件夹下面(我记得是直接解压缩到本地,这些zip应该是根据功能不同分开打包的,原来实际就是一个文件夹下的),传到superset所在的系统下任意位置,我怕以后误删又给它套了一层文件夹,我的路径:/database/instantclient_11_2

弄环境变量,编辑/etc/profile,拉倒最下面加入下面内容,oralce客户端路径根据需要调整,字符集自己改,多数内容抄来的,不知道最上面两行起不起作用,反正弄上了

PATH=$PATH:$HOME/bin
export PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_HOME="/database/instantclient_11_2"
export TNS_ADMIN=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$PATH:$HOME/bin:$ORACLE_HOM

在oracle客户端文件夹下,创建一个 tnsnames.ora文件,写上连接的远程oracle数据库实例连接内容,我的是这样的:

#tnsnames.ora Network Configuration File: /database/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

test =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.xxx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )

test是实例名,还有数据库服务器IP地址和端口号等等

上面的都弄完可以用sqlplus试试能不能连接,反正我的不能,缺少依赖,sqlplus测试命令:

sqlplus 用户名/密码@test            test是上面的tnsnames.ora文件中的实例名

我的提示缺少xxxxxxx.so无法运行,缺少啥安装啥,譬如我缺少这俩:
dnf install libnsl libaio 

再用sqlplus试,可以了

安装superset的oralce连接件

pip install cx_oracle

按着上面第13步中的方法在superset里面创建连接,连接串

oracle+cx_orcle://用户名:密码@数据库名

反正我又行了

14、啰嗦

刚弄完的superset里面的sql工具箱(sql lab)没法用,不用管它,创建完连接后或者查询后就能用了,具体哪一步能用的忘了,还有cvs和excel上传那里是灰的也不用理他,弄个空的数据库连接上,然后在连接写字符串的配置过程中有个高级,安全,这下面有个允许上传的勾勾上就行了,你也可以在已有的数据库连接上改这个配置,找不到数据库连接在右上角设置里面有个测试连接(改中文改不回去了,懒得删配置文件内容,这里英文叫啥没注意),这里面有你创建的连接,也可在这改已有数据连接的配置。

postgresql我没有,没试,官方文档多数都是靠谱的,照着来基本没错,有错baidu和bing就能解决都用不到google。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值