起步
该教程从虚拟机装完 Centos7 开始。此次环境搭建在 /opt 目录下。
文件夹中的代码具有时效性,无法做到与 github 上的开源项目 superset 时时一致。现在时间是 019.9.7。
这里有一些可能用得着的资源:https://pan.baidu.com/s/1KbVXXIKghZOtlRFJdAYYVA 提取码:rgyg。
设置静态 IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 追加:
# IPADDR=192.168.2.136 # ip、网关按现实情况而论
# GATEWAY=192.168.2.2
# NETMASK=255.255.255.0
# DNS1=8.8.8.8
# DNS2=114.114.114.114
# 更改:
# ONBOOT=yes
# BOOTPROTO=static
# 保存退出
systemctl restart network
Centos7 更换源
yum install -y wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
Python3.6 安装
cd /opt && mkdir Python3 && cd Python3
# /opt/python 目录用于存放 python 源码以及编译后的 python 解释器
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz # 下载源码
tar xf Python-3.6.6.tgz && cd Python-3.6.6
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ -y # 下载依赖
./configure --prefix=/opt/Python3/python --enable-shared --enable-optimizations
make && make install
ln -s /usr/bin/python3 /opt/Python3/python/bin/python3
ln -s /usr/bin/pip3 /opt/Python3/python/bin/pip3
- 如果你觉得源码编译 Python3.6 太慢,可以使用文件夹中的 Python3.tar.gz。解压该文件后会有两个目录,一个是 python,用来存放编译后的可执行文件等相关内容;另一个是 python-3.6.6,存放的是 python 的源码。由于没有做过测试,不确定解释器是否可以直接使用,如果不能,可以进入源码目录进行编译。
# 第一步
将 Python3.tar.gz 拷贝到 /opt 目录下
# 第二步
tar xf Python3.tar.gz
# 第三步
vi ~/.bashrc
# 追加:
# export PATH=/opt/Python3/python/bin:$PATH
# 保存退出
# 第四步
source ~/.bashrc
pip 国内源
pip3 install PyHamcrest
pip3 install pip -U # 升级 pip
pip3 config set global.index-url https://pypi.douban.com/simple
# 或者 https://pypi.tuna.tsinghua.edu.cn/simple
npm 安装
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
source ~/.bashrc
NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node nvm install node
npm config set registry https://registry.npm.taobao.org # 更换阿里源
Superset 安装
# 在 /opt 目录下
git clone git@github.com:apache/incubator-superset.git
cd incubator-superset
pip3 install -r requirements.txt
pip3 install -r requirements-dev.txt
pip3 install -e . # 安装 superset 开发者模式
# `pip3 install -e .` 如果该命令不能正常执行,需将项目中 superset/bin/superset 可执行文件,建立软连接到 python 虚拟环境 bin/ 目录下
fabmanager create-admin --app superset
# 回车使用默认值,密码输入 123456
# Username = admin
# User first name = admin
# User last name = user
# Email = admin@fab.org
# Password = 123456
superset db upgrade
superset init
superset load_examples
# 编译前端代码
cd superset/assets/
npm ci
npm run build
# 终端启动 superset
cd ..
systemctl stop firewalld
FLASK_ENV=development flask run -h 0.0.0.0 -p 80 --with-threads --reload --debugger
值得关注的一些操作事项:
- incubator-superset 项目有 110M,国内网大概率会拉不下来。你可以使用已经下载好的代码。
# 第一步
将文件夹中的 incubator-superset.tar.gz 拷贝到 /opt 目录下。
# 第二步
cd /opt && tar xf incubator-superset.tar.gz
- superset load_examples 是从国外下载数据,下载速度会很慢,还有失败的可能。也许你可以使用我的 sqlite 数据库文件。使用方法:
# 第一步
mv /root/.superset/superset.db /root/.superset/superset.db.bak # 备份原来的数据库
# 第二步
将文件夹中的 superset.db 拷贝到 /root/.superset 目录下
- 执行命令
npm ci
下载前端依赖。尽管使用了阿里源,仍存在失败风险。但这里有已经编译好的前端代码。
# 第一步
将文件夹中的 assets.tar.gz 拷贝到 /opt/incubator-superset/superset 目录下
# 第二步
cd /opt/incubator-superset/superset
mv assets assets.bak # 将原有的前端代码备份
# 第三步
tar xf assets.tar.gz
- 文件夹中的 node_modules.tar.gz 存放的是前端依赖,如果你想自己构建前端代码,那么这个文件一定用得着。
# 第一步
将 node_modules.tar.gz 拷贝到 /opt/incubator-superset/superset/assets 目录下
# 第二步
tar xf node_modules.tar.gz
# 第三步
rpm run build # 构建前端代码
- 有一些依赖暂时没有安装,但暂时看上去没什么问题。这里姑且笔记一下,避免因此误事。依赖:mysql-devel,python-devel。
Pycharm 调试
添加远程解释器:
配置 SFTP:
Download 代码:
在 superset/bin 下创建 run.py,内容如下:
from superset import app
app.run(debug=True, host="0.0.0.0", port=80)
运行 run.py 即可。
不错哟