python hbase读取数据发送kafka的方法


Posted in Python onDecember 27, 2018

本例子实现从hbase获取数据,并发送kafka。

使用

#!/usr/bin/env python
#coding=utf-8
 
import sys
import time
import json
 
sys.path.append('/usr/local/lib/python3.5/site-packages')
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase1 import Hbase #调用hbase thrif1
from hbase1.ttypes import *
from kafka import KafkaConsumer
from kafka import KafkaProducer
from kafka.errors import KafkaError
import unittest
 
class HbaseOpreator:
 def __init__(self,host,port,table='test'):
  self.tableName=table
  self.transport=TTransport.TBufferedTransport(TSocket.TSocket(host,port))
  self.protocol=TBinaryProtocol.TBinaryProtocol(self.transport)
  self.client=Hbase.Client(self.protocol)
  self.transport.open()
 
 def __del__(self):
  self.transport.close()
 
 
 def scanTablefilter(self,table,*args):
  d=dict() 
  L=[]
  try:
   tableName=table
   # scan = Hbase.TScan(startRow, stopRow)
   scan=TScan()
   #主键首字母123
   # filter = "PrefixFilter('123_')"
   # filter = "RowFilter(=,'regexstring:.aaa')"
   #过滤条件,当前为 statis_date 字段,值为20170223
   # fitler = "SingleColumnValueFilter(tableName,'f','statis_date','20170223')"
   # filter="SingleColumnValueFilter('f','statis_date',=,'binary:20170223') AND SingleColumnValueFilter('f','name',=,'binary:LXS')"
   filter="SingleColumnValueFilter('info','name',=,'binary:lilei') OR SingleColumnValueFilter('info','name',=,'binary:lily')"
   scan.filterString=filter
   id=self.client.scannerOpenWithScan(tableName,scan,None)
   result=self.client.scannerGet(id)
   # result=self.client.scannerGetList(id,100)
   while result:
    for r in result:
     key=r.row
     name=r.columns.get('info:name').value
     age=r.columns.get('info:age').value
     phone=r.columns.get('info:phone').value
     d['key']=key
     d['name']=name
     d['age']=age
     d['phone']=phone
     # encode_result_json=json.dumps(d).encode(encoding="utf-8")
     # print(encode_result_json)
     L.append(d)         
    result=self.client.scannerGet(id)    
   return json.dumps(L).encode(encoding="utf-8")  
  finally:
   # self.client.scannerClose(scan)
   print("scan finish")
 
def sendKfafkaProduct(data):
 # self.host_port='localhost:9092'
 producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
 for d in data:
  producer.send('test', key=b'lxs', value=d)
  time.sleep(5)
  print(d)
 
 while True:
  producer.send('test', key=b'lxs', value=data)
  time.sleep(5)
  print(data)
 
if __name__== '__main__':
 # unittest.main()
 
 B=HbaseOpreator('10.27.1.138',9090)
 value=B.scanTablefilter('ns_lbi:test_hbase_student')
 print(value)
 #sendKfafkaProduct(value)

以上这篇python hbase读取数据发送kafka的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用dom模块生成XML文件示例
Apr 05 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
Nov 22 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
Python检测网络延迟的代码
May 15 Python
详解python3中的真值测试
Aug 13 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
Python unittest生成测试报告过程解析
Sep 08 Python
Python类和对象的定义与实际应用案例分析
Dec 27 #Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 #Python
kafka-python批量发送数据的实例
Dec 27 #Python
Python闭包思想与用法浅析
Dec 27 #Python
对python操作kafka写入json数据的简单demo分享
Dec 27 #Python
python消费kafka数据批量插入到es的方法
Dec 27 #Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 #Python
You might like
php编写一个简单的路由类
2011/04/13 PHP
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
pytyon 带有重复的全排列
2013/08/13 Python
python threading模块操作多线程介绍
2015/04/08 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
快递业务员岗位职责
2014/01/06 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
2014年采购部工作总结
2014/11/20 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
二十年同学聚会感言
2015/07/30 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书