部署superset

作者: 转身丶即天涯 | 来源:发表于2018-03-20 17:21 被阅读331次

    一、使用virtualenv创建虚拟环境

    cd 到创建项目的路径
    virtualenv project_name

    image.png

    二、配置虚拟环境

    根据官网教程配置虚拟环境

    Install superset

    pip install superset

    Create an admin user (you will be prompted to set username, first and last name before setting a password)

    fabmanager create-admin --app superset

    Initialize the database

    superset db upgrade

    Load some data to play with

    superset load_examples

    Create default roles and permissions

    superset init

    Start the web server on port 8088, use -p to bind to another port

    superset runserver

    To start a development web server, use the -d switch

    superset runserver -d

    这些过程按部就班即可。

    三、配置元数据库(SQLite->Mysql)

    superset后端使用sqlalchemy来配置数据库,只需要在config.py配置一个连接字符串即可。
    以mysql为例:

    SQLALCHEMY_DATABASE_URI = 'mysql://账号:密码@IP地址或者hostname/数据库名?charset=utf8'

    目前来看还是不能连接到mysql数据库,因为程序并未从config.py读取配置信息,正在查找原因。
    所以,需要进行本地配置,在项目的根目录新建一个superset_config.py的文件。
    比如项目根目录叫/home/nzh/superset_project,superset_config.py就放到这个路径下。
    superset_config.py内容如下:

    #---------------------------------------------------------
    # Superset specific config
    #---------------------------------------------------------
    ROW_LIMIT = 5000
    SUPERSET_WORKERS = 4
    
    SUPERSET_WEBSERVER_PORT = 8088
    #---------------------------------------------------------
    
    #---------------------------------------------------------
    # Flask App Builder configuration
    #---------------------------------------------------------
    # Your App secret key
    SECRET_KEY = '\2\1thisismyscretkey\1\2\e\y\y\h'
    
    # The SQLAlchemy connection string to your database backend
    # This connection defines the path to the database that stores your
    # superset metadata (slices, connections, tables, dashboards, ...).
    # Note that the connection information to connect to the datasources
    # you want to explore are managed directly in the web UI
    SQLALCHEMY_DATABASE_URI = 'mysql://账号:密码@ip或者主机地址/数据库名?charset=utf8'
    
    # Flask-WTF flag for CSRF
    CSRF_ENABLED = True
    
    # Set this API key to enable Mapbox visualizations
    MAPBOX_API_KEY = ''
    
    

    在完成了config.py文件后,需要对系统的'PYTHONPATH'环境变量进行配置。
    打开终端,输入export PYTHONPATH=/home/nzh/superset_project。这个路径也就是存放config.py的路径。

    再输入,echo $PYTHONPATH。来查询PYTHONPATH是否成功保存。


    image.png

    但是这样做有个弊端,就是当这个终端窗口关闭后,这个环境变量就消失了,所以我们需要创建永久的环境变量。
    打开终端,输入vim /etc/profile,profile是系统环境变量的配置文件。
    在文件结尾处,加上红框中的内容,保存并退出


    image.png

    vim 操作提示
    在使用vim命令进入文件后,按‘I’开启编辑模式,可修改文件。
    在编辑结束后按一下‘ESC’,然后输入‘:wq’。意思是保存并退出。

    然后再终端再输入一句,source /etc/profile。这句命令的作用是,立即执行profile文件,如果不输入这条命令,那么将在下次开启终端时才会查到环境变量。

    运行superset

    进入虚拟环境,然后输入superset runserver -p 端口号 来运行应用。


    image.png

    如果所示,superset_config.py文件已经被加载,元数据库成功切换到Mysql。

    注意Linux系统的文件权限

    错误的原因是,config.py文件我从本地上传到服务器的,但是并没有直接放入项目目录,而是/home/xx中xx这个目录(我的项目在/home/nzh中),在使用mv命令将文件移至项目目录后,程序仍不能找到改文件,进过和同事共同查找原因,发现是文件权限不同。


    image.png

    使用命令chmod 777 文件名,用来获取使用文件的权限。


    image.png

    此时superset_configt.py文件就可以被读出来了。

    相关文章

      网友评论

        本文标题:部署superset

        本文链接:https://www.haomeiwen.com/subject/idubqftx.html