- 英文介绍(English) English README.md Here
- 使用中有什么问题的可以给我提issue,或者直接私聊我
- Email: [email protected]
- QQ: 379978424
- Zookeeper环境(zookeeper-3.4.10) -> 具体安装下面讲 安装步骤
- Kafka环境(kafka-1.0.0) -> 具体安装下面讲 安装步骤
- 系统环境(Win10 x64)
- Python环境(Python 3.4.4)
- 环境
- Python3.4.4(Python2暂未测试,如果有测试过的给我提下issue)
- 依赖包
- Scrapy
- pykafka
- 安装方式:
windows: pip install requirements.txt
linux: pip3 install requiremnets.txt
- consumer --- pykafka的消费者模块(测试接收以及之后接收爬虫数据)
- producer --- pykafka的生产者模块(测试发送)
- scrapy_kafka --- Scrapy + pykafka的爬虫(爬的是我学校的官网的所有a标签链接)
- 爬虫部分我就不说了,我就挑特别的地方
- kafka需要bytes数据,所以在pipeline接收到数据之后一定要encode;encode里面的encoding和消费者的decode编码要一致.
- pipeline里面实现一个方法 close_spider(self, spider) 用来关闭producer;不然Scrapy会一直挂在producer那里不动.
- 我在pipeline里面判断了KAFKA_IP_PORT这个配置写的参数:
- 单机部署可以用list或者str表示.
- 伪分布或者全分布可以用list,或者用逗号隔开都可以.
- 我大致说下Zookeeper的安装过程(以下都是单点测试, 伪分布和全分布还请各位完整学习完后再搭建)
- 下载zookeeper.下载地址
- 解压在conf\下把zoo_sample.cfg 复制为zoo.cfg
- 在系统环境变量中创建ZOOKEEPER_HOME值为zookeeper的Home目录
- 在PATH中添加zookeeper的bin目录.
- 在cmd中运行 zkServer
- 也一样是单点
- 下载kafka并解压.下载地址
- 进入解压后的文件夹, 在conf下修改server.properties文件中log.dirs指定log目录
- 配置系统环境变量KAFKA_HOME
- 在PATH中添加kafka bin/windows的目录(linux的不用理windows那个文件夹)
- 启动kafka: kafka-server-start <kafka目录下config里面的server.properties的路径>
- 关于kafka的测试
- 创建topic:
kafka-topics --create --topic newtest --partitions 1 --replication-factor 1 --zookeeper localhost:2181
- 意思是:创建一个topic; 名字:newtest; 分区:1个; 副本数:1个; zookeeper的监听地址(由于是单点且若未修改zoo.cfg, 则zookeeper默认在2181端口上运行)
- 创建producer:
kafka-console-producer --broker-list localhost:9092 --topic newtest
- 此时窗口会到达等待输入的状态,先别关闭也不着急输入。启动consumer先。
- 创建consumer
kafka-console-consumer --zookeeper localhost:2181 --topic newtest
- 当consumer创建成功后,回到producer的窗口输入一些字符什么的,看看consumer有没有出现(注:中文有可能是乱码,但不影响测试)
- 其他操作就请各位去参见kafka的官方文档或者系统学习后看看命令行的使用。