BI_BI分析平台_superset 搭建指南

由于 superset 目前对 windows 系统不做官方支持,

我们本文的搭建环境是  Centos7

virtualenv +  python + superset 

本文写于 20190712, 基于的 superset 版本是 0.28.1

Tips : 为了不污染系统的 python 环境,我们这里选用的是 virtualenv 对项目进行的管理。

 

virtualenv 额外篇

     virtualenv 可以对环境进行管理,达到系统的 pip 安装的库 可以与  项目安装的库 不一致的目的, 解决不同项目依赖组件版本,

同时需要共存的问题。      

    首先,如果我们不了解 virtualenv , 系统的学习可以这篇文章。

 

下面简要介绍:

 安装 :

  pip install virtualenv

初始化一个环境 :

在一个需要环境管理的项目目录下执行 :

virtualenv venv  

Tips : venv 是一个约定俗成的目录,尽量不要做修改。 

 

 

安装superset 

 

安装依赖:

# sqlite

yum install sqlite sqlite-devel

# 基础的c, c++ 库

yum intsall gcc  gcc-c++ 

# sasl 相关

yum install cyrus-sasl-lib cyrus-sasl-devel  python-devel

 

项目的目录结构:

[root@dev-109-kvm superset_dev]# ll
total 0
drwxr-xr-x 5 root root 43 Jul 12 14:23 venv
 

 

进入虚拟环境:

source ./venv/bin/activate

 

执行安装命令:

pip install superset

 

 安装完成:

Requirement already satisfied: defusedxml in ./venv/lib/python3.7/site-packages (from python3-openid>=2.0->Flask-OpenID<2,>=1.2.5->flask-appbuilder>=1.12.1->superset) (0.6.0)
Requirement already satisfied: jdcal in ./venv/lib/python3.7/site-packages (from openpyxl<2.5,>=2.4->tabulator>=1.20->tableschema->superset) (1.4.1)
Requirement already satisfied: et-xmlfile in ./venv/lib/python3.7/site-packages (from openpyxl<2.5,>=2.4->tabulator>=1.20->tableschema->superset) (1.0.1)
Building wheels for collected packages: sasl
  Building wheel for sasl (setup.py) ... done
  Stored in directory: /root/.cache/pip/wheels/56/20/21/ff481fd0f4ae09d5d94c76d089f550204580b1703e44f27dd5
Successfully built sasl
Installing collected packages: sasl, thrift-sasl, superset
Successfully installed sasl-0.2.1 superset-0.28.1 thrift-sasl-0.3.0
(venv) [root@dev-109-kvm superset_dev]# 

 

 

=======================

 

Tips  : 我们先对默认安装的一些组件 进行降低版本, 不然会出错:

 

pandas 库 :

(venv) [root@dev-109-kvm superset_dev]# pip list | grep pandas
pandas                 0.24.2   
 

降低版本 :

pip install pandas==0.23.4

 

--------------

 

SQLAlchemy 库 :

(venv) [root@dev-109-kvm superset_dev]# pip list | grep -i sqlalchemy
Flask-SQLAlchemy       2.4.0    
marshmallow-sqlalchemy 0.17.0   
SQLAlchemy             1.3.5    
SQLAlchemy-Utils       0.34.0   

降低版本:

 pip install SQLAlchemy==1.2.18

 

 

 

==================

 

初始化 superset  

 

#创建管理员用户名和密码 
fabmanager create-admin --app superset 
 
#初始化Superset 
./venv/bin/superset db upgrade
 
#装载初始化样例数据 
./venv/bin/superset load_examples
 
#创建默认角色和权限 
./venv/bin/superset init 
 
#启动Superset 
./venv/bin/superset runserver

 

将启动服务写成脚本 :

bin/run_server.sh 

#!/bin/bash

BASE_DIR=$(dirname $(readlink -f $0))/../
DATE=`date +'%Y%m%d'`

#echo $BASE_DIR
source /etc/profile
source ${BASE_DIR}/venv/bin/activate

nohup superset runserver -p 8000 > ${BASE_DIR}/logs/${DATE}_runlog.log 2>&1 &

 

输入地址 : http://192.168.6.109:8000/login/

 

 

 

一些遇到的问题:

 

问题一 : Was unable to import superset Error: cannot import name '_maybe_box_datetimelike' from 'pandas.core.common' (E:\BI_superset_test\venv\lib\site-packages\pandas\core\common.py)

问题原因:

        pandas库版本过高导致 

解决方法:

       降低 pandas 库的版本 

 

 

问题二 :

 

 

问题三: Was unable to import superset Error: No module named '_sqlite3'

问题原因:

        没有安装 sqlite3 相关的包

解决方法 :

Step1 :  yum 安装相关的包

yum install sqlite sqlite-devel 

 

Step2  :然后重新编译python或者重新安装python

对于Linux ,切换到源码目录

(venv) [root@dev-109-kvm PYTHON_HOME]# cd Python-3.7.4/
(venv) [root@dev-109-kvm Python-3.7.4]# ll
total 40164
-rw-r--r--  1  501  501    10953 Jul  9 02:03 aclocal.m4
drwxr-xr-x  5 root root       82 Jul 12 11:25 build
-rw-r--r--  1  501  501      631 Jul  9 02:03 CODE_OF_CONDUCT.rst
-rwxr-xr-x  1  501  501    44166 Jul  9 02:03 config.guess
-rw-r--r--  1 root root   924713 Jul 12 11:19 config.log
...
-rw-r--r--  1 root root     2917 Jul 12 11:25 python-config
-rw-r--r--  1 root root     1950 Jul 12 11:25 python-config.py
-rw-r--r--  1 root root    65363 Jul 12 11:25 python-gdb.py
-rw-r--r--  1  501  501    10113 Jul  9 02:03 README.rst
-rw-r--r--  1  501  501   103776 Jul  9 02:03 setup.py
drwxr-xr-x 23  501  501      322 Jul  9 02:03 Tools
 

 

执行如下命令:

make clean

make && make install

 

可以做如下验证 :

(venv) [root@dev-109-kvm Python-3.7.4]# python3
Python 3.7.4 (default, Jul 12 2019, 11:24:17) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> 

如果成功引用,证明没有问题

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值