hBase官方文档以及HBase基础操作封装类
HBase 官方文档 0.97 http://abloz.com/hbase/book.html
HBase基本操作封装类(以课堂爬虫为例)
- package cn.crxy.spider.utils;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.hbase.HColumnDescriptor;
- import org.apache.hadoop.hbase.HTableDescriptor;
- import org.apache.hadoop.hbase.KeyValue;
- import org.apache.hadoop.hbase.client.Delete;
- import org.apache.hadoop.hbase.client.HBaseAdmin;
- import org.apache.hadoop.hbase.client.HTable;
- import org.apache.hadoop.hbase.client.HTableInterface;
- import org.apache.hadoop.hbase.client.HTablePool;
- import org.apache.hadoop.hbase.client.Put;
- import org.apache.hadoop.hbase.client.Result;
- import org.apache.hadoop.hbase.client.ResultScanner;
- import org.apache.hadoop.hbase.client.Scan;
- import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
- import org.apache.hadoop.hbase.filter.RegexStringComparator;
- import org.apache.hadoop.hbase.filter.RowFilter;
- import org.apache.hadoop.hbase.util.Bytes;
- public class HbaseUtils {
- /**
- * HBASE 表名称
- */
- public static final String TABLE_NAME = "spider";
- /**
- * 列簇1 商品信息
- */
- public static final String COLUMNFAMILY_1 = "goodsinfo";
- /**
- * 列簇1中的列
- */
- public static final String COLUMNFAMILY_1_DATA_URL = "data_url";
- public static final String COLUMNFAMILY_1_PIC_URL = "pic_url";
- public static final String COLUMNFAMILY_1_TITLE = "title";
- public static final String COLUMNFAMILY_1_PRICE = "price";
- /**
- * 列簇2 商品规格
- */
- public static final String COLUMNFAMILY_2 = "spec";
- public static final String COLUMNFAMILY_2_PARAM = "param";
- HBaseAdmin admin = null;
- Configuration conf = null;
- /**
- * 构造函数加载配置
- */
- public HbaseUtils() {
- conf = new Configuration();
- conf.set("hbase.zookeeper.quorum", "192.168.1.177:2181");
- conf.set("hbase.rootdir", "hdfs://192.168.1.177:9000/hbase");
- try {
- admin = new HBaseAdmin(conf);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) throws Exception {
- HbaseUtils hbase = new HbaseUtils();
- // 创建一张表
- // hbase.createTable("stu","cf");
- // //查询所有表名
- // hbase.getALLTable();
- // //往表中添加一条记录
- // hbase.addOneRecord("stu","key1","cf","name","zhangsan");
- // hbase.addOneRecord("stu","key1","cf","age","24");
- // //查询一条记录
- // hbase.getKey("stu","key1");
- // //获取表的所有数据
- // hbase.getALLData("stu");
- // //删除一条记录
- // hbase.deleteOneRecord("stu","key1");
- // //删除表
- // hbase.deleteTable("stu");
- // scan过滤器的使用
- // hbase.getScanData("stu","cf","age");
- // rowFilter的使用
- // 84138413_20130313145955
- }
- /**
- * rowFilter的使用
- *
- * @param tableName
- * @param reg
- * @throws Exception
- */
- public void getRowFilter(String tableName, String reg) throws Exception {
- HTable hTable = new HTable(conf, tableName);
- Scan scan = new Scan();
- // Filter
- RowFilter rowFilter = new RowFilter(CompareOp.NOT_EQUAL,
- new RegexStringComparator(reg));
- scan.setFilter(rowFilter);
- ResultScanner scanner = hTable.getScanner(scan);
- for (Result result : scanner) {
- System.out.println(new String(result.getRow()));
- }
- }
- public void getScanData(String tableName, String family, String qualifier)
- throws Exception {
- HTable hTable = new HTable(conf, tableName);
- Scan scan = new Scan();
- scan.addColumn(family.getBytes(), qualifier.getBytes());
- ResultScanner scanner = hTable.getScanner(scan);
- for (Result result : scanner) {
- if (result.raw().length == 0) {
- System.out.println(tableName + " 表数据为空!");
- } else {
- for (KeyValue kv : result.raw()) {
- System.out.println(new String(kv.getKey()) + "\t"
- + new String(kv.getValue()));
- }
- }
- }
- }
- private void deleteTable(String tableName) {
- try {
- if (admin.tableExists(tableName)) {
- admin.disableTable(tableName);
- admin.deleteTable(tableName);
- System.out.println(tableName + "表删除成功!");
- }
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println(tableName + "表删除失败!");
- }
- }
- /**
- * 删除一条记录
- *
- * @param tableName
- * @param rowKey
- */
- public void deleteOneRecord(String tableName, String rowKey) {
- HTablePool hTablePool = new HTablePool(conf, 1000);
- HTableInterface table = hTablePool.getTable(tableName);
- Delete delete = new Delete(rowKey.getBytes());
- try {
- table.delete(delete);
- System.out.println(rowKey + "记录删除成功!");
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println(rowKey + "记录删除失败!");
- }
- }
- /**
- * 获取表的所有数据
- *
- * @param tableName
- */
- public void getALLData(String tableName) {
- try {
- HTable hTable = new HTable(conf, tableName);
- Scan scan = new Scan();
- ResultScanner scanner = hTable.getScanner(scan);
- for (Result result : scanner) {
- if (result.raw().length == 0) {
- System.out.println(tableName + " 表数据为空!");
- } else {
- for (KeyValue kv : result.raw()) {
- System.out.println(new String(kv.getKey()) + "\t"
- + new String(kv.getValue()));
- }
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- // 读取一条记录
- /*
- * @SuppressWarnings({ "deprecation", "resource" }) public Article
- * get(String tableName, String row) { HTablePool hTablePool = new
- * HTablePool(conf, 1000); HTableInterface table =
- * hTablePool.getTable(tableName); Get get = new Get(row.getBytes());
- * Article article = null; try {
- *
- * Result result = table.get(get); KeyValue[] raw = result.raw(); if
- * (raw.length == 4) { article = new Article(); article.setId(row);
- * article.setTitle(new String(raw[3].getValue())); article.setAuthor(new
- * String(raw[0].getValue())); article.setContent(new
- * String(raw[1].getValue())); article.setDescribe(new
- * String(raw[2].getValue())); } } catch (IOException e) {
- * e.printStackTrace(); } return article; }
- */
- // 添加一条记录
- public void put(String tableName, String row, String columnFamily,
- String column, String data) throws IOException {
- HTablePool hTablePool = new HTablePool(conf, 1000);
- HTableInterface table = hTablePool.getTable(tableName);
- Put p1 = new Put(Bytes.toBytes(row));
- p1.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),
- Bytes.toBytes(data));
- table.put(p1);
- System.out.println("put'" + row + "'," + columnFamily + ":" + column
- + "','" + data + "'");
- }
- /**
- * 查询所有表名
- *
- * @return
- * @throws Exception
- */
- public List<String> getALLTable() throws Exception {
- ArrayList<String> tables = new ArrayList<String>();
- if (admin != null) {
- HTableDescriptor[] listTables = admin.listTables();
- if (listTables.length > 0) {
- for (HTableDescriptor tableDesc : listTables) {
- tables.add(tableDesc.getNameAsString());
- System.out.println(tableDesc.getNameAsString());
- }
- }
- }
- return tables;
- }
- /**
- * 创建一张表
- *
- * @param tableName
- * @param column
- * @throws Exception
- */
- public void createTable(String tableName, String column) throws Exception {
- if (admin.tableExists(tableName)) {
- System.out.println(tableName + "表已经存在!");
- } else {
- HTableDescriptor tableDesc = new HTableDescriptor(tableName);
- tableDesc.addFamily(new HColumnDescriptor(column.getBytes()));
- admin.createTable(tableDesc);
- System.out.println(tableName + "表创建成功!");
- }
- }
- }
hBase官方文档以及HBase基础操作封装类的更多相关文章
- hbase官方文档(转)
FROM:http://www.just4e.com/hbase.html Apache HBase™ 参考指南 HBase 官方文档中文版 Copyright © 2012 Apache Soft ...
- HBase 官方文档
HBase 官方文档 Copyright © 2010 Apache Software Foundation, 盛大游戏-数据仓库团队-颜开(译) Revision History Revision ...
- HBase官方文档
HBase官方文档 目录 序 1. 入门 1.1. 介绍 1.2. 快速开始 2. Apache HBase (TM)配置 2.1. 基础条件 2.2. HBase 运行模式: 独立和分布式 2.3. ...
- HBase 官方文档0.90.4
HBase 官方文档0.90.4 Copyright © 2010 Apache Software Foundation, 盛大游戏-数据仓库团队-颜开(译) Revision History Rev ...
- HBase官方文档 之 Region的相关知识
HBase是以Region为最小的存储和负载单元(这里可不是HDFS的存储单元),因此Region的负载管理,关系到了数据读写的性能.先抛开Region如何切分不说,看看Region是如何分配到各个R ...
- HBase 官方文档中文版
地址链接: http://abloz.com/hbase/book.html 里面包含基本的API和使用说明
- lavarel5.2官方文档阅读——架构基础
<目录> 1.请求的生命周期 2.应用的架构 3.服务提供者 4.服务容器 5.Facades外立面(从这节起,看中文版的:https://phphub.org/topics/1783) ...
- gRPC官方文档(异步基础: C++)
文章来自gRPC 官方文档中文版 异步基础: C++ 本教程介绍如何使用 C++ 的 gRPC 异步/非阻塞 API 去实现简单的服务器和客户端.假设你已经熟悉实现同步 gRPC 代码,如gRPC 基 ...
- 常用SQL_官方文档使用
SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作关系型数据库. 5大主要类型: ①DQL(Data Query Language,数据查询语言)语句,主要由于se ...
随机推荐
- AP_建立银行信息总行、分行、账户(设定)
2014-06-04 Created By BaoXinjian
- Axure多人协作
这几天搞<材料採购系统>需求.我们组须要分模块画模型图,可是假设每一个人各自画各自的,最后整合,这样就太麻烦了.小左说Axure能够实现多人协作,于是我就研究了一下.我们组已经在用了.以下 ...
- GO1.6语言学习笔记3-工具篇(SublimeText 3+GoSublime组合)
选择SublimeText作为开发工具的原因,最最主要的是它够轻巧,搭配GO开发才能有飞一般的感觉.当然作为开发工具之一,Sublime组合工具也提供足够强大的功能. 自动化提示代码 保存的时候自动格 ...
- 页面日期选择控件--jquery ui datepicker 插件
日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式.语言.限制选择日期范围.添加相关按钮以及其它导航等.官方地址:http://docs.jquery.com ...
- mod_fastcgi和mod_fcgid的区别
mod_fcgid是一个跟mod_fastcgi二进制兼容的Apache module. 原 来的mod_fastcgi因为实现方式的限制,所以可能会创建了很多不必要的进程,而实际上只需要更少的进程就 ...
- Java的spi介绍和简单应用
1.什么是java的spi SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制. 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一 ...
- Spring Cloud 通过代码自定义配置Ribbon
我们还是先从官网文档开始学习,如下图所示,我们可以搞一个测试配置类,来验证是否真的可以通过代码来自定义配置Ribbon,但文档明确给出了警告:即这个测试配置类不能放在@ComponentScan所扫描 ...
- JBoss DataGrid的集群部署与訪问
集群部署 JDG的缓存模式包含本地(Local)模式和集群(Clustered)模式.本项目採用多节点的Clustered模式部署.数据在多个节点的子集间进行复制.而不是同步拷贝到全部的节点. 使用子 ...
- ISE联合modelsim功能仿真和综合后仿真
1.代码输入 (1).新建一个ISE工程,名字为count4. (2).新建一个verilog文件 (3).选择verilog module 输入file name为count4,单击next默认知道 ...
- [Linux] Ubuntu修改时区
sudo apt-get install sysv-rc-confsudo dpkg-reconfigure tzdata