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基础教程之对象和类的实际运用
Aug 29 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
IntelliJ IDEA安装运行python插件方法
Dec 10 Python
python ipset管理 增删白名单的方法
Jan 14 Python
如何通过python画loss曲线的方法
Jun 26 Python
python构造IP报文实例
May 05 Python
利用python 下载bilibili视频
Nov 13 Python
使用pytorch实现线性回归
Apr 11 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
如何使用flask将模型部署为服务
May 13 Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 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
玩转虚拟域名◎+ .
2006/10/09 PHP
php实例分享之二维数组排序
2014/05/15 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
python高级特性简介
2020/08/13 Python
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
资源工程专业毕业生求职信
2014/02/27 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
营业用房租赁协议书
2014/11/26 职场文书
应届毕业生自荐信
2015/03/04 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python