前因
由于刚到新的公司,美其名曰熟悉业务,所以老大说让我去了解一下superset,刚开始一听,what???,没听说过呀,一脸懵逼的去google了,发现原来是一款BI系统,好吧!!!熟悉几把业务啦。。。。。。
环境配置
服务器:Centos 7
版本:superset 0.27,python2.7,mysql5.7
会遇到的问题:
- 自己在本地IDEA中运行的时候,需要python插件
- python 使用2.7 或3.5-3.6,至于其他的没有试过
- mysql5.7+,不要使用5.6(会有索引超出的问题)
安装步骤
1、安装系统依赖:
yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
2、安装虚拟环境
pip install virtualenv
3、创建虚拟环境目录
virtualenv superset-env
4、启动虚拟环境
. ./superset-env/bin/activate
(关闭命令 :deactivate)
5、更新pip、setuptools
pip install --upgrade setuptools pip
6、安装superset
pip install superset
7、创建用户和初始化
#创建一个管理员用户(在设置密码之前会提示您设置用户名,名字和姓氏)
fabmanager create-admin --app superset
#初始化数据库
superset db upgrade
#加载一些数据播放与
superset load_examples
#创建默认角色和权限的
superset init
#启动服务,默认端口8088
superset runserver
访问 :http://localhost:8088
8、mysql 存储源
#安装依赖
pip install mysqlclient
#修改配置(superset/config.py)
SQLALCHEMY_DATABASE_URI = ‘mysql://用户名:密码@IP/superset?charset=utf8’
#说明:安装依赖可能会失败,需要引入相关依赖
yum install mysql-community-client
yum install mysql-devel
执行成功后,重新执行第7步,
9、配置LDAP 验证
#安装LDAP依赖
pip install Flask-LDAP
#修改配置(superset/config.py)
from 添加 AUTH_LDAP
AUTH_TYPE = AUTH_LDAP
AUTH_USER_REGISTRATION = True(必须)
AUTH_USER_REGISTRATION_ROLE = “Alpha” (ldap用户最初登录时分配的角色)
AUTH_LDAP_SERVER = “ldap://IP:port”
AUTH_LDAP_SEARCH = “dc=test,dc=com”(参照实际情况)
AUTH_LDAP_BIND_USER = "cn=admin,dc=test,dc=com"参照实际情况)
AUTH_LDAP_BIND_PASSWORD = "password"参照实际情况)
说明:最初根据官方文档配置,发现并不能成功,最后通过跟踪源码发现,如此配置
执行完成之后重复第7步,也可直接启动服务
遇到的问题
1、在角色列表会出现乱码解析错误
原因:python默认的编码为ascii,需要设置为utf8
方法:在 site-packages 文件夹下新建一个 sitecustomize.py文件
内容为:
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
2、说明一下LDAP验证机制
首先去LDAP验证用户是否存在,存在则验证密码,验证成功后,会为数据库中注册一条记录,
今天就先写到这二啦,有问题请留言。。。。