Raspberry Pi 2にRedashをインストールする
「Re:dash on Raspbery Pi」という投稿を見かけたので、ちょっとしたお遊びでやってみた。
使用したデバイス
ちょっと古いけど検証にはRaspberry Pi 2 Model Bを使用。Raspberry Pi 3でも動くと思う。
Raspberry Pi 2 Model B (2015年2月発売品)
- 出版社/メーカー: きばん本舗
- メディア: エレクトロニクス
- この商品を含むブログを見る
OSはRaspbian stretch Lite(November 2017)を使いました。
インストール
セットアップスクリプト
Raspbianも名前からしてDebian系なので、RedashのUbuntu向けセットアップスクリプトにすこし改変を加えて使う。
@@ -41,7 +41,7 @@ # Base packages apt install -y python-pip python-dev nginx curl build-essential pwgen # Data sources dependencies: - apt install -y libffi-dev libssl-dev libmysqlclient-dev libpq-dev freetds-dev libsasl2-dev + apt install -y libffi-dev libssl-dev libmariadbclient-dev libpq-dev freetds-dev libsasl2-dev # SAML dependency apt install -y xmlsec1 # Storage servers @@ -71,6 +71,9 @@ } install_python_packages() { + sed -i 's/cryptography==1.4/cryptography==2.1.4/' /opt/redash/current/requirements.txt + sed -i 's/pyOpenSSL==0.14/pyOpenSSL==16.2.0/' /opt/redash/current/requirements_all_ds.txt + sed -i 's/cassandra-driver==3.1.1/#cassandra-driver==3.1.1/' /opt/redash/current/requirements_all_ds.txt pip install --upgrade pip # TODO: venv? pip install setproctitle # setproctitle is used by Celery for "pretty" process titles
変更点は以下の通り。
- Raspbian StretchはMySQLではなくMariaDBを使うのが標準なので、
libmysqlclient-dev
ではなくlibmariadbclient-dev
を使う pip install
でエラーになるため、cryptography
とpyOpenSSL
のバージョンを上げる- Cassandra データソースはデフォルトで有効になっていないわりに依存ライブラリのビルドに時間がかかるのでコメントアウト
RaspbianにRedashをインストール
セットアップスクリプトをRaspbianをクリーンインストールしたRaspberry Piに転送し、実行する。
$ sudo bash bootstrap.sh.raspi
そのまま動いてくれればいいのだけれど、以下のようなエラーが pip
あたりで起きて止まる。
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
pip
の設定やオプションで解決したかったけど、解決方法が特定できなかったので pip install
を何度か実行して成功するまで繰り返した。
PIP_DEFAULT_TIMEOUT
を長めにしておくと少しエラーが減った気がするが、気のせいかもしれない。
$ export PIP_DEFAULT_TIMEOUT=600 $ sudo pip install -r /opt/redash/current/requirements.txt $ sudo pip install -r /opt/redash/current/requirements_all_ds.txt
pip install
が実行できたら、 /opt/redash
を削除してから再度セットアップスクリプトを実行する。
pip install
は先の手順で実行済みなので割と早く終わるはず。
$ sudo rm -rf /opt/redash $ sudo bash bootstrap.sh.raspi
これでRedashが起動するので、ブラウザで http://raspberrypi.local/setup など、Raspberry PiのURLにアクセスしてadminユーザーを作る。
動作確認
SQLiteでさくっと動作確認。
$ cd /tmp $ wget https://github.com/wallymathieu/sakila-sample-database-ports/raw/master/sqlite-sakila-db/sqlite-sakila.sq
SQLiteデータソースを作成してから、以下のクエリを実行してみる。
SELECT * FROM actor LIMIT 10;
動いたっぽい。
まとめ
実用上どうするかはさておき、Raspberry Pi上でもRedashは動くということがわかった。 だけど、MicroSDのIOがとにかく遅いのであんまりおすすめしない。