LoginSignup
19
2

More than 1 year has passed since last update.

Windows上でPysparkを用いたデータ処理② ~準備:DockerでJupyterNotebookを起動するまで~

Last updated at Posted at 2022-12-15

はじめに

新卒1年目エンジニアでございます。

今回は突然Sparkを用いてデータ処理を行うことになり、
周りがMacPCやVirtualBoxでのLinux環境を使用する中、
なんとかWindowsメインで何とかならないかと試行錯誤した過程の第二弾です。

同じようなことで悩まれている方のお力になれればと思います。

前回は結局Linuxコマンドを使いたいということで、WSLを使用してターミナルでUbuntuを選択できるようにしました。

今回の目的:Windowsで使い捨てのJupyterNotebook環境を作る。

本記事ではDockerを用いたJupyterNotebookの動かし方を紹介します。

1. DockerのSetup
2. Dockerをインストールと起動
3. JupyterNotebookを起動
4. 停止する

(別に使い捨てる必要はないのですが、私は毎回消してしまいます。)

以下、参考記事

1. DockerのSetup...

早速前回使えるようにしたUbuntuターミナルで、上の記事を参考にDockerのSetupを進めてみます。

01_docker失敗.png

怒られました…!まだUbuntuを入れたばかりでdockerなんてコマンドは知らないとのことです。

2. Dockerをインストールと起動

下記コマンド打ち込んでdockerのインストールを進める必要があります。

$ sudo apt update
$ sudo apt install -y ca-certificates curl gnupg lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt update
$ sudo apt install -y docker-ce docker-compose-plugin

そしてDockerを起動します。

$ sudo service docker start
 * Starting Docker: docker                                                  [ OK ]

3. JupyterNotebookを起動

Dockerを起動してようやくSetupの準備が整いました。
早速Setupして実行してみましょう。
'ディレクトリ'には今回起動するJupyterNotebookのなかで使用したいローカルのディレクトリを指定します。

$ sudo docker pull jupyter/pyspark-notebook
$ docker run --name spark_test -it -p 8888:8888 -v 'ディレクトリ':/home/jovyan/work jupyter/pyspark-notebook

02_dockerpull.png
DockerのSetupを始めることができました!!

参考までにdocker pull jupyter/pyspark-notebookのものを引っ張ってきています。

03_setup_jupyter.png

赤線のリンクをクリックすると規定のブラウザでJupyterNotebookが立ち上がります。
また、左に表示されているディレクトリの「work」の中身を見るとdocker run ...のときに指定したディレクトリの中身が表示されていることが確認できます。

04_jupyter_kidou.png

4. 停止する

Dockerを使用しているため、最後は忘れずに停止したいです。
停止するときは「Ctrl+C」で停止できますが、次回また起動しようとすると怒られてしまいます。

$ sudo docker run --name spark_test -it -p 8888:8888 -v /mnt/c/users/user/workspace/docker-jupyter:/home/jovyan/work jupyter/pyspark-notebook
docker: Error response from daemon: Conflict. The container name "/spark_test" is already in use by container "f5b3c8b62ac25881d3ea0147166a86252da3567d149fad356ec530f2119243c3". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

「Ctrl+C」で止める場合は、コンテナごと消すようにすることで無駄なリソースを置いておくこともなくなるのでおすすめです。

:
:
^C[I 2022-12-15 15:24:26.341 ServerApp] interrupted
Serving notebooks from local directory: /home/jovyan
0 active kernels
Jupyter Server 1.23.3 is running at:
http://f5b3c8b62ac2:8888/lab?token=938fd607cad95828c5190a342c767426786074e68c4c90b0
 or http://127.0.0.1:8888/lab?token=938fd607cad95828c5190a342c767426786074e68c4c90b0
Shutdown this Jupyter server (y/[n])? y
[C 2022-12-15 15:24:28.570 ServerApp] Shutdown confirmed
[I 2022-12-15 15:24:28.572 ServerApp] Shutting down 3 extensions
[I 2022-12-15 15:24:28.572 ServerApp] Shutting down 0 terminals
$ sudo docker rm /spark_test
/spark_test

これで次に起動するときに怒られることはなくなりました。

おわりに

最後まで読んでいただきありがとうございます。

いかがでしたでしょうか。
次回はJupyterNotebookを捜査していきます。

ありがとうございました。

19
2
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
19
2