python hbase_利用Python调用HBASE

利用Python调用HBASE的 需要安装thrift hbase-thrift

启动hbase的thrift服务:bin/hbase-daemon.sh start thrift 默认端口是9090

mysql 到hbase的数据同步:

1、put

2、Importtsv

3、编写MapReduce Job导入

4、sqoop

简单code:

#!/usr/bin/env python

#coding=utf-8

import sys

sys.path.append('/usr/lib/python2.6/site-packages/hbase')

from thrift import Thrift

from thrift.transport import TSocket

from thrift.transport import TTransport

from thrift.protocol import TBinaryProtocol

from hbase import Hbase

from hbase.ttypes import *

import csv

from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation, TRegionInfo

from hbase.ttypes import IOError, AlreadyExists

######

def client_conn():

transport=TSocket.TSocket("172.16.10.87",9090)

transport=TTransport.TBufferedTransport(transport)

protocol=TBinaryProtocol.TBinaryProtocol(transport)

client=Hbase.Client(protocol)

transport.open()

return client

def __del__():

transport.close()

if __name__=="__main__":

client=client_conn()

#获取表名字

print client.getTableNames()

##创建表

#client.createTable('name2',[ColumnDescriptor(name="user_id:",maxVersions=1),ColumnDescriptor(name="user_name"),])

#写入数据

client.mutateRow('name2','a1',[Mutation(column='user_id:1',value="1")])

client.mutateRow('ca_record','1',[Mutation(column='user_id:0',value='5')])

##获取数据

aa=client.getRow('name2','a1')

for r in aa:

print 'row',r.row

print '\br'

print 'value',r.columns.get("user_id:1").value

##删除表

#client.disableTable("t1")

#client.deleteTable("t1")

print client.getTableNames()

###获取表的行键值

#print client.scannerGet(client.scannerOpen('t2',"cmd",["a"]))

print client.scannerGet(client.scannerOpen('t2',"",["a"])) #当row key为空取第一个

print "------"

print client.getColumnDescriptors('t3')

#在自己开发环境 只要安装好thrift 及hbase-thrift的包,在import的时候不会出问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值