Apache superset(0.36.0)pip和源码安装

一.前言

记录最新稳定版superset的安装过程。第一种是pip 安装,方便快捷。第二种是github上源码安装,优点是可以进行二次开发。我是用anaconda创建虚拟环境,之后在虚拟环境中安装的superset。

#创建虚拟环境
conda create -n superset python=3.6
#激活环境
soure activate superset

二.版本

  • python 3.6
  • superset 0.36.0

三.pip安装superset

1.步骤:

# 1.安装 superset
pip install apache-superset

# 2.初始化数据库
superset db upgrade

# 3.创建用户并按提示设置密码
superset fab create-admin

# 4.加载官方例子
superset load_examples

# 5.初始化角色和权限
superset init

# 6.在本机8088端口运行superset
superset run -p 8088 

远端运行superset时,要写上主机host的iP地址。第6步改成 

superset run -h host -p 8088

之后打开 host:8088 就可以进入superset了。

 

2.问题

ERROR:load_examples时报403 ERROR.
原因:examples数据在github上,内网连不上github。
解决:

  • 1.先从github下载examples-data-master.zip。

  • 2.将examples-data-master.zip解压到/home/ubuntu/anaconda3/envs/superset3/lib/python3.6/site-packages/superset/examples-data-master文件夹下

  • 3.修改/home/ubuntu/anaconda3/envs/superset3/lib/python3.6/site-packages/superset/examples/helpers.py配置文件。将原来的BASE_URL注释掉,新增自己下载的文件路径。

#BASE_URL = "https://github.com/apache-superset/examples-data/blob/master/"
BASE_URL = "/home/ubuntu/anaconda3/envs/superset3/lib/python3.6/site-packages/superset/examples-data-master/"
  •  4.重新运行 superset load_examples

四.源码安装superset.

之前的superset是0.28.1,网上有很多教程,但这次是对新版superset0.36.0的进行二次开发,源码安装时遇到很多坑,还是记录下安装过程吧。先创建并激活虚拟环境supesetgit

conda create -n supersetgit python=3.6
soure activate supersetgit

步骤:

一. 从git下载superset0.36.0的压缩包incubator-superset-0.36.0.zip

下载后解压到/home/ubuntu/anaconda3/envs/superset036/lib/python3.6/site-packages/incubator-superset-0.36.0

二. 安装扩展依赖,及开发依赖(这里指定豆瓣源)

#进入到目录
cd /home/ubuntu/anaconda3/envs/superset036/lib/python3.6/site-packages/incubator-superset-0.36.0

#安装依赖
pip install -r requirements.txt -i https://pypi.douban.com/simple/

#安装开发依赖
pip install -r requirements-dev.txt -i https://pypi.douban.com/simple/

三. 安装superset

pip install -e .

四.初始化

#修改config.py,将数据库改成superset036.db
SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(DATA_DIR, "superset036.db")

#初始化数据库
superset db upgrade

#创建管理员权限和密码
superset fab create-admin

#初始化角色和权限
superset init

#加载示例数据(内网下载不下来,方法同上章)
superset load_examples

五.安装编译前端文件,并进入前端开发者模式

编译前端文件,并进入前端开发者模式 

cd /home/ubuntu/anaconda3/envs/supersetgit/lib/python3.6/site-packages/incubator-superset-0.36.0/superset-frontend
npm run build
npm run dev

这里遇到很多问题。

error1: 经核实发现部分文件要求的node版本要高于现有版本。下载新node

error2: 部分文件不支持linux(强制安装即可)
npm install --no-optional --no-shrinkwrap --no-package-lock

error3: @babel/plugin-proposal-private-methods和@babel/plugin-proposal-class-properties的loose值不一致。
修改.../incubator-superset-0.36.0/superset-frontend/babel.config.js,添加两行,将loose都设置为true.

  plugins: [
    'lodash',
    '@babel/plugin-syntax-dynamic-import',
    //'@babel/plugin-proposal-class-properties', //这行需注释掉。
    '@babel/plugin-proposal-optional-chaining',
    ['@babel/plugin-transform-runtime', { corejs: 3 }],
    'react-hot-loader/babel',
	['@babel/plugin-proposal-private-methods', { 'loose': true }],//新增的,将loose设为true
	['@babel/plugin-proposal-class-properties', { 'loose': true }],//新增的,将loose设为true
  ],

error4: TS2339: Property 'hidden' does not exist on type 'ColumnInstance<{}>'.

ERROR in /home/ubuntu/anaconda3/envs/supersetgit/lib/python3.6/site-packages/incubator-superset-0.36.0/superset-frontend/src/components/ListView/TableCollection.tsx(45,22):
TS2339: Property 'hidden' does not exist on type 'ColumnInstance<{}>'.

解决方法:修改TableCollection.tsx文件。

#修改44行,修改前
{headerGroup.headers.map(column =>
#修改后
{headerGroup.headers.map((column:any) =>


#修改82行,修改前
{row.cells.map(cell:any => {
#修改后
{row.cells.map((cell:any) => {

类似bug及解决方案:

error5:Nodemon Error: System limit for number of file watchers reached

解决方法:扩大系统监视文件的最大数量

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

 

具体步骤:



1.安装nodejs,查看版本发现已安装。
node --version  
v8.10.0

2.查看版本发现已安装。
npm --version
3.5.2

3.安装node管理工具n,安装新node,更新对应的npm。
#安装node管理工具n
npm install -g n

#安装稳定版node
n stable

#查看已安装node
n

#全局安装npm
npm -g install [email protected]

#创建软连接,需先删除原来的/usr/bin/npm链接
ln -s /usr/local/n/versions/node/12.17.0/bin/npm /usr/bin/npm 
 
4.修改babel.config.js,添加下面两行将loose设置为true.
	['@babel/plugin-proposal-private-methods', { 'loose': true }],
	['@babel/plugin-proposal-class-properties', { 'loose': true }],

5.#npm永久设置成淘宝源
npm config set registry https://registry.npm.taobao.org

6.npm install -d

7.npm run build

8.npm run dev

六.运行superset.

superset run -h 0.0.0.0 -p 8087

 七.参考文章

  1. https://blog.eric7.site/2020/02/23/superset/    #superset源码安装
  2. https://www.jianshu.com/p/c641dcc47b48       #node管理工具n
  3. https://babeljs.io/docs/en/babel-plugin-proposal-private-methods   #error3解决方案
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章