GoogleCloudPlatform
bigquery
TensorFlow

Google Cloud Datalab をローカルで使ってみる

More than 1 year has passed since last update.


Google Cloud Datalab とは?

Cloud Datalab

→ インタラクティブなデータ分析ツール

https://cloud.google.com/datalab/



Cloud Datalab


= GCPのサービスを利用する際の便利ツール

BigQuery 試したり、 TensorFlow 使ったりできるよ



入っているもの (2016.11.19現在)


  • Google Cloud Datalab 0.5.20161115


    • Python 2.7.9

    • Jupyter Notebook 4.2.3

    • Google Cloud SDK 134.0.0

    • TensorFlow 0.11.0rc0





  • Google Cloud SDK 134.0.0


    • gcloud

    • core

    • bq

    • gsutil

    • compute

    • preview

    • alpha

    • beta





準備



Google Cloud Platform でプロジェクトを作って請求先アカウントを設定する

https://goo.gl/kA9fKx

※無料枠を利用する場合でもクレジットカードが必要です。



Docker をインストールする



Windows の場合


Windows 10 の場合

Docker for Windows

https://docs.docker.com/docker-for-windows/


Windows 10 以外の場合

docker-toolbox

https://www.docker.com/products/docker-toolbox

Stable channel をインストールしてください



mac の場合

Docker for Mac

https://docs.docker.com/docker-for-mac/

Stable channel をインストールしてください



linux の場合

https://docs.docker.com/engine/installation/linux/



Cloud Datalab をローカルで起動してみる


docker が入ったら、 Cloud Datalab を起動してみましょう。

詳しくはこちら。

https://cloud.google.com/datalab/docs/quickstarts/quickstart-local



例) Macの場合

コマンド例

$ docker run -it -p "127.0.0.1:8081:8080" -v "${HOME}:/content" \

-e "PROJECT_ID=あなたのプロジェクト名" \
gcr.io/cloud-datalab/datalab:local

-v "${HOME}:/content" はホスト側(つまりMac側)のディレクトリを指定できます。

上記のデフォルトだと、 /User/ユーザー名 をコンテナの /content にマウントします、ということになります。

別のディレクトリを指定したい場合は、${HOME}を変更してください。

$ docker run -it -p "127.0.0.1:8081:8080" -v "${HOME}:/content" \

-e "PROJECT_ID=あなたのプロジェクト名" \
gcr.io/cloud-datalab/datalab:local

Unable to find image 'gcr.io/cloud-datalab/datalab:local' locally
local: Pulling from cloud-datalab/datalab
386a066cd84a: Pull complete
a3ed95caeb02: Pull complete
d0f5d9789ec3: Pull complete
ef371b137a80: Pull complete
64ce4acbd5e6: Pull complete
985d50bd0761: Pull complete
f0eda7b2aaa4: Pull complete
812b210897b1: Pull complete
3d0bf656e4a0: Pull complete
c4ea72a3d790: Pull complete
788988a83015: Pull complete
617d5fd837d5: Pull complete
5daded39bf68: Pull complete
0902f780f103: Pull complete
Digest: sha256:b13b348c56dffc2c69b3f189d6591a40a2a047bd458e5a8e1536d7e93dc4c93e
Status: Downloaded newer image for gcr.io/cloud-datalab/datalab:local
Cloning into 'docs'...
remote: Counting objects: 180, done.
remote: Total 180 (delta 0), reused 0 (delta 0), pack-reused 180
Receiving objects: 100% (180/180), 4.83 MiB | 357.00 KiB/s, done.
Resolving deltas: 100% (79/79), done.
Checking connectivity... done.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Starting Datalab in silent mode, for debug output, rerun with an additional '-e DATALAB_DEBUG=true' argument
Open your browser to http://localhost:8081/ to connect to Datalab.


起動したら、ブラウザで下記にアクセスしてみましょう。

http://localhost:8081/

最初に "Accept" ボタンで、承認する必要があります。


次にログインしましょう。

左上にあるボタンをクリックし、"Sign In" をクリックします。

スクリーンショット 2016-11-21 1.19.33.png


"許可する" をクリックします。

スクリーンショット 2016-11-21 1.20.04.png


チュートリアル

http://localhost:8081/notebooks/datalab/docs/Readme.ipynb

このチュートリアルの Introduction の上2つは必ず実行してください。

スクリーンショット 2016-11-21 3.02.41.png

bigquery や google strage など GCP のサービスを利用する場合は、3つ目も必ず実行してください。



QA



Q. 追加したいPythonのモジュールがあるのですがどうすれば良いですか?



A1. コンテナに入って pip install hoge しましょう

コンテナの名前を探す(指定されているコマンドで docker run を実行すると適当な名前をつけられるため)

$ docker ps 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7f6e881dede3 gcr.io/cloud-datalab/datalab:local "/datalab/run.sh" 1 hours ago Up 1 hours 127.0.0.1:8081->8080/tcp pedantic_meninsky

コンテナの中に入る

$ docker exec -it pedantic_meninsky /bin/bash

root@7f6e881dede3:/#

あとはよしなに〜

root@7f6e881dede3:/# pip install lxml



A2. Notebook から実行しちゃいましょう

最初にNotebookを保存するディレクトリにアクセスしましょう

http://localhost:8081/notebooks/datalab/notebooks/

開いたら、 Notebook をクリックすると新しいNotebookができます。

Notebook には以下のように記載して実行してください。

%%bash

pip install lxml



その他


一部のgcloudコマンドは叩けないです。

root@7f6e881dede3:/# gcloud components list

ERROR: (gcloud.components.list) The components management action could not be performed
because the installation root of the Cloud SDK could not be located.
If you previously used the Cloud SDK installer,
you could re-install the the SDK and retry again.