11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?