iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >hbase之python利用thrift操作hbase数据和shell操作
  • 170
分享到

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

2024-04-02 19:04:59 170人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

前沿:        以前都是用mongoDB的,但是量大了,monGodb显得不那么靠谱,改成HBase撑起一个量级。HBase是Apache hadoop的数据库

前沿:

        以前都是用mongoDB的,但是量大了,monGodb显得不那么靠谱,改成HBase撑起一个量级。


HBase是Apache hadoop数据库,能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型的数据。HBase是一个开源的,分布式的,多版本的,面向列的存储模型。它存储的是松散型数据。

HBase提供了丰富的访问接口。

HBase shell
Java clietn api
Jython、Groovy DSL、Scala
REST
Thrift(Ruby、python、Perl、c++…)
mapReduce
Hive/Pig


hbase(main):001:0> 

#创建表

hbase(main):002:0* create 'blog','info','content'

0 row(s) in 2.0290 seconds

#查看表

hbase(main):003:0> list

TABLE                                                                           

blog                                                                            

test_standalone                                                                 

2 row(s) in 0.0270 seconds

#增添数据

hbase(main):004:0> put 'blog','1','info:editor','liudehua'

0 row(s) in 0.1340 seconds


hbase(main):005:0> put 'blog','1','info:address','bj'

0 row(s) in 0.0070 seconds


hbase(main):006:0> put 'blog','1','content:header','this is header'

0 row(s) in 0.0070 seconds


hbase(main):007:0> 

hbase(main):008:0* 

hbase(main):009:0* get 'blog','1'

COLUMN                CELL                                                      

 content:header       timestamp=1407464302384, value=this is header             

 info:address         timestamp=1407464281942, value=bj                         

 info:editor          timestamp=1407464270098, value=liudehua                   

3 row(s) in 0.0360 seconds


hbase(main):010:0> get 'blog','1','info'

COLUMN                                                 CELL                                                                                                                                                         

 info:address                                          timestamp=1407464281942, value=bj                                                                                                                            

 info:editor                                           timestamp=1407464270098, value=liudehua                                                                                                                      

2 row(s) in 0.0120 seconds


#这里是可以按照条件查询的。

hbase(main):012:0* scan 'blog'

ROW                                                    COLUMN+CELL                                                                                                                                                  

 1                                                     column=content:header, timestamp=1407464302384, value=this is header                                                                                         

 1                                                     column=info:address, timestamp=1407464281942, value=bj                                                                                                       

 1                                                     column=info:editor, timestamp=1407464270098, value=liudehua                                                                                                  

1 row(s) in 0.0490 seconds


hbase(main):013:0> 

hbase(main):014:0* put 'blog','1','content:header','this is header2'

0 row(s) in 0.0080 seconds


hbase(main):015:0> 

hbase(main):016:0* 

hbase(main):017:0* put 'blog','1','content:header','this is header3'

0 row(s) in 0.0050 seconds


hbase(main):018:0> scan 'blog'

ROW                                                    COLUMN+CELL                                                                                                                                                  

 1                                                     column=content:header, timestamp=1407464457128, value=this is header3                                                                                        

 1                                                     column=info:address, timestamp=1407464281942, value=bj                                                                                                       

 1                                                     column=info:editor, timestamp=1407464270098, value=liudehua                                                                                                  

1 row(s) in 0.0180 seconds



hbase(main):020:0> get 'blog','1','content:header'

COLUMN                                                 CELL                                                                                                                                                         

 content:header                                        timestamp=1407464457128, value=this is header3                                                                                                               

1 row(s) in 0.0090 seconds


hbase(main):021:0> 

原文:Http://rfyiamcool.blog.51cto.com/1030776/1537505


#可以看到历史版本记录

hbase(main):022:0* get 'blog','1',{COLUMN => 'content:header',VERSioNS => 2}

COLUMN                                                 CELL                                                                                                                                                         

 content:header                                        timestamp=1407464457128, value=this is header3                                                                                                               

 content:header                                        timestamp=1407464454648, value=this is header2                                                                                                               

