python操作Hbase

本地操作

  • 启动thrift服务:./bin/hbase-daemon.sh start thrift
  • hbase模块产生:
    • 下载thrfit源码包:thrift-0.8.0.tar.gz
    • 解压安装
    • ./configure
    • make
    • make install
  • 在thrift-0.8.0目录中,lib/py/build/lib.linux-x86_64-2.6/目录下存在thrift的python模块,拷贝出来即可
  • 生成hbase模块
    • 下载源码包:hbase-0.98.24-src.tar.gz
    • 解压,进入下面目录:hbase-0.98.24/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift
    • thrift --gen py Hbase.thrift
  • 创建表格
    from thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocol?from hbase import Hbasefrom hbase.ttypes import *?transport = TSocket.TSocket(‘master‘ , 9090)transport = TTransport.TBufferedTransport(transport)?protocol = TBinaryProtocol.TBinaryProtocol(transport)
    
    client = Hbase.Client(protocol)?transport.open()?base_info_contents = ColumnDescriptor(name=‘meta-data‘,maxVersions=1)other_info_contents = ColumnDescriptor(name=‘flags‘,maxVersions=1)?client.createTable(‘new_music_table‘, [base_info_contents, other_info_contents])?print client.getTableNames()
  • 写数据
    from thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocol?from hbase import Hbasefrom hbase.ttypes import *?transport = TSocket.TSocket(‘master‘ , 9090)transport = TTransport.TBufferedTransport(transport)?protocol = TBinaryProtocol.TBinaryProtocol(transport)
    
    client = Hbase.Client(protocol)?transport.open()?tableName = ‘new_music_table‘rowKey = ‘1100‘?mutations = [Mutation(column="meta-data:name" , value="wangqingshui"),\            Mutation(column="meta-data:tag" , value="pop"),\            Mutation(column="meta-data:is_valid" , value="TRUE")]client.mutateRow(tableName,rowKey,mutations,None)
  • 读数据
    from thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocol?from hbase import Hbasefrom hbase.ttypes import *?transport = TSocket.TSocket(‘master‘ , 9090)transport = TTransport.TBufferedTransport(transport)?protocol = TBinaryProtocol.TBinaryProtocol(transport)
    
    client = Hbase.Client(protocol)?transport.open()?tableName = ‘new_music_table‘rowKey = ‘1100‘?result = client.getRow(tableName,rowKey,None)for r in result:    print ‘the row is ‘,r.row    print ‘the name is ‘,r.columns.get(‘meta-data:name‘).value    print ‘the name is ‘,r.columns.get(‘meta-data:is_valid‘).value
    • 读多条数据
    from thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocol?from hbase import Hbasefrom hbase.ttypes import *?transport = TSocket.TSocket(‘master‘ , 9090)transport = TTransport.TBufferedTransport(transport)?protocol = TBinaryProtocol.TBinaryProtocol(transport)
    
    client = Hbase.Client(protocol)?transport.open()?tableName = ‘new_music_table‘?scan = TScan()id = client.scannerOpenWithScan(tableName , scan , None)result = client.scannerGetList(id,10)?for r in result:    print ‘===============‘    print ‘the row is ‘ , r.row    for k,v in r.columns.items():        print "\t".join([k,v.value])? # 执行结果===============the row is  1100meta-data:name  wangqingshuimeta-data:is_valid      TRUEmeta-data:tag   pop===============the row is  2200meta-data:name  langdechuanshuo

原文地址:https://www.cnblogs.com/zxbdboke/p/10465888.html

时间: 2024-08-01 04:20:39

python操作Hbase的相关文章

Python操作HBase之happybase

安装Thrift 安装Thrift的具体操作,请点击链接 pip install thrift 安装happybase pip install happybase 连接(happybase.Connection) happybase.Connection(host='localhost', port=9090, timeout=None, autoconnect=True, table_prefix=None, table_prefix_separator=b'_', compat='0.98'

Python 操作 HBase —— Trift Trift2 Happybase 安装使用

Python无法直接访问HBase,必须通过Thrift. HBase与Thrift之间又支持两种接口标准,两种标准互不兼容,功能也互不覆盖. Thrift连接HBase还有超时自动断开的大坑. 安装Thrift依赖(Server端) Centos: yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel open

通过Python操作hbase api

# coding=utf-8 # Author: ruin """ discrible: """ from thrift.transport import TSocket from thrift.protocol import TBinaryProtocol from thrift.transport import TTransport from hbase import Hbase import struct # Method for enco

hbase之python利用thrift操作hbase数据和shell操作

前沿: 以前都是用mongodb的,但是量大了,mongodb显得不那么靠谱,改成hbase撑起一个量级. HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型.它存储的是松散型数据. HBase提供了丰富的访问接口. HBase Shell Java clietn API Jython.Groovy DSL.Scala REST Thrift(Ruby.Pyt

基于jython操作hbase

一.前言 关于jython介绍,直接上官网www.jython.org,可以得到详细资料,这里只介绍一下jython操作hbase的一些方法,本质上和用java操作hbase差不多,只不过语法换成了python 二.环境 hbase版本:0.98.6.1 hadoop版本: 2.5.2 jython版本:2.7 三.jython安装配置 1 安装 关于hbase&hadoop的安装配置这里也不介绍,主要介绍一下jython的安装配置,其实安装很简单,就执行一条命令就OK java -jar jy

PHP通过Thrift操作Hbase

HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量column family的数据.官方网址是:http://hbase.apache.org 一 .HBase访问接口 1.  Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据2.  HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用3. 

Python操作数据库(mysql redis)

一.python操作mysql数据库: 数据库信息:(例如211.149.218.16   szz  123456) 操作mysql用pymysql模块 #操作其他数据库,就安装相应的模块 import  pymysql ip='211.149.218.16' port=3306 passwd='123456' user='root' db='szz' conn=pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db,cha

python操作mysql ------- SqlAchemy正传

本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 pip3 install pymysql 使用操作 1.执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc