Superset在windows中安装和设置说明

Superset介绍:https://www.oschina.net/p/caravel

想部署一套作为数据分析和报表服务使用,但是没有Unix服务器,所有的服务器都是windows server。因此尝试在windows环境下部署

一、环境

VMware Workstation虚拟机中,Windows 7 旗舰版,32位系统。

安装过程需要联网。

二、安装步骤

官方安装说明:http://airbnb.io/superset/installation.html,以下简称安装说明。

安装说明,比较详细了,但是在windows环境下安装时有一些坑需要注意。记录一下安装过程。

1、 安装vs2010。Superset中依赖的一些库需要使用microsoft visual c++ 2010编译。我的电脑上安装有vs2015,也曾尝试安装Microsoft Visual C++ 2010 Redistributable Package、vc for python、winsdk_web都没有解决问题。

2、 安装python。官网下载:python-3.4.4rc1_x86,全部默认安装,安装路径是:C:\python34。安装完成后,设置环境变量。在path中添加C:\python34

3、 安装pip。下载安装说明中的get-pip.py,保存到c盘根目录。命令行中运行python c:\get-pip.py。会自动安装。

4、 安装cryptography。按安装说明中要求pip install cryptography。但是在后续的部署过程中,提示no module named pwd。因此这里也安装pycrypto。命令行中:pip install pycrypto。

5、 安装说明中,是设置Python virtualenv。没接触过python,搜索后了解到virtualenv是创建一个虚拟环境,启用后,后续的安装都安装到虚拟环境中,保持python本身环境的整洁。同时还方便部署。具体步骤

pip install virtualenv//安装插件

virtualenv venv//创建虚拟环境

venv\Scripts\activate//启动环境

启动后效果:

我没有使用这个功能,全部安装到了python环境中。

6、 更新setuptools

pip install --upgrade setuptools pip

7、 安装并初始化Superset

首先是官方的步骤

# 安装Superset

pip install superset

注意,可能会提示no module named fcntl。下载fcntl.py文件放到PYTHONPATH路径即可,我是放到了Python34\Lib目录下。 

# 创建管理员帐号

fabmanager create-admin --app superset

# 初始化数据库

superset db upgrade

# 加载例子

superset load_examples

# 初始化角色和权限

superset init

# 启动服务,端口 8088, 使用 -p 更改端口号。

superset runserver

出现的问题:

(1)命令行中,直接运行superset 命令会提示,不是内部或外部命令。

  首先需要进入superset安装目录中运行。

      Cd C:\Python34\Lib\site-packages\superset\bin

   命令改为

Python superset db upgrade

Python superset load_examples

Python superset init

Python superset runserver

  (2)执行命令Python superset runserver,出错。原因是superset使用gunicorn作为应用程序服务器,而gunicorn不支持windows。命令行中添加-d,使用development web server运行。最终运行命令为:

Python superset runserver -d

这时候就可以在浏览器中登录系统查看演示了。但是这种部署方式,官方不建议在生产环境中使用。在superset的issues 922(https://github.com/airbnb/superset/issues/922),有人提供了一个分支,使用Waitress。不过没有详细的步骤。实践后,执行以下步骤

(1)  安装Waitress。
pip install Waitress

(2)  修改superset代码。修改Superset目录(C:\Python34\Lib\site-packages\superset)中cli.py文件。

第57行

if debug:

        app.run(

            host='0.0.0.0',

            port=int(port),

            threaded=True,

            debug=True,

            use_reloader=no_reload)

改为

if debug:

        from waitress import serve

        serve(

            app,

            host=address,

            port=int(port),

            threads=workers,

            channel_timeout=timeout,

            expose_tracebacks=debug)

这样就使用Waitress运行superset了。

注意运行命令是

Python superset runserver -d

三、多数据源支持

直接使用安装说明中的表格

我使用的是mssql数据库,因此执行命令

pip install pymssql

但是表中mssql的数据库前缀不对,应该是

mssql+pymssql://数据库登录名:登录密码@数据库地址:端口号/数据库

例子

mssql+pymssql://sa:sa@192.168.0.100:1433/order

 

四、匿名访问设置

开发完dashboard后,希望能直接链接到现有系统中使用,需要匿名访问。折腾了半天总算成功了。

官网http://airbnb.io/superset/security.html中有关于安全的部分。

Superset中默认有Admin,Alpha ,Gamma,sql_lab,Public6种角色,不要删除或者修改它们的名字。可以自己新增角色。

其中public角色是允许用户匿名访问的。但是需要设置。

官网中说明是修改superset_config.py 文件中的PUBLIC_ROLE_LIKE_GAMMA = True 。

但是superset中没有superset_config.py文件,只有config.py,我首先修改了config.py中的PUBLIC_ROLE_LIKE_GAMMA = True 。重启服务器,不能实现匿名,自动跳转到登录界面。

在Baidu、issue中都没有方法。最终回到官网说中提到的superset_config.py文件。复制config.py文件,重命名为superset_config.py,修改其中的PUBLIC_ROLE_LIKE_GAMMA = True 。

重启服务器,直接访问dashboard地址,提示变为,没有数据源访问权限。使用管理员帐号登录系统,给public角色添加access to datasource权限。

再次直接访问dashboard地址,可以直接访问了。

转载于:https://my.oschina.net/wangbinykit/blog/995137

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值