0
0

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 1 year has passed since last update.

Hail | Databricks on AWS [2022/1/5時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

Hailは大規模遺伝子データセットの分析のためにSpark上で利用できるライブラリです。

重要!

  • Hail 0.2.65以降を使用する際には、Apache Spark version 3.1(Databricks Runtime 8.x か 9.x)を使用してください。
  • Databricks Runtime for Genomics (deprecated)ではなく、DatabricksランタイムにHailをインストールしてください。
  • Hailはクレディンシャルパススルーではサポートされません。
  • Hailは、HailからGlowにエクスポートする際を除いてGlowではサポートされません。

クラスターの作成

Databricks Container Servicesを用いてDocker経由でHailをインストールします。

Hail環境をセットアップするためのコンテナに関しては、ProjectGlow Dockerhubページを参照ください。projectglow/databricks-hail:<hail_version>で、タグを利用可能なHailのバージョンで置き換えて使用してください。

  1. Hailを使用するジョブクラスターを作成します。

    1. Databricks CLIをセットアップします。
    2. タグを希望の<hail_version>に設定して、Hail Docker containerを用いてクラスターを作成します。
    3. 以下にサンプルのジョブ定義を示します。notebook_pathとDatabricksランタイムの<databricks_runtime_version><hail_version>を編集してください。
    Bash
    databricks jobs create --json-file hail-create-job.json
    

    hail-create-job.json

JSON
{
  "name": "hail-job",
  "notebook_task": {
    "notebook_path" : "/Users/<user@organization.com>/hail/docs/hail-tutorial"
  },
  "new_cluster": {
    "spark_version": "<databricks_runtime_version>.x-scala2.12",
    "aws_attributes": {
      "availability": "SPOT",
      "first_on_demand": 1
    },
    "node_type_id": "r5d.4xlarge",
    "num_workers": 32,
    "docker_image": {
      "url": "projectglow/databricks-hail:<hail_version>"
    }
  }
}

ノートブックでHailを使う

多くの部分に関しては、Hailドキュメントと同じようにDatabricksのHailは動作します。しかし、Databricks環境ではいくつかの変更が必要となります。

Hailの初期化

Hailを初期化する際、作成済みのSparkContextを引渡し、idempotentTrueにしてください。この設定によって、複数のDatabricksノートブックがHailと同じコンテキストを使用するようになります。

注意
ローテーションされるドライバーのlog4jのアウトプットにログを保存するには、skip_logging_configurationを有効化してください。この設定はHail 0.2.39以降でのみサポートされています。

Python
import hail as hl
hl.init(sc, idempotent=True, quiet=True, skip_logging_configuration=True)

Bokehプロットの表示

Hailはプロットの作成にBokehを使用します。Bokehに組み込まれているshow関数はDatabricksでは動作しません。Hailによって生成されるBokehプロットを表示するには、以下のようなコマンドを実行します。

Python
from bokeh.embed import components, file_html
from bokeh.resources import CDN
plot = hl.plot.histogram(mt.DP, range=(0,30), bins=30, title='DP Histogram', legend='DP')
html = file_html(plot, CDN, "Chart")
displayHTML(html)

詳細はBokehを参照ください。

Databricks 無料トライアル

Databricks 無料トライアル

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?