本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Ray 是 UC berkley 提出的分布式机器学习。sklearn 是运行在单机上的机器学习,虽然支持多线程,但分布式并不支持。Ray 也支持 tensorflow,pytorch 和其他机器学习包。本博客是帮助初学者建立学习环境,依据的博文是3个,1个是 英文版的官方建立环境的材料 github.com/anyscale/ac…,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(回车键), 遇到授权许可,按翻页键就是,总之,不要输入no。最后,提问时需不需要初始化base开发环境,输入yes。
安装完毕,退出exit,然后重新登入。这时,会有以下 提示符出现,
(base) [jupyter@localhost ~]$
B。建立 anyscale-academy环境
在用户目录下,unzip academy-main.zip 压缩文件,
(base) [jupyter@localhost ~]$ unzip academy-main.zip
然后,进入 academy-main目录,
(base) [jupyter@localhost ~]$ cd academy-main
敲入建立 环境名anyscale-academy 的命令:
(base) [sjj@localhost academy-main]$ conda env create -f environment.yml
这个过程比较慢,如果刚建立的虚拟机不能访问互联网,甚至是国内的网络,基本上是DNS配置,开始一些Linux环境的配置,加入nameserver,国内是114.114.114.114 dns服务器
(base) [jupyter@localhost ~]$sudo vi /etc/resolv.conf
nameserver 114.114.114.114
初学者可以看看environment.yml 语法,这在先前的博客已经描述了。安装环境到environment.yml文件的pip下的python软件包很慢,或干脆就断了。不要紧的,因为依赖包在pip管辖下的镜像源在国外,可以用国内的,国内的当数阿里云的最快。版本如果没有,就选择当前最新的就可以了。不管怎样,先进入anyscale-academy 环境,
(base) [jupyter@localhost ~]$ conda activate anyscale-academy
(anyscale-academy) [sjj@localhost academy-main]$
然后,我们先做一个辅助动作,因为按装ray先前先需要的,
(anyscale-academy) [sjj@localhost 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) [sjj@localhost academy-main]$ sh tools/fix-jupyter.sh
D。潜在的需要的命令:
现在您可以打开jupyter工具了
(anyscale-academy) [sjj@localhost 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日