Ray 是 UC berkley 提出的分布式機器學習。sklearn 是運作在單機上的機器學習,雖然支援多線程,但分布式并不支援。Ray 也支援 tensorflow,pytorch 和其他機器學習包。本部落格是幫助初學者建立學習環境,依據的博文是3個,1個是 英文版的官方建立環境的材料 https://github.com/anyscale/academy,2)是筆者在國内自己建立環境所遇到的問題及其解決方案的部落格,3)安裝和建立jupyter工具,這樣初學者可以少走彎路。
1. 前提條件
筆者的centOS 是8.3版本,其實centOS 8 版本以上的都可以,假設機器是初建立的,就是還沒有裝上各種軟體的。并且初學者是在大陸的,通路外網有困難的。
下載下傳
- Anaconda3-2020.11-Linux-x86_64.sh,anaconda 下載下傳的安裝包
- academy-main.zip,github的代碼zip下載下傳包,
2. 步驟
A。安裝Anaconda
安裝anaconda是很直接的,筆者下載下傳的是Anaconda3-2020.11-Linux-x86_64.sh,
sh Anaconda3-2020.11-Linux-x86_64.sh
遇到提問,如果是yes/no 的選擇,都鍵入yes,如果是提問是否繼續,鍵入 Enter(Enter鍵), 遇到授權許可,按翻頁鍵就是,總之,不要輸入no。最後,提問時需不需要初始化base開發環境,輸入yes。
安裝完畢,退出exit,然後重新登入。這時,會有以下 提示符出現,
(base) [[email protected] ~]$
B。建立 anyscale-academy環境
在使用者目錄下,unzip academy-main.zip 壓縮檔案,
(base) [[email protected] ~]$ unzip academy-main.zip
然後,進入 academy-main目錄,
(base) [[email protected] ~]$ cd academy-main
敲入建立 環境名anyscale-academy 的指令:
(base) [[email protected] academy-main]$ conda env create -f environment.yml
這個過程比較慢,如果剛建立的虛拟機不能通路網際網路,甚至是國内的網絡,基本上是DNS配置,開始一些Linux環境的配置,加入nameserver,國内是114.114.114.114 dns伺服器
(base) [[email protected] ~]$sudo vi /etc/resolv.conf
nameserver 114.114.114.114
初學者可以看看environment.yml 文法,這在先前的部落格已經描述了。安裝環境到environment.yml檔案的pip下的python軟體包很慢,或幹脆就斷了。不要緊的,因為依賴包在pip管轄下的鏡像源在國外,可以用國内的,國内的當數阿裡雲的最快。版本如果沒有,就選擇目前最新的就可以了。不管怎樣,先進入anyscale-academy 環境,
(base) [[email protected] ~]$ conda activate anyscale-academy
(anyscale-academy) [[email protected] academy-main]$
然後,我們先做一個輔助動作,因為按裝ray先前先需要的,
(anyscale-academy) [[email protected] academy-main]$ sudo yum install -y python3-devel
現在安裝ray,比如我們要安裝ray[all], 輸入以下指令就可以,注意使用阿裡雲的鏡像源,用-i的辨別符:
#pip install -i https://mirrors.aliyun.com/pypi/simple/ 要下的包名
pip install -i https://mirrors.aliyun.com/pypi/simple/ ray[all]
我們截選一些environment.yml檔案下的pip段:
name: anyscale-academy
channels:
- conda-forge
- pyviz
dependencies:
- python=3.7
- pip
...
- nodejs
- pip:
- ray[all] >= 1.2
- tensorboard >= 2.3
- tensorflow >= 2.3
- atoma
- box2d-py
讀者隻需一個一個用阿裡雲的鏡像安裝pip下的python包。
安裝完畢,整個anyscale-academy的環境就全部安裝成功了。
C。定制化的補充指令
在 academy-main目錄下,敲入
(anyscale-academy) [[email protected] academy-main]$ sh tools/fix-jupyter.sh
D。潛在的需要的指令:
現在您可以打開jupyter工具了
(anyscale-academy) [[email protected] academy-main]$ jupyter lab
但你會可能會遇到問題,如果沒有,恭喜,您就可以使用學習環境了,但也可能有問題。比如:
/usr/lib64/xxx/tornado/netutil.py", line 196, in bind_sockets sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address
如果您遇到麻煩,激活IPv6,在安裝ray環境經常遇到的問題部落格裡已經提及,
# 激活IPv6
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
同時,關閉firewalld,
systemctl status firewalld
# 防火牆工作狀态: active (running) since Fri 2021-03-19 10:17:27 CST; 4 days ago
# 拆卸防火牆: inactive (dead) since Tue 2021-03-23 10:58:10 CST; 3s ago
systemctl stop fiewalld
如果還是不能按照 jupyter lab的輸出,在windows通路jupyter,看看下面的步驟:
建立在/etc/hosts 檔案裡加入一條記錄:
...
192.168.1.231 localhost
在chrome浏覽器,輸入jupyter lab輸出的位址,而不是下面截圖的位址,
現在基本上,讀者建立了學習環境,後續,我們在介紹怎樣使用學習材料。
E。其他
本文寫于 2021年4月15日