- 浏览: 250258 次
- 性别:
文章分类
最新评论
初始化
创建表
查询表的所有数据
查询一条数据
更新数据
删除一条数据(也可以删除多条)
查询多条
删除表
增加过滤器
Configuration HBASE_CONFIG = new Configuration(); HBASE_CONFIG.set("hbase.zookeeper.quorum", "IP"); HBASE_CONFIG.set("hbase.zookeeper.property.clientPort", "端口"); cfg = new HBaseConfiguration(HBASE_CONFIG); cfg.set("hbase.master", "master ip:60000");
创建表
public void createTable(String tablename) throws IOException { HBaseAdmin admin = new HBaseAdmin(cfg); if (admin.tableExists(tablename)) { System.out.println("Exists!!!"); } else { HTableDescriptor tableDesc = new HTableDescriptor(tablename); tableDesc.addFamily(new HColumnDescriptor("name")); admin.createTable(tableDesc); System.out.println("create table ok ."); } }
查询表的所有数据
public void getAll(String tablename) throws IOException { HTable table = new HTable(cfg, tablename); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); for (Result r : rs) { KeyValue[] kv = r.raw(); for (int i = 0; i < kv.length; i++) { System.out.print(new String(kv[i].getRow()) + "\t"); System.out.print("column=" + new String(kv[i].getFamily())+ ":"); System.out.print(new String(kv[i].getQualifier()) + ", "); System.out.print("timestamp=" + kv[i].getTimestamp() + ", "); System.out.println("value=" + new String(kv[i].getValue())); } } }
查询一条数据
public void get(String tablename, String rowKey) throws IOException { HTable table = new HTable(cfg, tablename); Get g = new Get(rowKey.getBytes()); Result rs = table.get(g); for (KeyValue kv : rs.raw()) { System.out.print(new String(kv.getRow()) + ":"); System.out.print("column=" + new String(kv.getFamily()) + ":"); System.out.print(new String(kv.getQualifier()) + ", "); System.out.print("timestamp=" + kv.getTimestamp() + ", "); System.out.println("value=" + new String(kv.getValue())); } }
更新数据
public void update(String tablename,String rowKey,String value) throws IOException { HTable table = new HTable(cfg, tablename); Put put = new Put(Bytes.toBytes(rowKey)); put.add(Bytes.toBytes("name"), Bytes.toBytes("column"),Bytes.toBytes(value)); table.put(put); }
删除一条数据(也可以删除多条)
public void delete(String tablename, String rowKey) throws IOException { HTable table = new HTable(cfg, tablename); List<Delete> list = new ArrayList<Delete>(); Delete d1 = new Delete(rowKey.getBytes()); list.add(d1); table.delete(list); }
查询多条
public void multiGet(String tablename,String[] keys) throws IOException { HTable table = new HTable(cfg, tablename); List<Get> list = new ArrayList<Get>(); for(String k:keys) { Get g = new Get(k.getBytes()); list.add(g); } Result[] rs = table.get(list); }
删除表
public void removeTable(String tablename) throws IOException { HBaseAdmin admin = new HBaseAdmin(cfg); admin.disableTable(tablename); admin.deleteTable(tablename); }
增加过滤器
public void filter(String tablename, String key,int count) throws IOException { HTable table = new HTable(cfg, tablename); Scan s = new Scan(); List<Filter> list = new ArrayList<Filter>(); list.add(new PrefixFilter(key.getBytes())); list.add(new PageFilter(count)); FilterList filter = new FilterList(list); s.setFilter(filter); ResultScanner rs = table.getScanner(s); }
发表评论
-
Hadoop-DataNode分析
2016-04-06 18:41 678HDFS主要流程 客户端创建到name ... -
Hadoop-远程过程调用
2015-06-15 16:46 555Hadoop IPC类图如下 ... -
HBase-cache相关
2015-04-09 15:03 661一些配置参数 hbase.lru.block ... -
HBase-压缩和分割原理
2015-03-31 11:33 613HRegionServer调用合并请求 主要逻 ... -
Hbase-HMaster架构
2015-03-24 19:21 2233HMaster的整体结构 一个master包含如下 ... -
Hadoop-balancer执行原理
2015-01-28 21:19 967核心类在 org.apache.h ... -
Hadoop-commons分析
2014-10-22 18:19 779hadoop的配置文件相关类 Configurati ... -
HBase-客户端请求
2014-05-27 19:46 1647客户端相关参数 参数 默认值 含义 ... -
HBase-服务端处理请求的过程
2014-05-19 19:19 2533Region的架构 HRegionSe ... -
HBase-打印日志内容分析
2014-05-15 17:14 972WARN org.apache.hadoop.hba ... -
HBase-遇到的问题
2014-05-15 16:43 2878rowlock release problem wi ... -
HBase-HFile的读写操作
2014-05-03 19:40 3375写入数据: public class Test ... -
HBase-WAL相关线程处理逻辑
2014-02-28 19:21 2151日志同步线程 HLog$L ... -
HBase-region server的线程
2014-02-28 19:19 48这个是用于和HDFS通讯的客户端线程 Daemon Th ... -
HBase-RegionServer架构
2014-02-28 19:06 4764RegionServer的整体结构 一个regio ... -
HBase-HLog分析
2014-02-08 17:37 2220HLog的全部实现在包: org.apache.hado ... -
HBase-HFile分析
2014-01-10 19:25 3285HFile的整体结构图如下: 整个HFile分四 ... -
HBase-线程调整
2013-08-20 17:14 774read线程数量 ipc.server.read.thread ... -
Hadoop-常用操作
2013-07-19 11:35 987使用URL的方式读取一个文件内容,需要设置一个handler工 ... -
Hadoop-常见问题
2013-07-05 12:50 644经典漫画讲解HDFS原理 http://blog.china ...
相关推荐
Phoenix作为HBase的SQL层,使得开发者无需学习复杂的HBase API,就能利用SQL语句进行数据操作。Phoenix将SQL语句转化为HBase的操作,支持索引、视图、触发器等特性。在5.1.2版本中,Phoenix优化了查询性能,提升了...
Phoenix是建立在HBase之上的SQL查询引擎,它为HBase提供了高性能的JDBC驱动,使得开发人员可以通过SQL接口来操作HBase,而无需掌握复杂的HBase API。Phoenix通过解析SQL语句,将其转换为HBase的扫描和过滤操作,从而...
在使用HBase时,你可以通过命令行接口(HBase Shell)进行交互式操作,或者使用Java API编写应用程序。HBase支持多种数据访问模式,包括随机读写、范围扫描和反向索引,这使得它非常适合实时大数据分析和处理场景。 ...
5. **客户端连接**:HBase提供了命令行接口(HBase Shell)和Java API,可以用来交互式操作HBase或在应用程序中集成。 ### HBase的数据模型和操作 1. **创建表**:使用`create`命令创建表,指定列族。 2. **插入...
`hbase-client`包含了与HBase交互的API,`hbase-server`则包含了服务器端组件,如RegionServer和Master,而`hbase-common`则包含通用的类和接口。 2. **设计理念**: HBase采用行式存储,将数据按行键(RowKey)...
9. **API和Shell**:HBase提供Java API以及命令行工具(HBase Shell),方便用户进行数据操作和管理。 10. **扩展性**:HBase可以轻松地添加更多的服务器来扩展存储和处理能力,以应对不断增长的数据需求。 在解压...
5. 使用命令行工具或者客户端API与HBase交互。 **使用场景**: HBase通常用于实时数据分析,如Web日志分析、用户行为追踪、物联网(IoT)数据存储、搜索引擎索引等场景,尤其适合那些对读写性能要求高、数据量庞大的...
客户端库是连接到HBase集群并执行各种操作(如创建表、插入数据、查询数据等)的接口,因此,确保这些依赖库的完整性是成功操作HBase的前提。 描述中提到,这是针对HBase-1.3.1版本的客户端依赖包,意味着这些jar包...
12. **Table和Region管理**: 用户可以通过HBase shell或Java API创建、修改和删除表,调整Region大小,监控Region分布等。 要使用这个"**hbase-2.0.2-bin.tar**"文件,你需要首先解压,然后配置HBase的环境变量,...
在这个场景中,我们关注的是"Hbase-1.4.10-bin.tar.gz",这是HBase 1.4.10版本的二进制发行包,适用于Linux操作系统。 首先,安装HBase前,确保你的Linux系统已经安装了Java开发环境(JDK),因为HBase依赖于Java...
HBase 2.3.3还包括对性能优化、稳定性增强、新的API支持等方面的改进。例如,RegionSplitPolicy优化了区域分裂策略,以提高负载均衡;而Cell级别的ACL增强了数据安全性。 总结来说,Linux上的HBase 2.3.3是一个强大...
Apache Phoenix是构建在HBase之上的关系型数据库层,作为内嵌的客户端JDBC驱动用以对...直接使用HBase的API,结合协处理器(coprocessor)和自定义的过滤器的话,小范围的查询在毫秒级响应,千万数据的话响应速度为秒级
10. **读写操作**:HBase提供了多种API,如Java API、Thrift、REST,供应用程序进行数据读写。读操作通常是实时的,写操作通过WAL(Write-Ahead Log)保证原子性和持久性。 11. **数据分区与负载均衡**:Region是...
Phoenix将SQL查询转换为HBase的原生操作,使得开发者能够使用SQL语法与HBase进行交互,而无需深入理解HBase的Java API。4.14.0是Phoenix的一个稳定版本,针对HBase 1.2版本进行了优化。 在"apache-phoenix-4.14.0-...
首先,HBase 2.3.3客户端提供了丰富的API,支持Java、Python、C++等多种编程语言,使得开发者可以方便地在各种应用中集成HBase功能。在Linux环境下,通常使用Java API进行开发,因为其具有完善的文档支持和强大的...
使用HBase开发应用程序,可以通过Java API或者HBase Shell,也可以使用如HBase Thrift或REST接口与非Java语言交互。此外,HBase与Hadoop其他组件如Hive、Pig等集成良好,可以在大数据分析流程中发挥重要作用。 总之...
1. **高性能SQL查询**:Phoenix将SQL查询转换为HBase的多行扫描和过滤操作,显著提高了查询效率。 2. **索引管理**:Phoenix支持创建和维护B-Tree索引,以优化查询性能。 3. **JDBC接口**:提供标准的JDBC驱动,使得...
- **创建表**:使用HBase shell或Java API创建表,定义列族。 - **增删改查**:通过Put、Get、Delete、Scan操作进行数据的插入、读取、删除和扫描。 - **Region管理**:Region的自动分裂和手动调整以优化数据分布...
在完成基础配置后,我们可以启动HBase集群,通过HBase shell或者Java API与HBase交互。在shell中,可以执行创建表、插入数据、查询数据等操作。此外,HBase还支持丰富的查询语法,如单行、范围、扫描查询等,提供了...