LoginSignup
11
10

More than 5 years have passed since last update.

CentOS7にSupersetを構築する方法

Last updated at Posted at 2017-01-17

構築要件

  • Supersetは、VirtualEnvを使用して/var/superset配下に構築する。
  • Supersetで通常使用されるデータベースはsqliteだが、MySQLに変更する。

    MySQL5.7をインストール&初期設定済みであるものとする。

  • 使用するポートはデフォルトのままの8088。

インストール

関連ライブラリなど

  • ライブラリ群をインストール

    terminal
    yum -y install git gcc gcc-c++ libffi-devel sqlite-devel openssl-devel cyrus-sasl-devel openldap-devel readline-devel
    

PyEnv & VirtualEnvインストール

  • python環境はpyenv/virtualenvを通して構築する。

    terminal
    git clone https://github.com/yyuu/pyenv.git             /usr/local/src/pyenv
    git clone https://github.com/yyuu/pyenv-virtualenv.git  /usr/local/src/pyenv/plugins/pyenv-virtualenv   
    
    cat << \EOS > /etc/profile.d/pyenv.sh
    export PYENV_ROOT=/usr/local/src/pyenv
    export PATH=${PYENV_ROOT}/bin:${PATH}
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    EOS
    
    source /etc/profile.d/pyenv.sh
    

pythonインストール

  • PyEnvを通して、Version 2.x.x/3.x.x(最新版はpyenv install --listで確認)をインストール。デフォルトは3.x.xにする。

    terminal
    source /etc/psourofile.d/pyenv.sh
    pyenv install --list
    pyenv install 2.7.13
    pyenv install 3.5.2
    pyenv install 3.6.0
    pyenv rehash
    pyenv global 3.6.0
    
  • 確認

    terminal
    python --version
    
    Python 3.6.0
    

VirtualEnv環境構築

  • /var/superset配下にVirtualEnv環境を構築

    terminal
    mkdir -p /var/superset
    cd /var/superset
    pyenv virtualenv 3.5.2 superset
    pyenv local superset
    

依存パッケージのインストール

  • 必要なパッケージをインストール & 更新

    terminal
    cd /var/superset
    pip install --upgrade pip setuptools
    

supersetインストール

  • pipからインストール

    terminal
    cd /var/superset
    pip install superset
    

初期設定

(スキップ可) 使用するDBをMariaDBに切り替える

以降の[...]は任意の値に置き換えること。

  • MySQL develインストール

    terminal
    yum -y install mysql-community-devel --enablerepo=mysql57-community
    
  • ドライバインストール

    terminal
    cd /var/superset
    pip install mysqlclient
    
  • データベース作成

    terminal
    mysql -u root -p -e "DROP DATABASE IF EXISTS [database];CREATE DATABASE [database] DEFAULT CHARACTER SET utf8mb4;"
    
  • ユーザー作成

    mysql -u root -p -e "GRANT ALL PRIVILEGES ON [database].* TO '[username]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;"
    
  • 確認

    terminal
    mysql -u root -p -e "SHOW DATABASES;USE mysql;SELECT User,Host,Password FROM user";
    
  • superset設定変更

    terminal
    cat << \EOS > /usr/local/src/pyenv/versions/3.5.2/envs/superset/bin/superset_config.py
    SQLALCHEMY_DATABASE_URI = 'mysql://[username]:[password]@[hostname]/[database]'
    EOS
    

adminユーザー作成

  • 管理者ユーザーを作成する

    terminal
    cd /var/superset
    fabmanager create-admin --app superset --username admin --firstname admin --lastname user --email admin@fab.org --password admin
    

データベースの初期化

  • データベース初期化コマンドを実行

    terminal
    cd /var/superset
    superset db upgrade
    

(スキップ可) サンプルデータインポート

  • サンプルデータ取込

    terminal
    cd /var/superset
    superset load_examples
    

ロール/パーミッション作成

  • コマンド実行

    terminal
    cd /var/superset
    superset init
    

動作確認

起動

  • 下記コマンドで実行する

    terminal
    cd /var/superset
    superset runserver -p 8088
    

確認

  • ブラウザで http://[hostname]:8088 へアクセスし、下記画面が表示されればOK。

    Kobito.ZnXito.png

サービス化

  • systemdで制御するよう設定する。

systemd設定

  • Unit定義ファイルを作成

    cat << \EOS > /etc/systemd/system/superset.service
    [Unit]
    Description=superset
    After=network.target
    
    [Service]
    Type=simple
    EnvironmentFile=/etc/sysconfig/superset.conf
    WorkingDirectory=/var/superset
    ExecStart=/usr/local/src/pyenv/shims/superset runserver -p $PORT -w $WORKERS
    ExecReload=/bin/kill -HUP $MAINPID
    Restart=on-failure
    
    KillSignal=SIGINT
    
    [Install]
    WantedBy=multi-user.target
    EOS
    
  • 設定ファイルを作成

    terminal
    cat << \EOS > /etc/sysconfig/superset.conf
    PORT=8088
    WORKERS=2
    EOS
    
  • 確認

    terminal
    systemctl list-unit-files --type=service | grep superset
    
    superset.service                            disabled
    
  • 自動起動設定

    terminal
    systemctl enable superset
    
    Created symlink from /etc/systemd/system/multi-user.target.wants/superset.service to /etc/systemd/system/superset.service.
    

サービス起動

起動

  • systemctlで起動する

    terminal
    systemctl start superset
    

確認

  • ブラウザで http://[hostname]:8088 へアクセスし、下記画面が表示されればOK。

    Kobito.ZnXito.png

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10