構築要件
-
Supersetは、VirtualEnvを使用して/var/superset配下に構築する。
-
Supersetで通常使用されるデータベースはsqliteだが、MySQLに変更する。
MySQL5.7をインストール&初期設定済みであるものとする。
-
使用するポートはデフォルトのままの8088。
インストール
関連ライブラリなど
-
ライブラリ群をインストール
terminalyum -y install git gcc gcc-c++ libffi-devel sqlite-devel openssl-devel cyrus-sasl-devel openldap-devel readline-devel
PyEnv & VirtualEnvインストール
-
python環境はpyenv/virtualenvを通して構築する。
terminalgit 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にする。
terminalsource /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
-
確認
terminalpython --version Python 3.6.0
VirtualEnv環境構築
-
/var/superset配下にVirtualEnv環境を構築
terminalmkdir -p /var/superset cd /var/superset pyenv virtualenv 3.5.2 superset pyenv local superset
依存パッケージのインストール
-
必要なパッケージをインストール & 更新
terminalcd /var/superset pip install --upgrade pip setuptools
supersetインストール
-
pipからインストール
terminalcd /var/superset pip install superset
初期設定
(スキップ可) 使用するDBをMariaDBに切り替える
以降の[...]は任意の値に置き換えること。
-
MySQL develインストール
terminalyum -y install mysql-community-devel --enablerepo=mysql57-community
-
ドライバインストール
terminalcd /var/superset pip install mysqlclient
-
データベース作成
terminalmysql -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;"
-
確認
terminalmysql -u root -p -e "SHOW DATABASES;USE mysql;SELECT User,Host,Password FROM user";
-
superset設定変更
terminalcat << \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ユーザー作成
-
管理者ユーザーを作成する
terminalcd /var/superset fabmanager create-admin --app superset --username admin --firstname admin --lastname user --email admin@fab.org --password admin
データベースの初期化
-
データベース初期化コマンドを実行
terminalcd /var/superset superset db upgrade
(スキップ可) サンプルデータインポート
-
サンプルデータ取込
terminalcd /var/superset superset load_examples
ロール/パーミッション作成
-
コマンド実行
terminalcd /var/superset superset init
動作確認
起動
-
下記コマンドで実行する
terminalcd /var/superset superset runserver -p 8088
確認
サービス化
- 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
-
設定ファイルを作成
terminalcat << \EOS > /etc/sysconfig/superset.conf PORT=8088 WORKERS=2 EOS
-
確認
terminalsystemctl list-unit-files --type=service | grep superset superset.service disabled
-
自動起動設定
terminalsystemctl enable superset Created symlink from /etc/systemd/system/multi-user.target.wants/superset.service to /etc/systemd/system/superset.service.
サービス起動
起動
-
systemctlで起動する
terminalsystemctl start superset