Gerapy分布式部署
搭建远程服务器的环境
-
装好带docker服务的系统
Docker:容器可生成镜像,也可拉去镜像生成容器 示例:将一个环境打包上传到云端(远程服务器),其他8个服务器需要这个环境直接向云端拉取镜像生成容器,进而使用该环境,比如有MYSQL的镜像、Redis的镜像
备注:Linux系统下安装Docker
-
更新yum包
yum update
-
安装依赖软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
-
设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装docker
yum install docker-ce
-
启动docker服务
systemctl start docker
-
设置开机自启动
systemctl enable docker
Linux系统下安装docker-compose
-
安装
sudo curl -L "https://github.com/docker/compose/releases/download/VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
记得将
VERSION
替换为实际的版本号,或者直接从 Docker Compose 的GitHub Release 页面获取最新版本号。 -
赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
-
验证安装
docker-compose --version
-
-
修改yum源
-
验证网络是否可以连接阿里云镜像
ping mirrors.aliyun.com
-
手动配置
-
1、删除原yum源
cd /etc/yum.repos.d # 删除原yum源 rm -rf /etc/yum.repos.d/*
-
2、下载阿里云Centos-7.repo文件
# wget命令下载: wget [options] [url] wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # curl命令下载: curl [options] [url] curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
3、 清除及生成缓存
# 清除yum缓存 yum clean all # 缓存阿里云镜像 yum makecache
-
4、查看yum源信息,已经更换为了阿里云镜像源
yum repolist
-
-
-
上传compose.ymal文件(相关镜像配置文件)
- yum -y install lrzsz:rz命令可上传文件
-
通过Docker Compose(Compose 是用于定义和运行多容器 Docker 应用程序的工具)使用 YAML 文件来配置应用程序需要的所有服务
docker-compose up -d 在后台运行,关闭shell不会关闭任务 docker-compose down 关闭运行的任务 docker ps -a 显示当前服务器的所有容器
-
安装anaconda3
一、安装 Anaconda
- 下载 Anaconda 安装包
首先,前往 Anaconda 官网 下载适用于 Linux 的安装包。
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-Linux-x86_64.sh
- 安装 Anaconda
下载完成后,运行以下命令开始安装:
bash Anaconda3-2023.07-Linux-x86_64.sh
安装过程中会出现许可协议提示,按 Enter 键查看协议内容,按 Q 键退出查看,然后输入 yes 同意协议。
安装路径建议使用默认路径(按 Enter 键确认)。
- 配置环境变量
安装完成后,建议添加 Anaconda 到系统环境变量中。在终端中运行以下命令:
source ~/.bashrc
或者手动编辑 .bashrc 文件,在文件末尾添加以下内容:
export PATH="$HOME/anaconda3/bin:$PATH"
保存文件后,运行:
source ~/.bashrc
二、基本使用
- 验证安装
在终端中输入以下命令验证是否安装成功:
conda --version
如果返回 conda 的版本号,则表示安装成功。
- 更新 conda
安装成功后,建议更新 conda 到最新版本:
conda update conda
- 下载 Anaconda 安装包
3. 创建和管理环境
使用 Anaconda 可以轻松创建和管理虚拟环境。例如,创建一个名为 myenv 的新环境,并安装指定版本的 Python:
```
conda create -n myenv python=3.8
```
激活环境:
```
conda activate myenv
```
安装常用包(如 numpy 和 pandas):
```
conda install numpy pandas
```
列出所有环境:
```
conda env list
```
删除环境:
```
conda remove -n myenv --all
```
4. 使用 Jupyter Notebook
在 Anaconda 环境中使用 Jupyter Notebook 是非常方便的。首先,确保 Jupyter 已安装:
```
conda install jupyter
```
然后,在终端中运行:
```
jupyter notebook
```
浏览器将自动打开 Jupyter Notebook 的界面。
三、高级使用
1. 配置镜像源
为了提高下载速度,可以配置国内镜像源。例如,配置清华大学的镜像源:
```
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
```
2. 导出和导入环境
导出环境配置:
```
conda env export > environment.yml
```
根据配置文件创建环境:
```
conda env create -f environment.yml
```
**备注:**无法将windos系统的conda环境导出,再导入linux系统中。因为包在linux系统和windows系统中是不同的
四、常见问题
1. conda 命令未找到
如果在终端中遇到 conda: command not found 的错误,确保已正确配置环境变量,并重新加载 .bashrc 文件。
```
source ~/.bashrc
```
2. 解决依赖冲突
在安装包时可能会遇到依赖冲突的情况。可以尝试使用 conda-forge 仓库:
```
conda install -c conda-forge <package_name>
```
结语
```
Anaconda 是一个强大的工具,可以帮助我们更高效地进行数据科学和机器学习项目的开发与管理。希望本文能帮助你顺利安装和使用 Anaconda。在实践中不断探索和总结,会有更多的收获。
```
分布式部署
-
scrapy-redis环境搭建
-
scrapy-redis分布式实现
scrapy-redis项目跟原来的scrapy项目相比: 将调度器由本地的调度器变为redis数据库,可以存储指纹,任务 本地调度器无法看见 redis数据库调度器可以共享,且能看见
-
安装scrapyd:分布式部署服务,Scrapyd 是一个运行 Scrapy 爬虫的服务程序,方便地完成 Scrapy 爬虫项目的部署任务调度。
-
安装python-scrapyd-api:封装了scrapyd分布式部署相关命令
-
安装Scrapyd-Client:方便项目的打包并部署到scrapyd上
-
进行项目的打包部署相关配置[scrapy.cfg]
[settings] default = centoschina.settings [deploy:centoschina] # 本机的scrapyd, 不用改 url = http://localhost:6800/ project = centoschina
-
在scrapy.cfg文件所在目录运行scrapyd-deploy命令
-
解决scrapyd-deploy不是内部外部命令
在python解释器下面的Scripts,新建scrapy.bat和scrapyd-deploy.bat文件
-
解决报一个转义错误
打开scrapyd下的utils.py文件,修改如下
140行左右改成这样即可
if isinstance(out, bytes): tmp = out.decode('utf-8').splitlines() else: tmp = out.splitlines() # tmp = out.decode('utf-8').splitlines()
-
-
-
安装gerapy:一个后台管理系统,由django实现,相关按钮利用了python-scrapyd-api和Scrapy-Client的命令
gerapy依赖于前几个环境的搭建
Gerapy使用流程
- cmd输入scrapyd,挂着scrapyd服务
- gerapy init 初始化,会在文件夹下创建一个gerapy文件夹
- cd gerapy
- gerapy migrate
- gerapy runserver 默认是127.0.0.1:8000
- gerapy createsuperuser 创建账号密码,默认情况下是没有的
- 浏览器输入127.0.0.1:8000 登录账号密码,进入主页
- 各种操作,比如添加主机,打包项目,定时任务等
远程主机的gerapy使用注意
- scrapyd要修改配置文件的bind_address为0.0.0.0
0.0.0.0在服务器的环境中,指的就是服务器上所有的ipv4地址,如果机器上有2个ip 192.168.30.10 和 10.0.2.15,redis在配置中,如果配置监听在0.0.0.0这个地址上,那么,通过这2个ip地址都是能够到达这个redis服务的。同时呢,访问本地的127.0.0.1也是能够访问到redis服务的。
- 是否保持序列的持久化决定了去重队列信息是否保留
定时任务
gerapy弊端
爬虫任务报错不知道,crawlab部署(社区版免费,专业版付费)可以看到报错
难题
-
docker拉取镜像拉不下来:超时错误
a. 增加Docker的镜像源配置文件 /etc/docker/daemon.json
如果没有配置过镜像源该文件默认是不存在的sudo vi /etc/docker/daemon.json
在其中增加如下内容
在其中增加如下内容
{ "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com "] }
b. 重启docker
service docker restart
c. 查看配置是否生效
docker info|grep Mirrors -A 1
- 分布式项目打包部署出现转义错误,scrapyd-deploy
更多精致内容