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简单网络编程示例【客户端与服务端】
May 26 Python
python中的break、continue、exit()、pass全面解析
Aug 05 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
django缓存配置的几种方法详解
Jul 16 Python
Python设计模式之原型模式实例详解
Jan 18 Python
python实现移位加密和解密
Mar 22 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
Apache部署Django项目图文详解
Jul 30 Python
Django自关联实现多级联动查询实例
May 19 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
Python如何输出百分比
Jul 31 Python
python正则表达式re.search()的基本使用教程
May 21 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生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
Python之os操作方法(详解)
2017/06/15 Python
Python下载网络小说实例代码
2018/02/03 Python
Python字符串的常见操作实例小结
2019/04/08 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
反腐倡廉标语
2014/06/24 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
2019年作为一名实习生的述职报告
2019/09/29 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电