2 row(s) in 0.0100 seconds

#可以看到历史版本记录

hbase(main):023:0> get 'blog','1',{COLUMN => 'content:header',VERSIONS => 3}

COLUMN                                                 CELL                                                                                                                                                         

 content:header                                        timestamp=1407464457128, value=this is header3                                                                                                               

 content:header                                        timestamp=1407464454648, value=this is header2                                                                                                               

 content:header                                        timestamp=1407464302384, value=this is header                                                                                                                

3 row(s) in 0.0490 seconds


hbase(main):024:0> 


base用java来操作是最方便,也效率最高的方式。但java并非轻量级,不方便在任何环境下调试。而且不同的开发人员熟悉的语言不一样,开发效率也不一样。hbase 通过thrift,还可以用Python,ruby,cpp,perl等语言来操作。


thrift是facebook开发开源的类似google的protobuf的远程调用组件。但protobuf只有数据的序列化,且只支持二进制协议,没有远程调用部分。protobuf原生支持cpp,python,java,另外还有第三方实现的objectc,ruby等语言。而thrift是实现了序列化,传输,协议定义,远程调用等功能,跨语言能力更多。某些方面二者可以互相替代,但一些方面则各有适用范围。

原文:http://rfyiamcool.blog.51cto.com/1030776/1537505


thrift的安装及thrift python的相关模块 ~

http://www.apache.org/dist//thrift/0.9.1/thrift-0.9.1.tar.gz
tar zxvf thrift-0.8.0.tar.gz
cd thrift-0.8.0
./configure -with-cpp=no
make
sudo make install
sudo pip install thrift


这里是可以生成python的thrift和hbase模块 ~

thrift -gen py /home/ubuntu/hbase-0.98.1/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift


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


from thrift.transport import TSocket

from thrift.protocol import TBinaryProtocol

from hbase import Hbase

transport=TSocket.TSocket('localhost',9090)

protocol=TBinaryProtocol.TBinaryProtocol(transport)

client=Hbase.Client(protocol)

transport.open()

client.getTableNames()


原文:http://rfyiamcool.blog.51cto.com/1030776/1537505


hbase 0.98的版本 貌似没有thrift的相关组建,我这里的用的是0.94版本搞定的。  


--结束END--

本文标题: hbase之python利用thrift操作hbase数据和shell操作

