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 list 合并连接字符串的方法
Mar 09 Python
用Python写冒泡排序代码
Apr 12 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
pandas通过loc生成新的列方法
Nov 28 Python
对python 命令的-u参数详解
Dec 03 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
ipython jupyter notebook中显示图像和数学公式实例
Apr 15 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
Django和Ueditor自定义存储上传文件的文件名
Feb 25 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 获取一个月第一天与最后一天的代码
2010/05/16 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
Node.js 回调函数实例详解
2017/07/06 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
Ibatis如何调用存储过程
2015/05/15 面试题
行政部总经理岗位职责
2014/01/04 职场文书
2014年征兵标语
2014/06/20 职场文书
党员违纪检讨书
2015/05/05 职场文书
小学教育见习总结
2015/06/23 职场文书
Python3的进程和线程你了解吗
2022/03/16 Python