Supperset 本地安装

一、下载源码

git clone https://github.com/apache/superset.git

二、安装虚拟环境

cd superset

构建虚拟环境:

python3 -m venv venv;
source venv/bin/activate

deactivate

构建虚拟环境:

python3 -m pip install -r requirements/development.txt -i https://pypi.tuna.tsinghua.edu.cn/simple;

(总有一些包跟你的python版本冲突, 要修个一些requirements/development.txt 的版本指定)

pip install mysqlclient

ps: 碰到mysqlclient无法安装问题, 使用如下方法

参考:mac上python安装mysqlclient模块方法-天翼云

brew install mysql

#安装 mysqlclient 之前,先安装 openssl:
brew install openssl

#使用以下命令来安装 mysqlclient:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install mysqlclient

三、前端依赖准备:

31.前置依赖:安装node npm

// 安装
sudo npm install -g n
// 切换指定版本
sudo n latest
sudo n stable
sudo n lts

四、安装supperset

前置依赖:

安装:元数据DB

createdb -h localhost -p 5432 -U phoenix -E UTF-8 superset_db;
GRANT ALL PRIVILEGES ON DATABASE superset_db TO phoenix;

安装:样例数据DB

createdb -h localhost -p 5432 -U phoenix -E UTF-8 superset_examples_db;
GRANT ALL PRIVILEGES ON DATABASE superset_examples_db TO phoenix;

安装:Redis服务器

Mac安装Redis,原来就是这么简单_mac redis-优快云博客

安装主流程:

进入:cd superset

运行:make install

背后运行脚步:/Users/phoenix/superset/Makefile

配置:superset_config.py

配置 缓存服务器redis

REDIS_HOST = os.getenv("REDIS_HOST", "localhost") # 注意修改这个, 指向你的服务器
REDIS_PORT = os.getenv("REDIS_PORT", "6379")
REDIS_CELERY_DB = os.getenv("REDIS_CELERY_DB", "0")
REDIS_RESULTS_DB = os.getenv("REDIS_RESULTS_DB", "1")

配置元数据库和样例数据库:

先修改config.py 中的:SQLALCHEMY_DATABASE_URI

SQLALCHEMY_DATABASE_URI = 'postgresql://phoenix:123456@localhost:5432/superset_db'

在修改superset_config.py中的:


DATABASE_PORT=5432
DATABASE_DIALECT='postgresql'
POSTGRES_DB='superset_db'
POSTGRES_USER='phoneix'
POSTGRES_PASSWORD='123456'

#重点是下面者两个:
SQLALCHEMY_DATABASE_URI = 'postgresql://phoenix:123456@localhost:5432/superset_db'
SQLALCHEMY_EXAMPLES_URI = 'postgresql://phoenix:123456@localhost:5432/superset_examples_db'

安装过程中的问题:

问题1: python pip 未升级

解决方案: 根据提示升级pip, 修改requirements的版本号, 解决版本冲突问题。

问题2、Refusing to start due to insecure SECRET_KEY

解决方案:参考【superset安装】史上最全superset安装过程中错误解决方案_usage: superset [options] command [args]... try 's-优快云博客

环境变量问题:

1、安装过程系统会生成配置文件:superset_config.py(用户自定义), 改文件会覆盖掉config.py中相同的部分, 两个文件路径如下:

/Users/phoenix/superset/docker/pythonpath_dev/superset_config.py

/Users/phoenix/superset/superset/config.py

2、但是安装脚步不会修改MAC的环境变量, 需要自行单独修改:

sudo open -e /etc/profile;  

添加一行:export SUPERSET_CONFIG_PATH=/Users/phoenix/superset/docker/pythonpath_dev/superset_config.py;

问题三:前端登陆用户和密码设置:

make install 会自动设置用户名, 在这个文件中定义的:/Users/phoenix/superset/Makefile

superset fab create-admin \
                    --username admin \
                    --firstname "Admin I."\
                    --lastname Strator \
                    --email admin@superset.io \
                    --password general
 

问题四:superset load-examples 报错

防火墙问题, 从git拉样例数据报错, 多拉几次就好

p.s: 安装过程中的问题:

1、Refusing to start due to insecure SECRET_KEY

export SUPERSET_CONFIG_PATH=/Users/phoenix/superset/docker/pythonpath_dev/superset_config.py

参考:
superset 源码的 IDE 调试_superset修改源码后如何重新编译运行-优快云博客

【superset安装】史上最全superset安装过程中错误解决方案_usage: superset [options] command [args]... try 's-优快云博客

Superset配置_superset config-优快云博客

问题五:跨域访问+iframe嵌套问题

设置config.py文件

WTF_CSRF_ENABLED = False        # 解决跨域
# PUBLIC_ROLE_LIKE: Optional[str] = "Gamma"
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = 'Public'
TALISMAN_ENABLED = utils.cast_to_boolean(os.environ.get("TALISMAN_ENABLED", False))
DEFAULT_HTTP_HEADERS: dict[str, Any] =  {'X-Frame-Options': 'ALLOWALL',}
OVERRIDE_HTTP_HEADERS: dict[str, Any] = {'X-Frame-Options': 'ALLOWALL',}
HTTP_HEADERS: dict[str, Any] = {'X-Frame-Options': 'ALLOWALL',}
WTF_CSRF_ENABLED = False
PUBLIC_ROLE_LIKE = "Gamma"
PUBLIC_ROLE_LIKE_GAMMA = True

执行:superset init; 

五、启动superset命令:

在ID启动:
 superset run -p 8080 --with-threads --reload --debugger;

在命令行启动:
cd superset        

source venv/bin/activate 

source /etc/profile; 

superset run -p 8088 --with-threads --reload --debugger;

六、datahub 连接 superset

source:

type: superset

config:

connect_uri: 'http://host.docker.internal:8088'

username: admin

password: general

provider: db

# 这个方式是在superset的config.py配置文件中定义的:

AUTH_TYPE = AUTH_DB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值