目的
前の投稿でQRNNでカオス時系列データ予測を使って為替予測にチャレンジしてみたかったが、環境がないと始まらないということでdockerを使ってApache Zeppelin + Apache Spark + Python(Keras, TensorFlow)の環境を作ってみた。
Apache Zeppelin with Apache Spark + Python(Keras, TensorFlow) over Docker
現在業務でApache Sparkを使ってデータのクレンジング・集計・統計を行なっているが、いちいちシェルやプロジェクトでデータ整形・統計を行なってると何が何だかわからなくなるので、GUIでインタラクティブなツールとしてApache Zeppelinを利用している。
notebookとして処理をまとめられるのでなかなか便利だ。
(ipythonのSpark特化版みたいなもの)
また、Apache Zeppelinはdocker上で動作させている。
(処理は完全分散モードで動作しているsparkに投げているので、zeppelin自体のリソースはさほど必要ないため)
この環境ではデータのクレンジング・集計・統計作業を楽々行えるが機械学習の環境整備はまだできていない。
特にDNNを使用したい場合、Spark MLlibでは対応していないので他のライブラリが必要となる。
そこで、上記環境にPython(Keras, TensorFlow)を追加しクレンジング・集計・統計・機械学習まで一気に行える環境にする。
想定している処理分担は以下の通り。
- クレンジング : Spark(Scala)
- 集計 : Spark SQL
- 統計 : Spark SQL
- 機械学習 : Spark MLlib, Python(Keras, TensorFlow)
D-Zeppelin
Apache Zeppelin with Apache Spark + Python(Keras, TensorFlow) over DockerをD-Zeppelinとしてgithubに公開しました。
使い方はReadmeを読んでください。
(hiveのmetasotreの扱いに苦労しました...)
今後
D-ZeppelinのGPU対応と環境ができたので実際に為替予測を始めたいな.