7
1

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 5 years have passed since last update.

はじめに

この記事はデータサイエンスに関して By データミックスコミュニティ Advent Calendar 2019の15日目の記事です。
毎週お世話になっているデータミックスのカレンダーということで参加。

Cloud Datalabとは

最近、業務でCloud Datalabを使い始めた。
Cloud Datalabとは、

データの探索、分析、可視化と機械学習のための使いやすいインタラクティブなツール

Cloud Datalab は、Google Cloud Platform でデータを探索、分析、変換、可視化し、機械学習モデルを構築するために作成された、高度なインタラクティブ ツールです。Compute Engine 上で動作し、さまざまなクラウド サービスに簡単に接続できるため、データ サイエンティストが本来の仕事に専念することを可能にします。

とのこと。
Compute Engine上にJupyter NotebookのDockerコンテナを立ててくれて、ローカルマシンから簡単にアクセスできる。
Compute Engineのインスタンスなので、お金で殴ればメモリやCPUを自由に変えられるところもいいところ。

始め方もすごく簡単で以下を打つとすぐにアクセスできる。

$ gcloud components install datalab

$ datalab create datalab-instance-name

すると

スクリーンショット 2019-12-13 14.40.01.png

こんな感じの画面が開かれる。

ノートブックはこんな感じ

スクリーンショット 2019-12-13 14.42.17.png

Juliaを使う

このノートブックは

Cloud Datalab は、豊富なモジュール エコシステムと強固なナレッジベースを誇る Jupyter(旧 IPython)上に構築されています。Cloud Datalab を活用することにより、Python、SQL、JavaScript(BigQuery のユーザー定義関数用)を使った BigQuery、Cloud Machine Learning Engine、Compute Engine、Cloud Storage のデータ分析が可能になります。

つまり、Juliaは使えない!
kernelから選べる言語を見てもpythonしか対応していない。

スクリーンショット 2019-12-13 14.52.35.png

最近1日目の立川先生の記事でもあったのを見てJuliaを使ってみたいな〜と思っていたので入れてみる。

やること

  • Datalabのインスタンスに入る
  • それっぽいDockerfileを探す
  • コンテナに入る
  • JuliaをインストールしてJuputerで使えるパッケージを入れる

まずSSHしてインスタンスに入り、rootユーザになりDockerfileを探す。

$ sudo su

$ cd /

$ find ./ -name Dockerfile

./usr/share/docker/contrib/nnp-test/Dockerfile
./usr/share/docker/contrib/httpserver/Dockerfile
./usr/share/docker/contrib/syscall-test/Dockerfile
./usr/share/docker/contrib/desktop-integration/gparted/Dockerfile
./usr/share/docker/contrib/desktop-integration/chromium/Dockerfile
./mnt/stateful_partition/var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/.install/.backup/platform/ext-runtime/nodejs/data/Dockerfile
./mnt/stateful_partition/var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/.install/.backup/platform/ext-runtime/go/data/Dockerfile
./mnt/stateful_partition/var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/platform/ext-runtime/nodejs/data/Dockerfile
./mnt/stateful_partition/var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/platform/ext-runtime/go/data/Dockerfile
./var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/.install/.backup/platform/ext-runtime/nodejs/data/Dockerfile
./var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/.install/.backup/platform/ext-runtime/go/data/Dockerfile
./var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/platform/ext-runtime/nodejs/data/Dockerfile
./var/lib/docker/overlay2/0a2eef30ccfab906380374ebfe640fe5e9da75796598baecb20b041ce7a518fc/diff/tools/google-cloud-sdk/platform/ext-runtime/go/data/Dockerfile
./var/lib/docker/overlay2/e7104b73a79e5676bd3e91fe8211a7bdf16d662be55b2344700abafd222dfbb1/merged/tools/google-cloud-sdk/.install/.backup/platform/ext-runtime/nodejs/data/Dockerfile
./var/lib/docker/overlay2/e7104b73a79e5676bd3e91fe8211a7bdf16d662be55b2344700abafd222dfbb1/merged/tools/google-cloud-sdk/.install/.backup/platform/ext-runtime/go/data/Dockerfile
./var/lib/docker/overlay2/e7104b73a79e5676bd3e91fe8211a7bdf16d662be55b2344700abafd222dfbb1/merged/tools/google-cloud-sdk/platform/ext-runtime/nodejs/data/Dockerfile
./var/lib/docker/overlay2/e7104b73a79e5676bd3e91fe8211a7bdf16d662be55b2344700abafd222dfbb1/merged/tools/google-cloud-sdk/platform/ext-runtime/go/data/Dockerfile

怪しそうな./usr/share/docker/contrib/httpserver/Dockerfileを見に行ってコンテナを確かめる

$ cd /usr/share/docker/contrib/httpserver/

$ docker ps -a

CONTAINER ID        IMAGE                                         COMMAND                  CREATED             STATUS              PORTS                      NAMES
7852ff2c96ac        gcr.io/google-containers/fluentd-gcp:2.0.17   "/bin/sh -c '/run.sh…"   12 minutes ago      Up 11 minutes       80/tcp                     logger
916f949d7331        gcr.io/cloud-datalab/datalab:latest           "/datalab/run.sh"        12 minutes ago      Up 11 minutes       127.0.0.1:8080->8080/tcp   datalab

まさにそれっぽいコンテナ発見!
そのコンテナに入ってJuliaを入れる。

$ docker exec -it datalab bash

# ここからコンテナ内

# Juliaの公式サイトから落としてくる
$ wget https://julialang-s3.julialang.org/bin/linux/x64/1.3/julia-1.3.0-linux-x86_64.tar.gz

# 解凍
$ tar -zxvf julia-1.3.0-linux-x86_64.tar.gz

$ ls julia*

julia-1.3.0-linux-x86_64.tar.gz

julia-1.3.0:
bin  etc  include  lib  libexec  LICENSE.md  share

無事juliaが入ったので、pathを通して呼び出せるようにする

# pathを通す
$ echo "alias julia='/julia-1.3.0/bin/julia'" >> ~/.bashrc

# shell実行
$ exec $SHELL

# 呼び出し
$ julia

               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.3.0 (2019-11-26)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |
julia> 

無事呼び出せた!

ここにIJuliaを入れてJupyter Notebookで使えるようにしていく。

julia> ]

(v1.3) pkg> add IJulia

# パッケージモードを抜けます
^C

julia> using IJulia
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]

julia> notebook(detached=true)
install Jupyter via Conda, y/n? [y]: y

# 色々あってちょっと長い

> julia

これで完了したらノートブックを読み込み直す。

スクリーンショット 2019-12-13 15.21.40.png

ここにjuliaが追加されて入れば成功!

スクリーンショット 2019-12-13 15.29.37.png

juliaが使えるようになった!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?