Hbase访问方式

Hbase shell命令操作

Hbase shell命令操作--general操作

首先启动Hbase

启动shell

查看表结构

删除一个表

创建表和查看表结构

插入几条数据

查看有哪些数据

获取一个Row Key 的所以数据

获取一个Row Key,一个列簇 的所以数据

获取一个Row Key,一个列簇中其中一列的所以数据

更新一条数据

扫描全表

删除列簇的其中一个列

统计表中的总行数

清空表的内容

Hbase java 编程

Hbase java 编程 -- 程序设计步骤

HbaseTest.java 参考代码

package com.dajiangtai.hadoop.hbase;

import java.io.IOException;

import javax.ws.rs.PUT;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
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.util.Bytes; import com.sun.xml.internal.ws.api.ha.StickyFeature; public class HbaseTest {
public static Configuration conf;
static {
conf = HBaseConfiguration.create();//第一步
conf.set("hbase.zookeeper.quorum", "dajiangtai1,dajiangtai2,dajiangtai3,dajiangtai4,dajiangtai5");
conf.set("hbase.zookeeper.property.clientPort", "");
conf.set("hbase.master", "dajiangtai1:60000");
} public static void main(String[] args) throws IOException{
//createTable("member");
//insertDataByPut("member");
QueryByGet("member");
//QueryByScan("member");
//deletData("member");
} public static void createTable(String tableName) throws MasterNotRunningException,ZooKeeperConnectionException,
IOException{
HBaseAdmin hBaseAdmin = new HBaseAdmin(conf);//创建HBaseAdmin对象
// 先判断这个表是否存在
if(hBaseAdmin.tableExists(tableName)){
hBaseAdmin.disableTable(tableName);
hBaseAdmin.deleteTable(tableName);
}
HTableDescriptor tableDescriptor = new HTableDescriptor(tableName);//将表名称传进去实例化HTableDescriptor这个表
//添加family
tableDescriptor.addFamily(new HColumnDescriptor("address"));
tableDescriptor.addFamily(new HColumnDescriptor("info")); hBaseAdmin.createTable(tableDescriptor);//创建表 hBaseAdmin.close();//释放资源 }

//插入数据方法
public static void insertDataByPut(String tableName) throws IOException
{
HTable table = new HTable(conf,tableName); Put put1= new Put(getBytes("djt"));
put1.add(getBytes("address"),getBytes("country"),getBytes("china"));
put1.add(getBytes("address"),getBytes("province"),getBytes("beijing"));
put1.add(getBytes("address"),getBytes("city"),getBytes("beijing")); put1.add(getBytes("info"),getBytes("age"),getBytes(""));
put1.add(getBytes("info"),getBytes("birthday"),getBytes("1988-12-12"));
put1.add(getBytes("info"),getBytes("company"),getBytes("dajiangtai")); table.put(put1); //插入数据 table.close(); //释放资源
}

//查询数据
public static void QueryByGet(String tableName) throws IOException{
HTable table =new HTable(conf,tableName);
Get get = new Get(getBytes("djt")); //根据rowkey查询
Result r=table.get(get); //执行操作
System.out.println("获得到rowkey:"+new String(r.getRow()));
for(KeyValue keyValue : r.raw()){
System.out.println("列簇:" + new String(keyValue.getFamily())
+ "====列" + new String(keyValue.getQualifier()) + "====值"
+ new String(keyValue.getValue()) );
} table.close();
} public static void QueryByScan(String tableName) throws IOException{
HTable table =new HTable(conf,tableName);
Scan scan = new Scan();
scan.addColumn(getBytes("info"),getBytes("company"));
ResultScanner scanner = table.getScanner(scan);
for(Result r : scanner) {
System.out.println("获得到rowkey:" + new String(r.getRow()));
for(KeyValue kv : r.raw()){
System.out.println("列簇:" + new String(kv.getFamily())
+ "====列" + new String(kv.getQualifier()) + "====值"
+ new String(kv.getValue()) );
}
} scanner.close();
table.close();
} public static void deleteData(String tableName) throws IOException{
HTable table = new HTable(conf,tableName);
Delete delete = new Delete(getBytes("djt"));
delete.deleteColumn(getBytes("info"),getBytes("age"));
table.delete(delete);
table.close();
}
//转化byte数组
public static byte[] getBytes(String str){
if(str == null)
str="";
return Bytes.toBytes(str);
} }

现在集群里吧存在的表删除掉

在main()方法执行一下

查看表的结构

执行插入数据

如何进行查询

进行扫描

如何进行删除数据

执行后

Hbase MapReduce编程

Hbase访问方式的更多相关文章

  1. 分布式结构化存储系统-HBase访问方式

    分布式结构化存储系统-HBase访问方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. HBase提供了多种访问方式,包括HBase shell,HBase API,数据收集组件( ...

  2. hbase的几种访问方式

    Hbase的访问方式 1.Native Java API:最常规和高效的访问方式: 2.HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用: 3.Thrift Gat ...

  3. HBase的访问方式

    这里只介绍三种最常用的方式 1.HBase shell HBase的命令行工具是最简单的接口,主要用于HBase管理 首先启动HBase 帮助 hbase(main):001:0> help 查 ...

  4. Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

    转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...

  5. ADO.NET编程之美----数据访问方式(面向连接与面向无连接)

    最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...

  6. Objective-C 中self.与_访问方式的区别

    Objective-C中属性self.a与_a访问的区别: 在OC中我们可以通过指令@property定义属性. OC对属性封装了许多方法,同时也会自动实现一些方法,相比实例变量,感觉更加面向对象些. ...

  7. 在APACHE服务器上的访问方式上去除index.php

      在APACHE服务器上的访问方式上去除index.php   下面我说下 apache 下 ,如何 去掉URL 里面的 index.php 例如: 你原来的路径是: localhost/index ...

  8. Django 之 ForeignKey、ManyToMany的访问方式

    1.ForeignKey 情况I: from django.db import models class Blog(models.Model): pass class Entry(models.Mod ...

  9. Java中Map集合的四种访问方式(转)

    最近学习Java发现集合类型真是很多,访问方式也很灵活,在网上找的方法,先放下备用 public static void main(String[] args) { Map<String, St ...

随机推荐

  1. 设计一个 硬件 实现的 Dictionary(字典)

    Dictionary 就是 字典, 是一种可以根据 Key 来 快速 查找 Value 的 数据结构 . 比如 我们在 C# 里用到的 Dictionary<T>, 在 程序设计 里, 字 ...

  2. Xshell配置SSH免密码登录

    思路: 私钥存放于客户端,id_rsa 将客户端公钥存放于要远程控制服务器上:将客户在公钥id_rsa.pub内容追加到 /root/.ssh/authorized_keys 使用密钥认证分3步: 1 ...

  3. 微信小程序学习之for循环

    一.使用自定义创建的json数据 1. 创建微信小程序项目后 在wxml文件中增加for循环 <block wx:for="{{posts_key}}" wx:for-ite ...

  4. xml.sax 笔记

    from xml.sax import saxutils html_str = """<!DOCTYPE html> <html> <hea ...

  5. 解决web项目存在多个log4j.properties配置文件,导致日志级别配置不生效问题

    java开启log4j的debug模式 -Dlog4j.debug=true tomcat启动debug模式: linux打开catalina.sh导入: export JAVA_OPTS=" ...

  6. Git-打标签

    打标签同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签.人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做.本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及 ...

  7. 【java】浅谈swtich

    在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样),java1.7后支持了对string的判断 switch 的括号一定是表达式 ...

  8. sql server 清除数据库中所有表的数据

    CREATE PROCEDURE  sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'- ...

  9. JS中模态窗口(showModalDialog)的详细使用

    基本介绍: showModalDialog() (IE + 支持) showModelessDialog() (IE + 支持) window.showModalDialog() 方法用来创建一个显示 ...

  10. Springboot监控之二:Spring Boot Admin对Springboot服务进行监控

    概述 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控.类加载.健 ...