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というLinux用Windows用サブシステムのインストールが必要になる(案内に従えば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開いてブログ書いてるだけでもこのくらいか)。