Hazy Ideas

日々の勉強の気づきを書き出しています

データサイエンス100本ノック、最初の環境設定(とVmmem対処法)

100本ノックに挑戦したい(再)。

GitHub - The-Japan-DataScientist-Society/100knocks-preprocess: データサイエンス100本ノック(構造化データ加工編)

参考にしたサイト

https://www.cresco.co.jp/blog/entry/14446/

 

はじめてにはハードルが高く、環境設定に手間取ったので、記録しておく。

OS: Windows 10 home

 

1.Docker Desktopのインストール

Windows Home editionでもDocker Desktopが使えるようになった。WSLというLinuxWindows用サブシステムのインストールが必要になる(案内に従えばOK)。

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

インストール後、WSL 2が不完全という案内が出るので、リンク先の、「手順 4 - Linux カーネル更新プログラム パッケージをダウンロードする」からダウンロード、インストール、そしてPC再起動。

https://docs.microsoft.com/ja-jp/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

 

2.Gitのインストール

Git - Downloads

Windows用の最新版をダウンロードすればよい。

 

3.環境構築(コンテナ稼働、というらしい)

方法1:Gitから複製する

PowerShellを通常起動、以下のコマンドを順番に入力する。

git config --global core.autocrlf false

git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess

cd 100knocks-preprocess

docker-compose up -d --build

* PowerShellを管理者権限で起動すると、ディレクトリがSystemとなり、うまくいかなかった。通常起動でUserディレクトリからはじめる必要あり?

* 1行目は、core.autocrlfをtrueではなくfalseにする設定変更のため。前者がWindows環境では正しいが、今回はDocker上のLinux環境で使用するため、らしい。

* 最後の4行目を実行すると、環境構築に10分以上かかる。

 

方法2:GithubからZipをダウンロードする

githubのサイト上で、Code、Download Zipをクリックする。ダウンロードしたフォルダを解凍(普通に開けるだけ、念のため)し、Userフォルダなどに移す。

あとは方法1と同様に、PowerShell上で該当フォルダに移動し、docker-composeする。

この方法では試してはいないけど、たぶんできるはず。

 

4.勉強環境の起動

以下をブラウザに入力

http://localhost:8888

するとJupyter notebookが開き、100本ノックが始められる!

 

5.終了と再開

Docker Desktopアプリ上のアイコンから、開始・終了を制御できる。

もしくはPowerShellで以下を入力

終了
docker-compose stop
docker-machine stop default

再開

cd 100knocks-preprocess
docker-compose start

 

ひとまず環境は整えられた。しかし、メモリサイズの小さいPCだWebサイトの閲覧が難しくなるくらい動きが遅くなる。

タスクマネージャーを見たところ、Vmmemというプロセスがメモリのほとんどすべて(95%)を使っていた。調べたところ、暫定的に「.wslconfig」の設定を書き換えて、最大メモリ使用量を小さくすればいいらしい。

 

設定方法

1. フォルダから、C:\Users\(user名)、まで行く。PowerShell上でなくとも、GUIでよい。

* この場所のことをホームディレクトリというらしい。%USERPROFILE% とも書かれる。

 

2. ファイル「.wslconfig」を探す。なければ作成する。自分の場合、「.gitconfig」をコピーした。

 

3. テキストファイルとして開き、中身を消して、以下をコピペ。1GBまでしか使わないように設定するという意味。

[wsl2]
memory=1GB

4. WSLを再起動。調べたとおりのコマンドでエラーが出たので、OS再起動した。

 

その結果、メモリ使用率が70%前後まで下がった!Vmmem単体では1,500MBまで低下(なんで1GB超えてるの?1.5GBが下限か?)

 

今回試したPCは8GBしかないので、100本ノックの勉強には厳しいな。とりあえずmemory=0.5GBに再設定したけども、このPCからはDockerごとアンインストールしよう。ローカルでPython使うほうがいいのかも。

 

データサイエンス100本ノックをDockerなしSQLなしで動かす(Python, R) - Qiita

 

アンインストールは、

Windowsボタン、設定、Appsから、

・Docker Desktop

Windows Subsystem for Linux

をアンインストールした(1つめを消した時点でTask maneger上から、Vmmemも消えた)。消した状態のメモリ使用率は50%だった(Chrome開いてブログ書いてるだけでもこのくらいか)。