全面解析Gerapy分布式部署:从环境搭建到定时任务,避开Crawlab的坑
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 restartc. 查看配置是否生效 docker info|grep Mirrors -A 1
- 分布式项目打包部署出现转义错误,scrapyd-deploy
更多精致内容

 
相关文章:
 
全面解析Gerapy分布式部署:从环境搭建到定时任务,避开Crawlab的坑
Gerapy分布式部署 搭建远程服务器的环境 装好带docker服务的系统 Docker:容器可生成镜像,也可拉去镜像生成容器 示例:将一个环境打包上传到云端(远程服务器),其他8个服务器需要这个环境直接向云端拉取镜像生成容器,进而使用该环境,比如有MYS…...
 
Springboot项目中使用druid实现多数据源和动态数据源,因数据库不可用导致的项目挂起的处理方案
Springboot项目中使用druid因数据库不可用导致的项目挂起的处理方案 在Spring Boot项目中使用Druid实现多数据源和动态数据源管理是一个常见的场景。通过合理的配置和错误处理机制,您可以有效地管理数据源,避免因数据库不可用而导致整个项目挂起。 1.…...
多线程 03:知识补充,静态代理与 Lambda 表达式的相关介绍,及其在多线程方面的应用
一、概述 记录时间 [2024-08-16] 前置知识:Java 基础篇;Java 面向对象 多线程 01:Java 多线程学习导航,线程简介,线程相关概念的整理 多线程 02:线程实现,创建线程的三种方式,通过多…...
 
机器学习中的距离概念
距离在机器学习中应用广泛,包括欧式距离、曼哈顿距离、内积距离和KL距离。 下面总结一下。 机器学习中的距离 欧式距离曼哈顿距离内积距离KL距离距离作为损失函数(MSE/MAE...)欧式距离与内积距离的联系☆距离的有效性 欧式距离 欧式距离(Euclidean Dis…...
Java 如何判断map为null或者空
1.示例一 在Java中,如果我们想判断一个Map是否为null或者空(即没有任何键值对),我们可以使用以下的方法。下面是一个完整的示例代码,展示了如何进行这样的判断: import java.util.HashMap; import java…...
终端用户视角下的性能测试,体验与度量的融合
传统的性能测试的度量标准是什么 响应时间(Response Time): 这是从客户端发出请求到接收到完整响应所需的时间。响应时间是衡量系统性能的重要指标,特别是在面向用户的应用中,因为它直接影响用户体验。 而用户体验的度…...
KCP源码解析系列(二)KCP协议结构体
一、KCP协议包 1.1 kcp协议包 kcp中只有一种数据包,不管是数据还是控制信息,都用这个数据包来表示 0 4 5 6 8 (BYTE) ---------------------------- | conv |cmd|frg| wnd | ---------------------------- 8 | …...
 
微软运行库全集合:一站式解决兼容性问题
开发者在部署应用程序时经常遇到因缺少运行库而引发的兼容性问题。为了解决这一问题,电脑天空推荐微软常用运行库合集,一个集成了微软多个关键运行库组件的软件包。 📚 包含组件概览: Visual Basic Virtual Machine:…...
 
【 亿邦动力网-注册安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …...
算法笔记|Day26贪心算法IV
算法笔记|Day26贪心算法IV ☆☆☆☆☆leetcode 452. 用最少数量的箭引爆气球题目分析代码 ☆☆☆☆☆leetcode 435. 无重叠区间题目分析代码 ☆☆☆☆☆leetcode 763.划分字母区间题目分析代码 ☆☆☆☆☆leetcode 452. 用最少数量的箭引爆气球 题目链接:leetcode …...
 
CVPR2023《DNF: Decouple and Feedback Network for Seeing in the Dark》暗光图像增强论文阅读笔记
相关链接 论文链接 https://openaccess.thecvf.com/content/CVPR2023/papers/Jin_DNF_Decouple_and_Feedback_Network_for_Seeing_in_the_Dark_CVPR_2023_paper.pdf 代码链接 https://github.com/Srameo/DNF 摘要 RAW数据的独特属性在低光照图像增强方面展现出巨大潜力。…...
大厂进阶七:React状态管理全解析
前言: React 中用于状态管理的hook及库有:useState、useReducer、useContext、useReducer useContext和一些第三方的库如redux、mobx等。 1、useState 单一组件某个具体状态 2、useReducer 单一组件中多个状态管理,策略分发机制统一管理…...
 
【ocr识别003】flask+paddleocr+bootstrap搭建OCR文本推理WEB服务
1.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 2.了解、学习OCR相关技术知识领域,结合日常的场景进行测试、总结。如本文总结的flaskpaddleocrbootstrap搭建OCR文本推理WEB服务应用示例场景。 文章目录 1.代码结构2.效果演…...
 
从零开始搭建 LVS 高性能集群 (DR模式)
从零开始搭建 LVS 高性能集群 (DR模式) 架构 本设计方案采用三台服务器构建集群,使用Linux Virtual Server (LVS) 作为负载均衡器,运行在直接路由 (DR) 模式下。集群中的每一台服务器都将运行相同的服务,以实现 高可用…...
 
Linux环境开发工具【yum与vim】
🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 文章目录 1.Linux软件包管理器yum1.1 快速使用yum 2. Linux编辑器-vim的使用2.1 vim的基本…...
laravel GuzzleHttp Client 无法获取返回的错误信息
Client发送一些请求,当返回状态不是200的时候,无法获取完整错误信息 $client new Client([base_uri > $this->getUri()./order/aaaaaa,timeout > 30,verify > false]);try {$response $client->request(POST, , [headers > [Lang&g…...
XMOS 多路音频解码器
当谈及高性能音频解码器,XMOS 是一个不容忽视的名字。作为音频解决方案领域的领军者,XMOS 的多路音频解码器在音频处理技术中扮演着至关重要的角色。下面我们一起深入探讨 XMOS 多路音频解码器去了解这一技术的魅力。 设计背景:追求音频极致…...
 
XSS小游戏(题目+解析)
xss题目练习地址: xss小游戏 游戏界面 一、Ma Spaghet! 我将题目要求进行翻译: 题目的主要要求就是:弹出一个(1337)的弹窗 开始解题: Let’s Go! 首先,传个参数看看 发现参数直接显示在了 < h2 >…...
 
《Redis核心技术与实战》学习笔记4——AOF日志:宕机了,Redis如何避免数据丢失?
文章目录 AOF 日志是如何实现的?三种写回策略 日志文件太大了怎么办?AOF 重写会阻塞吗?小结 大家好,我是大白。 如果有人问你:“你会把 Redis 用在什么业务场景下?”我想你大概率会说:“我会把它当作缓存使…...
 
NextJs - 服务端/客户端组件之架构多样性设计
NextJs - 服务端/客户端组件之架构多样性设计 前言一. 架构设计1.1 SSR流式渲染常见错误设计之 - 根页面同步阻塞1.2 架构设计之 - 客户端组件依赖于服务端组件数据① 使用 Redux 完成数据共享 1.3 架构设计之 - 单页内的分步骤跳转① 如何做到服务端组件和客户端组件之间的切换…...
 
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
 
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
 
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
 
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
 
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
