Scrapy 存数据到Hbase

网上很多教程都是使用Scrapy存数据到MongoDB,Mysql或者直接存入Excel中的,很少有存入到Hbase里面的

前言

为什么没有像大多数网上那样将数据存入到MongoDB,Mysql中呢,因为项目中使用到Hbase加上阿里云的推荐引擎系统,

Hbase是Hadoop的一个子项目,要想用到Hbase软件的服务,需要进行Hadoop跟zoopeer的环境的安装。这里就不对Hbase与Hadoop的环境搭载进行深入的探索了。

Hbase在Scrapy中的应用

1 这里不推荐使用原生的Python连接Hbase的库,推荐使用HappyBase

HappyBase 是 FaceBook 员工开发的操作 HBase 的 Python 库,其基于 Python Thrift,但使用方式比 Thrift 简单、简洁许多,已被广泛应用

(一) HappyBase的安装

“`
pip install happybase


(二) 在服务器端(安装Hbase软件的机器)启动hbase thrift服务 

nohup hbase thrift -p 9090 start &


**nohup**是一个当远程连接服务器的窗口关闭时,服务器端的命令还在运行的命令,具体可以直接搜一下

(三)在Scrapy中的settings进行配置host和table
HBASE_HOST = '192.168.22.15'
HBASE_TABLE = 'test'

这里的**hbase_table** 即表名

(四)在pipelines.py中编写Hbase入库的Pipeline

class NewsHBasePipeline(object):
def init(self):
host = settings[‘HBASE_HOST’]
table_name = settings[‘HBASE_TABLE’]
connection = happybase.Connection(host)
table = connection.table(table_name)
self.table = table

def process_item(self, item, spider):
    newsTitle = item['newsTitle']
    newsSource= item['newsSource']
    newsURL = item['newsUrl']

    self.table.put(md5(newsTitle + newsSource).hexdigest(),
                   {'cf1:newsTitle ': newsTitle , 'cf1:newsSource': newsSource, 'cf1:newsUrl': newsUrl})
    return item

(五)在setting.py文件中配置Pipeline

ITEM_PIPELINES = {
‘newsspider.pipelines.NewsspiderPipeline’: 500,
‘newsspider.pipelines.NewsHBasePipeline’: 1
}
“`

总体上,Scrapy存数据到Hbase的步骤就已经完成了。

我的Python自学交流群

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值