Superset接入CAS单点登录
来源:互联网 发布:spss 22.0软件安装 编辑:程序博客网 时间:2024/06/07 22:15
什么是Superset
Superset是Apache下一个数据平台开源框架,它向用户提供了
1. 多种可视化工具来展现你的数据。
2. 一种简单形成图表的方式。
3. 先进的SQL编辑器,以及基于SQL查询结果直接生成图表的方法。SQL编辑器带有自动提示功能哦!
4. 细粒度的用户权限控制和高扩展的第三方认证方式。权限控制可以精细到表的维度。第三方认证方式支持OpenID、LDAP、OAuth及REMOTE_USER认证。
5. 适配多种数据源MySQL、SQLServer、Postgres等的方式
6. 最最中要的两个,基本的数据查询和数据可视化。
如何安装
此安装步骤是针对于CentOS系统,所用Python版本为2.7。
- 1、https://github.com/apache/incubator-superset.git 从此地址克隆并修改master的代码。这里有坑,千万别用下下来的zip包解压的代码,里面依赖的版本有冲突,浪费我半天时间。一定要clone master的代码,当前最新的代码有木有版本冲突我就不知道了。
- 2、sudo yum upgrade python-setuptools
- 3、sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel lrzsz
- 4、sudo pip install –upgrade pip 这三步安装并更新我们后面要用的命令工具。
- 5、sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv 安装virtualenv,维护Python独立运行环境的工具。
- 6、sudo virtualenv venv 会在当前目录创建一个叫venv的独立运行环境(一个文件夹)。
- 7、到venv/bin文件夹下,运行source activate(Centos是source,其他系统可能不一样)进入venv虚拟环境,如果想退出的话,运行deactivate。
- 8、sudo yum install npm 安装npm命令,后面需要用到。
- 9、到$SUPERSET_HOME/superset/assets目录下,也就是我们上面克隆并修改的代码的那些个目录。
- 10、sudo npm –registry https://registry.npm.taobao.org install。
- 11、sudo npm run build 这两步应该是在准备node方面的东西吧,具体我也不太清楚。
- 12、到$SUPERSET_HOME目录,具体参见第9步。
- 13、sudo python setup.py install 安装Superset。中间可能会安装几个比较大的包,网速较慢的话会卡主,可以直接crtl+C结束掉,用带数据源的pip手动安装下吧。这是我安装的时候所对应的几个需要安装的大包的版本,具体参照安装信息。
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v SQLAlchemy==1.1.9
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v pandas==0.20.2
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v Markdown==2.6.8
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v gunicorn==19.7.1
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v future==0.16.0
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v flower==0.9.1
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v Flask-AppBuilder==1.9.1
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v celery==3.1.25
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -v botocore==1.5.90 - 14、安装完成以后,一般安装目录是在/usr/lib/python2.7/site-packages/superset-0.18.5-py2.7.egg/superset这个目录下,现在这个版本的包安装完成后,还需要手动做几项工作。不过首先应该切换到这个安装目录下面。
- 15、sudo cp -r /home/yecheng.li/clone/incubator-superset/superset/assets ./ 执行这个命令把源文件里面的assets包拷到安装目录下。
- 16、sudo cp -r /home/yecheng.li/clone/incubator-superset/superset/static ./ 执行这个命令把源文件里面的static文件夹拷到安装目录下。要拷的这两个目录的内容是在10、11步执行完后生成的。
- 17、https://github.com/cameronbwhite/Flask-CAS.git 从这个地址克隆最新的Flask-CAS的代码下来。之所以要最新的代码是因为,包1.0.0里面有个bug,我们这个项目里面刚好用到了那里,然而包1.0.1使用pip安装不到,因此只能直接安装其源码了。具体见:http://ju.outofmemory.cn/entry/305202。
- 18、切到Flask-CAS源文件目录下,执行sudo python setup.py install 命令来安装Flask-CAS。
- 19、fabmanager create-admin –app superset 这一步是用来创建Flask APP Builder管理员账户的。下面这四步在官网上面安装源码的部分木有写,但是是必须的,他们是属于Flask APP Builder框架的。如果没有以下这四步的话,FAB框架的权限和管理用户的数据库是构建不起来的。创建用户坑了我大半天。
- 20、superset db upgrade
- 21、superset load_examples Superset数据库升级,并且插入一些示例数据。
- 22、superset init 用户、权限、角色数据库的初始化。Superset用来管理用户和权限的数据库默认是sqlite,在FAB的权限和用户数据库创建好后,可以使用sqlite查看数据库信息:sudo sqlite3 superset.db。superset.db文件一般在 ~/.superset/文件夹下。
- 23、superset runserver 应该是能正常启动的,启动不了就是又有新坑了!去看下官方文档吧!传送门:https://superset.incubator.apache.org/installation.html
- 24、sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mysqlclient 如果要配置MySQL数据库的话,需要运行此命令安装一部分组件。但是直接运行的话会报错。应该先安装sudo yum install python-devel mysql-devel 这两个组件才行。
以上是使用源码安装的套路。如果不需要修改源码的话,就更加简单了!只需要按照官网的步骤来就行啦!
如何接入CAS登陆
FAB已经有了完善的权限管理系统了(是否登陆,是否有权限查看某个界面),这些都不需要额外来做。Flask也有CAS扩展模块用以支持CAS登陆。而我所做的就是把CAS模块集成到FAB的权限管理系统之上。FAB的权限管理是基于Session中的一个User值,因此我只需要拦截/login请求到Flask-CAS,让其做登陆和验证的功能。同时传给其一个login的CallBack URL让其在登陆成功的情况下回调系统,在回调时把User写到当前系统的Session中去。Logout也是同样的道理。都是使用CallBack URL来做的。只不过默认情况下,CAS server端在logout以后,默认不会跳到用户指定的URL中,需要手动的去配置。
几个小坑
中文展示乱码
在写数据库连接串时末尾加上编码格式,如下
mysql://superset_nbdata_r:XXXXXXXXXX@10.64.1.248:3338/spider?charset=utf8
添加SQL_LAB权限找不到数据库
为了控制数据库访问权限,新建Role的时候要配置database access on [xxxxxx]这个时候,如果是刚添加的数据库,可能并看不到,这是因为前端有缓存,清理下重新选就可以了。
SQL_LAB查询时中文报错
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position xxx ordinal not in range
如上这种错误是因为Python2.x中使用的asscii编码,中文是Unicode编码会出错。两种方案:1是升级python版本至3.x。2是修改代码,在superset/views/core.py文件中加入如下代码
import sys reload(sys) sys.setdefaultencoding('utf-8')
- Superset接入CAS单点登录
- 单点登录cas常见问题(九) - android app怎么接入cas单点登录系统?
- cas实现单点登录
- CAS 单点登录原理
- cas 实现单点登录
- CAS 实现单点登录
- CAS单点登录
- CAS单点登录原理图
- CAS单点登录配置
- cas单点登录系统
- 单点登录 CAS分析
- cas实现单点登录
- cas 单点登录
- CAS单点登录
- cas单点登录
- CAS单点登录(SSO)
- CAS单点登录
- CAS单点登录
- 格式太旧或是类型库无效
- where、having之间的区别和用法
- javaScript 函数参数的按值传递
- QAQ
- Gnuplot:双折线图、双柱状图模板
- Superset接入CAS单点登录
- 内部类
- Apache的情书
- 浅谈分布式消息技术:KAFKA
- POJ 2524 Ubiquitous Religions (并查集)
- C-C++中static的用法全局变量与局部变量
- ptaSimulate小记及其坑爹之处
- 二十三种设计模式之命令模式
- arm-none-linux-gnueabi交叉工具链安装 ,介绍,区别总结