在本文中,您将会了解到关于[bigdata-016]pythonhappybase操作hbase的新资讯,同时我们还将为您解释python查询hbase的相关在本文中,我们将带你探索[bigdata-
在本文中,您将会了解到关于[bigdata-016] python happybase 操作hbase的新资讯,同时我们还将为您解释python查询hbase的相关在本文中,我们将带你探索[bigdata-016] python happybase 操作hbase的奥秘,分析python查询hbase的特点,并给出一些关于02分布式NOSQL HBASE - JAVA API 操作HBase、ArcGIS Python查看geodatabase(.gdb)版本、bigdata-016] python happybase 操作hbase、bigdata——HBase+zookeeper+Hadoop集群构筑 之 Hbase集群构筑的实用技巧。
本文目录一览:- [bigdata-016] python happybase 操作hbase(python查询hbase)
- 02分布式NOSQL HBASE - JAVA API 操作HBase
- ArcGIS Python查看geodatabase(.gdb)版本
- bigdata-016] python happybase 操作hbase
- bigdata——HBase+zookeeper+Hadoop集群构筑 之 Hbase集群构筑
[bigdata-016] python happybase 操作hbase(python查询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条记录 高表和宽表性能几乎一样!
02分布式NOSQL HBASE - JAVA API 操作HBase
(原文地址:http://www.jb51.cc/cata/500599,转载麻烦带上原文地址。hadoop hive hbasemahout storm spark kafka flume,等连载中,做个爱分享的人)
HBase,可以使用shell界面管理数据,也提供java api 来操作Hbase上的表的数据。所有Column均以二进制格式存储,所以在api中要不断的类型转换。
//1 准备HBase上下文 HBaseAdmin 和user表对象hTable
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.rootdir","hdfs://rdc:9000/HRoot");
conf.set("hbase.zookeeper.quorum","p1");
Configuration conf= HBaseConfiguration.create();
HConnection conn= HConnectionManager.createConnection(conf);
HTableInterface userTable = conn.getTable("user");
//2查->Get,HBase只能根据ROW KEY 做随机查。默认是没有二级索引的。相当于只能 SELECT u.name FROM user u where u.id = 2; 不能对非主键的查询 SELECT u.name FROM user u where u.name = "rdc";
String id = "1"; //row key行键
String columnFamily = "info"; //列镞
String colume = "name"; //列名
Get get = new Get(id.getBytes());
final Result result = hTable.get(get);
byte[] valBytes = result.getValue(columnFamily .getBytes(),colume getBytes());
String value = new String(value); // value 相当于sql语句 SELECT u.name FROM user u where u.id = 1,的结果
//2增->Put ,使用Put 一列一列的加。sql: insert into user(name) values("mosi")
//3改->Put ,使用Put 一列一列的改。sql:update user set name "mosi"
Put put = new Put(id.getBytes());
put.add(columnFamily .getBytes(), colume getBytes(),"mosi".getBytes());
hTable.put(put);//和java的map一样。为空新增,不为空覆盖。
//4删 -》sql: delete from user where id = 1
Delete delete = new Delete(id.getBytes());
hTable.delete(delete);
//5 扫描,HBASE还提供scan方式根据rowkey范围扫描,不指定rowkey范围,则为全表扫描 。一次网络连接获取 批量数据缓存在客户端内存中。相对应GET来说。节省网络的连接次数。
// sql: SELECT * FROM user u
Scan scan = new Scan();
final ResultScanner scanner = hTable.getScanner(scan);
for (Result result : scanner) {
final byte[] value = result.getValue(columnFamily .getBytes(),colume.getBytes());
}
ArcGIS Python查看geodatabase(.gdb)版本
代码:10.0不能运行
import arcpy
desc = arcpy.Describe(r''C:\Users\dell\Documents\ArcGIS\default.gdb'')
print desc.release
地理数据库版本值 | ArcGIS 版本 |
---|---|
2.2.0 |
9.2 |
2.3.0 |
9.3、9.3.1 |
3.0.0 |
10.0、10.1、10.2、10.2.1、10.2.2、10.3、10.3.1、10.4、10.4.1、10.5、10.5.1 ArcGIS Pro 1.0、1.1、1.2、1.3、1.4 |
bigdata-016] python 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条记录 高表和宽表性能几乎一样!
bigdata——HBase+zookeeper+Hadoop集群构筑 之 Hbase集群构筑
整体流程
- 物件下载
- 解压
- conf文件配置
- 启动&停止
-
状态确认
物件下载
参考hbase官网
解压
tar -zxvf hbase-***.gz
conf文件配置
1.hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_67 export HBASE_MANAGES_ZK=false
注意:JDK根据自己的环境配置
此处没有使用hbase自带的zookeeper服务,因为之前已经搭建好了zookeeper集群环境。
2.hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://sv004:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>sv004,sv001,sv002,sv003</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
3.配置regionservers
追加如下信息:
sv001 sv002 sv003
以上是单个虚拟机中hbase的配置,集群的话需要将其复制到其他节点
命令如下所示:
scp -r $HBASE_HOME root@sv001:/home/project-test scp -r $HBASE_HOME root@sv002:/home/project-test scp -r $HBASE_HOME root@sv003:/home/project-test
重要,前方高能
- hbase.rootdir里指定的socket号一定要跟hadoop中指定的一直。hbase.rootdir默认的端口号是8020.
- hbase其他设置参数要追加的话,可以参好官方文档,一般的设置都是在hbase-site.xml中追加
- hbase集群启动的顺序:hadoop -> zookeeper ->hbase
启动&停止
${HBASE_HOME}/start-hbase.sh
${HBASE_HOME}/stop-hbase.sh
状态确认
使用jps命令,具体信息如下所示:
①sv004:HMaster ②SV001/SV002/SV003:HRegionSever
今天关于[bigdata-016] python happybase 操作hbase和python查询hbase的讲解已经结束,谢谢您的阅读,如果想了解更多关于02分布式NOSQL HBASE - JAVA API 操作HBase、ArcGIS Python查看geodatabase(.gdb)版本、bigdata-016] python happybase 操作hbase、bigdata——HBase+zookeeper+Hadoop集群构筑 之 Hbase集群构筑的相关知识,请在本站搜索。
本文标签: