加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

bigdata-016] python happybase 操纵hbase

发布时间:2020-12-30 13:12:56 所属栏目:大数据 来源:网络整理
导读:1. 用happybase库 操纵 hbase ??? http://happybase.readthedocs.io/en/latest/ 2. cdh集群的hbase集群有三个节点 ??? hbase的版本是HBase 1.2.0 3. hbase base的log目次小于5g,导致报警,目次在/var/log/hbase,筹备清空它。 ?? 删除不必要的log之后,全部

1. 用happybase库 操纵 hbase
??? http://happybase.readthedocs.io/en/latest/

2. cdh集群的hbase集群有三个节点
??? hbase的版本是HBase 1.2.0

3. hbase base的log目次小于5g,导致报警,目次在/var/log/hbase,筹备清空它。
?? 删除不必要的log之后,全部处事都从赤色酿成黄色,log目次太小导致了大部门题目。log目次的容量必必要足够大。

4. python+happybase
??? 4.1 pyenv global anacodea3-4.1.1
??? 4.2 pip install happybase
??? 4.3 测试安装? python -c 'import happybase',不报错就是正常的
??? 4.4 要在bigdata-master上启动thrift server:
??????? hbase thrift -p 9090 start
??? 4.5 凭证如下文档举办操纵:
??????? http://happybase.readthedocs.io/en/latest/user.html#establishing-a-connection
??? 4.6 Hbase没稀有据范例,全部的row keys,column name,column values都是简朴视为raw byte string举办处理赏罚
??? 4.7 删除一笔记录,也就是一个row_key对应的全部列族

???????? deleteall 'testtable','event_0'

5. 示例代码

#!/usr/bin/env python3
#! coding:utf-8 -*-


import happybase

#要先在hbase某个节点上开启thrift处事
#hbase thrift -p 9090 start
connection = happybase.Connection('192.168.0.1',autoconnect=False)
connection.open()

#print全部的表名
print('All tables: ',connection.tables(),'n')

#操纵testtable表
#这个操纵是一个提前声明-我要用到这个表了-但不会提交给thrift server做操纵
table = connection.table(b'testtable')

#检索某一行
row = table.row(b'myrow-2')
print('a row:',row,'n')

#right
print(row[b'colfam1:q1'])
print(row[b'colfam1:q2'])

#wrong
# print(row['colfam1:q1'])
# print(row['colfam1:q2'])

#表现全部列族
print('全部列族',table.families(),'n')

#输出两列
print('print two rows:')
rows = table.rows([b'myrow-1',b'myrow-2'])
for key,data in rows:
    print(key,data)

#字典输出两列
print('n','print two dict rows')
rows_as_dict = dict(table.rows([b'myrow-1',b'myrow-2']))
print(rows_as_dict)

#输入row的一个列族全部值
row = table.row(b'myrow-2',columns=[b'colfam1'])
print('n','输出一个列族',row)

#scan操纵
print('n','do scan')
for key,data in table.scan():
    print(key,data)
6. 测试高表插入记录: 批量插入1000笔记录,0.1~0.6s 批量插入1万笔记录,1.5~3s 每秒7k笔记录,机能较量靠谱 7. 测试宽表插入记录: 批量插入1000笔记录,0.1~0.6s 批量插入1万笔记录,1.5~3s 每秒7k笔记录 高表和宽表机能险些一样!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读