- 浏览: 91100 次
文章分类
最新评论
开发接口实现方式:
Native Java API 最常规和高效的访问方式;Java API是访问Hbase最快的方式。
HBase Shell HBase的命令行工具,最简单的接口,适合HBase管理使用;
Thrift Gateway 利用Thrift序列化技术,支持C++, PHP, Python等多种语言。
REST Gateway 支持REST 风格的Http API访问HBase, 解除了语言限制;
MapReduce 直接使用MapReduce作业处理Hbase数据,使用Pig/hive处理Hbase数据。
一、java开发
步骤1:创建一个Configuration对象包含各种配置信息
Configuration conf = HbaseConfiguration.create();
步骤2:构建一个HTable句柄,提供Configuration对象,提供待访问Table的名称(不支持多行事务或者表级别的事务,支持单行事务)
org.apache.hadoop.hbase.client.HTable
HTable table = new HTable(conf, tableName);
步骤3:执行相应的操作,执行put、 get、 delete、 scan等操作
table.getTableName();
table.put("str");
步骤4:关闭HTable句柄,将内存数据刷新到磁盘上,释放各种资源
table.close();
Configuration对象包装了客户端程序连接Hbase服务所需的全部信息;
Zookeeper位置
Zookeeper连接超时时间
HbaseConfiguration.create()内部逻辑
1、从CLASSPATH中加载hbase-default.xml和hbase-site.xml两个文件
在<hadoop_install>/conf/hadoop-env.sh中设置
export HADOOP_CLASSPATH=$HBASE_HOME/*:$HBASE_HOME/conf:$HADOOP_CLASSPATH
hadoop classpath | grep hbase
2、hbase-default.xml已经被打包到Hbase jar包中(hbase自带)
3、hbase-site.xml需添加到CLASSPATH中(自己配置)
4、hbase-site.xml将覆盖hbase-default.xml中的同名属性
HTable句柄的创建
创建HTable句柄代价很大
扫描.META.表等;
创建一次,以后尽可能复用;
如果需要创建多个Htable句柄,使用HTablePool;
HTable并非线程安全的:一个线程创建一个即可
Htable支持CRUD批处理:非线程安全,仅是为了提高性能
向HBase写入数据
步骤1:创建一个Put对象;
Put put = new Put(Bytes.toBytes("rowkey"));//转化为byte
步骤2:设置cell值;
Put.add(family, column, value)
Put.add(family, column, timestamp, value)
Put.add(KeyValue kv)
步骤3:调用HTable中的put方法,写入数据;
步骤4:关闭HTable句柄。
从Hbase中读取数据:
接口:
get.setTimeRange(minStamp, maxStamp)
get.setMaxVersions(maxVersions)
get.addFamily(family)
get.addColumn(family, column)
读取数据时注意事项:
只读取需要的数据
尽可能增加数据约束条件
可增加family, column(s), time range 和 max versions等约束条件
从Hbase中删除数据:
从Hbase中scan数据:
二、mapreduce开发
创建Job对象,设置基本属性;
设置scan对象,指定扫描区间和数据列;
调用TableMapReduceUtil的initTableMapperJob和initTableReducerJob设置Mapper和Reducer等信息;
提交作业;
例:
HBase建表
参看:http://www.ylzx8.cn/yidongkaifa/android/192868.html
java:
HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig);
HTableDescriptor t = new HTableDescriptor(tableName);
t.addFamily(new HColumnDescriptor(“f1″));
t.addFamily(new HColumnDescriptor(“f2″));
t.addFamily(new HColumnDescriptor(“f3″));
t.addFamily(new HColumnDescriptor(“f4″));
hAdmin.createTable(t);
HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig);
if (hAdmin.tableExists(tableName)) {
hAdmin.disableTable(tableName);
hAdmin.deleteTable(tableName);
}
Native Java API 最常规和高效的访问方式;Java API是访问Hbase最快的方式。
HBase Shell HBase的命令行工具,最简单的接口,适合HBase管理使用;
Thrift Gateway 利用Thrift序列化技术,支持C++, PHP, Python等多种语言。
REST Gateway 支持REST 风格的Http API访问HBase, 解除了语言限制;
MapReduce 直接使用MapReduce作业处理Hbase数据,使用Pig/hive处理Hbase数据。
一、java开发
步骤1:创建一个Configuration对象包含各种配置信息
Configuration conf = HbaseConfiguration.create();
步骤2:构建一个HTable句柄,提供Configuration对象,提供待访问Table的名称(不支持多行事务或者表级别的事务,支持单行事务)
org.apache.hadoop.hbase.client.HTable
HTable table = new HTable(conf, tableName);
步骤3:执行相应的操作,执行put、 get、 delete、 scan等操作
table.getTableName();
table.put("str");
步骤4:关闭HTable句柄,将内存数据刷新到磁盘上,释放各种资源
table.close();
Configuration对象包装了客户端程序连接Hbase服务所需的全部信息;
Zookeeper位置
Zookeeper连接超时时间
HbaseConfiguration.create()内部逻辑
1、从CLASSPATH中加载hbase-default.xml和hbase-site.xml两个文件
在<hadoop_install>/conf/hadoop-env.sh中设置
export HADOOP_CLASSPATH=$HBASE_HOME/*:$HBASE_HOME/conf:$HADOOP_CLASSPATH
hadoop classpath | grep hbase
2、hbase-default.xml已经被打包到Hbase jar包中(hbase自带)
3、hbase-site.xml需添加到CLASSPATH中(自己配置)
4、hbase-site.xml将覆盖hbase-default.xml中的同名属性
HTable句柄的创建
创建HTable句柄代价很大
扫描.META.表等;
创建一次,以后尽可能复用;
如果需要创建多个Htable句柄,使用HTablePool;
HTable并非线程安全的:一个线程创建一个即可
Htable支持CRUD批处理:非线程安全,仅是为了提高性能
向HBase写入数据
步骤1:创建一个Put对象;
Put put = new Put(Bytes.toBytes("rowkey"));//转化为byte
步骤2:设置cell值;
Put.add(family, column, value)
Put.add(family, column, timestamp, value)
Put.add(KeyValue kv)
步骤3:调用HTable中的put方法,写入数据;
步骤4:关闭HTable句柄。
从Hbase中读取数据:
接口:
get.setTimeRange(minStamp, maxStamp)
get.setMaxVersions(maxVersions)
get.addFamily(family)
get.addColumn(family, column)
读取数据时注意事项:
只读取需要的数据
尽可能增加数据约束条件
可增加family, column(s), time range 和 max versions等约束条件
从Hbase中删除数据:
从Hbase中scan数据:
二、mapreduce开发
创建Job对象,设置基本属性;
设置scan对象,指定扫描区间和数据列;
调用TableMapReduceUtil的initTableMapperJob和initTableReducerJob设置Mapper和Reducer等信息;
提交作业;
例:
HBase建表
参看:http://www.ylzx8.cn/yidongkaifa/android/192868.html
java:
HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig);
HTableDescriptor t = new HTableDescriptor(tableName);
t.addFamily(new HColumnDescriptor(“f1″));
t.addFamily(new HColumnDescriptor(“f2″));
t.addFamily(new HColumnDescriptor(“f3″));
t.addFamily(new HColumnDescriptor(“f4″));
hAdmin.createTable(t);
HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig);
if (hAdmin.tableExists(tableName)) {
hAdmin.disableTable(tableName);
hAdmin.deleteTable(tableName);
}
发表评论
-
12、数据分析系统Hive/Pig
2015-03-28 00:22 551Hive(Facebook)构建在Hadoop ... -
11、hadoop--数据收集原理
2015-03-27 18:56 625常见的两种数据来源 分散的数据源: 机器产生的数据; ... -
10、zookeeper
2015-03-27 11:34 379zookeeper是一个针对大型分布式系统的可靠协调 ... -
7、Hbase基本框架
2015-03-26 23:31 478HBase是一个构建在HDFS上的分布式列存储系统; ... -
7、Yarn--MapReduce2.0
2015-03-26 14:09 9381、yarn介绍: MapReduce 2.0和YARN区别: ... -
6、HA+Federation 详解
2015-03-26 14:05 603now is nullnow is nullnow is nu ... -
5、hadoop多节点(HA + Federation)
2015-03-26 13:42 846一、准备 1、4台linux系统 2、检查联网 3、检查各 ... -
4、hadoop 多节点部署和测试(HA_HDFS)
2015-03-25 09:53 4064HA(High Available), 高可用性群集 ... -
3、hadoop 单节点 安装配置与测试
2015-03-24 12:39 706在hadoop/home中创建目录 itcast m ... -
2、hadoop 安装准备
2015-03-17 12:39 524准备工作:hadoop2.3 64 ... -
1、初相见 hadoop
2015-03-16 14:08 423_______了,把hadoop好好研 ... -
1、FastDFS
2015-03-14 21:52 0wwwwwwwwwwwwwwwwwwww http://blo ...
相关推荐
在Windows环境下,由于缺少Unix命令行工具,`winutils.exe`是必不可少的,尤其是在配置HBase客户端连接时。 在使用`winutils-2.2.0.zip`之前,你需要了解以下几点: 1. **安装JDK**:HBase和Hadoop都是用Java编写...
HBaseClient_1.6.1_64.exe可能是针对Windows系统的HBase客户端安装程序,便于用户在Windows环境下快速部署和使用。 二、HBase Shell HBase Shell是HBase自带的一个基于JLine的命令行工具,提供了与HBase交互的命令...
1. **HBase客户端API**:Java开发者可以通过这个API创建表、插入数据、查询数据以及管理HBase集群。它提供了如`Admin`接口用于管理表和区域,`Table`接口用于操作表,以及`Put`、`Get`、`Delete`和`Scan`对象用于...
1. **HBase客户端API**:这是Java-HBase开发包的核心,提供了一组Java接口和类,用于连接到HBase集群,创建表,插入、查询和更新数据。例如,`HTableInterface` 和 `HBaseAdmin` 接口,以及 `Put`、`Get` 和 `Scan` ...
在Eclipse中开发HBase程序是一项涉及多个步骤的复杂任务,尤其对于初学者而言,掌握这一过程需要对Eclipse IDE、Hadoop生态系统以及HBase有深入的理解。以下是从标题、描述、标签及部分内容中提取的关键知识点,旨在...
在 HBase 中,客户端(如 `HbaseClient.java` 文件所示)是应用程序与 HBase 交互的接口。客户端通过连接到 ZooKeeper 获取 Master Server 的位置,然后与 RegionServer 进行通信,执行 CRUD(创建、读取、更新和...
1. **HBase依赖**: 开发HBase应用程序时,首先需要在项目中引入HBase的客户端库。HBase 1.2.1的jar包通常包括`hbase-client.jar`,它包含了与HBase通信的所有必要API。 2. **Zookeeper**: HBase依赖Zookeeper进行...
9. **异常处理**:Java开发时,需要处理HBase特有的异常,如`IOException`、`TableNotFoundException`、`RegionServerUnavailableException`等,确保程序的健壮性。 10. **MapReduce与HBase**:HBase可以与Hadoop的...
- **第6章:替代HBase客户端**:介绍除了Java API之外的其他语言接口(如Thrift、RESTful API等),以及如何使用这些客户端进行开发。 - **第三部分:示例应用程序** - **第7章:构建实际应用**:通过一系列具体...
在进行HBase开发时,通常还需要其他依赖,如Hadoop的相关库、Zookeeper客户端等。正确管理和配置这些依赖,能够保证应用程序与HBase集群之间的顺畅通信,以及高效稳定的数据操作。在实际项目中,通常会使用构建工具...
此段代码演示了如何使用gohbase客户端进行基本的HBase表读取操作,以及如何在Go程序中设置超时。 #### 内部架构 gohbase的内部架构设计为异步模型,以下是正常情况下的操作流程: 1. **获取区域**:客户端首先...
2. **HBase客户端API**:HBase提供了Java客户端API,支持线程安全的`HTablePool`,这个池可以管理多个`HTable`实例,每个实例对应一个HBase表,允许多线程共享和复用这些实例,减少创建和销毁HTable对象的开销。...
2. **Java API**:Java API是HBase的主要客户端接口,允许开发者直接在Java应用程序中集成HBase的功能。通过调用HBase的Java库中的类和方法,可以实现对HBase的各种操作,如创建表、读写数据等。 3. **REST接口**:...
综上所述,"hbase开发依赖包.zip"中的这些库和工具对于HBase开发来说是基础且不可或缺的,它们帮助开发者构建高效、可靠的HBase应用程序,并提供了诸如性能监控、数据序列化、日志处理和字符串操作等功能。...
1. **HBase客户端库**:这是与HBase交互的基础,包含了HBase的API,如`org.apache.hadoop.hbase.client.Connection`和`org.apache.hadoop.hbase.client.Table`等,用于创建连接、打开表、执行Get、Put、Scan等操作。...
在Java开发环境中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hadoop和HBase是大数据处理领域的重要组件。Hadoop是一个开源的分布式计算框架,主要用于处理和存储大规模数据;HBase则是建立在Hadoop之上的...
在开发层面,"hadoop-2.7.2-hbase-jar"提供了Java API,允许开发者编写HBase客户端程序,进行数据的增删查改操作。同时,HBase还支持使用HBase Shell,这是一个基于JRuby的命令行工具,用户可以通过它直接与HBase...
利用Squirrel,你可以轻松地进行HBase的数据查询、管理表结构、监控性能等操作,大大提高了开发和管理HBase的效率。请记住,定期更新Squirrel和Phoenix驱动,以获取最新的功能和安全修复。在实际使用中,熟悉SQL语法...