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使用ntplib库同步校准当地时间的方法
Jul 02 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
python批量修改文件编码格式的方法
May 31 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
Python常见内置高效率函数用法示例
Jul 31 Python
django连接mysql配置方法总结(推荐)
Aug 18 Python
使用PM2+nginx部署python项目的方法示例
Nov 07 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
Python实现汇率转换操作
May 03 Python
Python列表元素删除和remove()方法详解
Jan 04 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中的实现trim函数代码
2007/03/19 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
python 爬取微信文章
2016/01/30 Python
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
同学会邀请书大全
2014/01/12 职场文书
房地产项目建议书
2014/03/12 职场文书
党员大会主持词
2014/04/02 职场文书
爱国演讲稿500字
2014/05/04 职场文书
安全月活动总结
2014/05/05 职场文书
爱心捐书活动总结
2014/07/05 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
环卫工作汇报材料
2014/10/28 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
工作后的感想
2015/08/07 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL