Superset 开发环境搭建

工具 2019-09-08 4764 字 4794 浏览 点赞

起步

该教程从虚拟机装完 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 即可。

参考



本文由 Guan 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

只有地板了

  1. 哎哟
    哎哟

    不错哟

添加新评论