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笔记(2)
Oct 24 Python
Python3实现连接SQLite数据库的方法
Aug 23 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
django之跨表查询及添加记录的示例代码
Oct 16 Python
python版DDOS攻击脚本
Jun 12 Python
pyQt5实时刷新界面的示例
Jun 25 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
Python -m参数原理及使用方法解析
Aug 21 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 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
星际争霸任务指南——人族
2020/03/04 星际争霸
图象函数中的中文显示
2006/10/09 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
popdiv
2006/07/14 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python骚操作之动态定义函数
2019/03/26 Python
pytorch 共享参数的示例
2019/08/17 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
python各种excel写入方式的速度对比
2020/11/10 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
追悼会主持词
2014/03/20 职场文书
探亲假请假条
2014/04/11 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
中国世界遗产导游词
2015/02/13 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android