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 08 Python
Python的消息队列包SnakeMQ使用初探
Jun 29 Python
python制作websocket服务器实例分享
Nov 20 Python
Java分治归并排序算法实例详解
Dec 12 Python
python定向爬取淘宝商品价格
Feb 27 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 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
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
PHP运行模式汇总
2016/11/06 PHP
input 高级限制级用法
2009/03/26 Javascript
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
什么是继承
2013/12/07 面试题
总经理助理岗位职责
2013/11/08 职场文书
中专生求职自荐信范文
2013/12/22 职场文书
写好自荐信的几个要点
2013/12/26 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
学雷锋宣传标语
2014/06/25 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
罗马假日观后感
2015/06/08 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
python基础之文件处理知识总结
2021/05/23 Python