Nabe International | Takeru Boost >> Takeruを回せ! >>

Takeru Elysia news!

Apache Sparkを活用した大規模解析プラットフォームであるTakeru Elysiaのニュースをお伝えします。
この春までにいくつかの機能アップやそれに伴う動作確認をしていますのでそれをアップデートします。

kubernetes(k8s)環境に対応しました

Apache Sparkではまだyarnがよく利用されていると思いますが、これに加えkubernetes環境で動作するようになりました。
kubernetesはdockerなどのコンテナをクラスタ上で動作させるプラットフォームですが、これによりcloudとon premissと、両方の環境を揃えることができるようになりました。
また、yarn環境ではどうしても既存の解析で使うGridEngineなどとのリソース配分に難しい面がありましたが、kubernetesではそもそもの既存解析をGridEngineではなくkubernetes配下で動作させることが期待できます。
Apache Sparkが必要な大規模解析はkubernetes上に動的にデプロイしたSpark Cluster上で実行し、Spark対応ではない多くの解析ソフトウェアはDockerコンテナに載せてkubernetes上で分散処理を行うといったことが可能になります。まだ試験段階ではありますが、コンテナ化されたGalaxyをkubernetes上に載せることも可能でした。

s3互換ストレージに対応しました

オープンソースのオブジェクトストレージ構築ソフトウェア minioを利用したs3互換環境が利用可能です。
"s3:// "で表現されたファイルをscalaやpythonから利用でき、cloudとon premissとでの互換性が高まりました。

HadoopのEC(Erasure Coding)に対応

hdfsはとても高速である反面、データの複製を3つ持つコストが安くはないというデメリットがありました。(データを3つに複製して分散することで性能と冗長性を確保しています。) Erasure CodingはRAIDのような機能を実現し、複製ではなくパリティ情報を持たせることで容量効率を上げます。
もちろん通常の複製を行う領域(レプリケーション領域)に比べると性能面での劣化が懸念されますが、社内でhailの大規模解析を試行した範囲では実用的な性能がある印象でした。
便利なことにEC領域とレプリケーション領域はディレクトリに対する設定で実現できますので、たとえばhotな解析データはレプリケーション領域で高性能に利用し、解析が完了したcoldなデータはEC領域に移すという運用も可能です。

これらの変更を適用した上で、hailの最新バージョンで動作確認をしました。

hailはApache Sparkに対応したオープンソースの汎用ゲノムデータ解析ライブラリで、pythonを使って大規模なGWAS解析を行うことができます。
ナベではhailのtutorialにあるデータに加え、1.2億変異を有するvcfファイルを利用したデータ操作を実際に行い、動作確認をしています。 より詳細なご紹介はまたの機会にいたしますが、お問い合わせもお待ちしております。