本文链接: https://www.lsjlt.com/news/43098.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HBase shell如何操作
    小编给大家分享一下HBase shell如何操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!进入hbase Shell[root@test31 ~]# hbas...
    99+
    2023-06-03
  • Hbase Python 操作准备
    网上的教程是Java操作hbase的实例,我这里使用python,所以之后的文章都是通过thrift API操作hbase 1、安装apache thrift(根据自己系统选择安装) http://thrift.apac...
    99+
    2023-01-31
    操作 Hbase Python
  • 如何使用phoenix操作hbase数据)
    这篇文章将为大家详细讲解有关如何使用phoenix操作hbase数据),小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。下载安装phoenix(版本与hbase对应)[root@node1 ~]# wget ...
    99+
    2023-06-02
  • hbase+python安装部署及操作
    本文总结下最近在用python+spark+hbase安装操作中的一些问题。 hbase安装 hbase配置 spark配置hbase hbase配置python hbase安装+hbase配置 安装流程可借鉴此处,同理s...
    99+
    2023-01-31
    操作 hbase python
  • HBase支持哪些数据模型的操作
    HBase支持以下数据模型的操作: 列族数据模型:HBase使用列族(Column Family)来组织数据,每个列族包含多个列...
    99+
    2024-03-11
    HBase
  • 实验三:熟悉常用的HBase操作
    实验环境: (1)操作系统:Linux(建议 Ubuntu 16.04 或 Ubuntu 18.04)。 (2)Hadoop 版本:3.1.3。 (3)HBase 版本:2.2.2。 (4)JDK 版...
    99+
    2023-10-23
    hbase hadoop 大数据
  • 如何在HBase中进行数据的备份和恢复操作
    在HBase中进行数据备份和恢复操作可以使用HBase自带的工具或者第三方工具。以下是使用HBase自带的工具进行数据备份和恢复的步...
    99+
    2024-03-06
    HBase
  • 基于idea操作hbase数据库并映射到hive表
    目录一:先关闭所有服务二:配置文件三:启动服务依赖条件:需要有Hadoop,hive,zookeeper,hbase环境 映射:每一个在 Hive 表中的域都存在于 HBase 中,...
    99+
    2023-03-19
    idea操作hbase数据库 hbase映射hive
  • 基于idea如何操作hbase数据库并映射到hive表
    这篇文章主要介绍了基于idea如何操作hbase数据库并映射到hive表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于idea如何操作hbase数据库并映射到hive表文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-05
  • 利用python中pyodbc操作MSSQL数据库
    pyodbc是一个用于Python的开源库,用于连接和操作多种数据库管理系统(DBMS),其中包括Microsoft SQL Server、Oracle、MySQL、PostgreSQL等。它提供了一个简单和统一的接口,使开发人员可以使用P...
    99+
    2023-09-13
    数学建模 python sql 数据库 sqlserver
  • python中怎么利用sqlalchemy 操作数据库
    今天就跟大家聊聊有关python中怎么利用sqlalchemy 操作数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。安装pip install sqlalchemy2....
    99+
    2023-06-02
  • Python数据类型和常用操作
    目录一、数值二、字符串三、列表四、元组五、字典六、集合一、数值 数值数据类型用于存储数值,数据类型不可改变,改变会分配一个新的对象,在Python中,“与或非&rdquo...
    99+
    2024-04-02
  • python利用pd.cut()和pd.qcut()对数据进行分箱操作
    目录1.cut()可以实现类似于对成绩进行优良统计的功能,来看代码示例。2.qcut()可以生成指定的箱子数,然后使每个箱子都具有相同数量的数据1.cut()可以实现类似于对成绩进行...
    99+
    2024-04-02
  • Python基础之操作MySQL数据库
    目录一、数据库操作1.1 安装PyMySQL1.2 连接数据库1.3 创建数据表1.4 插入,查询数据1.5 更新,查询数据1.6 删除,查询数据二、连接与游标对象的方法2.1 连接...
    99+
    2024-04-02
  • Python 操作 MariaDB 数据
    1. 安装 MariaDB 的 Python 模块 sudo apt-get install python-pip python-dev libmysqlclient-dev pip install MySQL-python 我...
    99+
    2023-01-31
    操作 数据 Python
  • python操作数据库
     游标  在stored Routines调用中开的一个缓冲区,用于存放SQL调用的结果集。(结果集是只读的)   意味着我们的查询可以返回一个文档也可以返回一个游标去指向一个结果集,而后通过游标的切换而获取每个结果   Python连接...
    99+
    2023-01-31
    操作 数据库 python
  • python数据库操作之PyMysql怎么使用
    本文小编为大家详细介绍“python数据库操作之PyMysql怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“python数据库操作之PyMysql怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。P...
    99+
    2023-07-05
  • Python利器openpyxl之操作excel表格
    目录1、安装2、使用2.1 Workbook对象2.2 worksheet对象2.3 Cell对象3、案例总结python处理数据时,可以将数据保存至excel文件中,此处安利一个p...
    99+
    2024-04-02
  • MySQL数据库之数据表操作
    目录一、创建数据表1、基本语法2、创建方式一3、创建方式二4、表选项5、复制已有表结构二、显示数据表三、显示表结构四、显示表创建语句五、设置表属性六、修改表结构1、修改表名2、新增字...
    99+
    2024-04-02
  • 用python操作mysql数据库(之代码归类)
    index.py 这里只是假设一个模拟登陆# -*- coding: utf-8 -*- """ Created on Sun Nov&...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作