Hbase访问方式
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访问方式的更多相关文章
- 分布式结构化存储系统-HBase访问方式
分布式结构化存储系统-HBase访问方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. HBase提供了多种访问方式,包括HBase shell,HBase API,数据收集组件( ...
- hbase的几种访问方式
Hbase的访问方式 1.Native Java API:最常规和高效的访问方式: 2.HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用: 3.Thrift Gat ...
- HBase的访问方式
这里只介绍三种最常用的方式 1.HBase shell HBase的命令行工具是最简单的接口,主要用于HBase管理 首先启动HBase 帮助 hbase(main):001:0> help 查 ...
- Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...
- ADO.NET编程之美----数据访问方式(面向连接与面向无连接)
最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...
- Objective-C 中self.与_访问方式的区别
Objective-C中属性self.a与_a访问的区别: 在OC中我们可以通过指令@property定义属性. OC对属性封装了许多方法,同时也会自动实现一些方法,相比实例变量,感觉更加面向对象些. ...
- 在APACHE服务器上的访问方式上去除index.php
在APACHE服务器上的访问方式上去除index.php 下面我说下 apache 下 ,如何 去掉URL 里面的 index.php 例如: 你原来的路径是: localhost/index ...
- Django 之 ForeignKey、ManyToMany的访问方式
1.ForeignKey 情况I: from django.db import models class Blog(models.Model): pass class Entry(models.Mod ...
- Java中Map集合的四种访问方式(转)
最近学习Java发现集合类型真是很多,访问方式也很灵活,在网上找的方法,先放下备用 public static void main(String[] args) { Map<String, St ...
随机推荐
- day10 内容大纲
01 去年内容回顾 01 去年内容回顾 *args **kwargs: 万能参数,动态参数 * 魔性用法: 函数的定义时,* ** 聚合. 函数的执行时,* ** 打散. 形参顺序: 位置参数,*ar ...
- git与github建立仓库连接步骤
一.先对git 进行用户设置 首先你得在网上下载git软件并且安装,一路默认安装就好了,然后就可以开始本地仓库的建立了.打开你安装好的git, 在开始菜单里面找到git文件夹里面的git bash端 ...
- [转]从OSI网络模型到TCP/IP协议族简介
OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型成为开放式系统互联参考模型,是一个把网络通信在逻辑上的定义,也可以理解成为定义了通用的网络通信 ...
- elastic 部分更新 retry_on_conflict 和 数据库写锁 详细比对
1 数据库的 update 在修改这条数据的的过程中(这个过程指的是 数据库执行update 到 事务提交的过程中 )为这条数据加上 写锁,阻止 别的事务 对锁定数据的修改,请求后一个修改事务的线程 ...
- python通过xlwt模块直接在网页上生成excel文件并下载
urls: from django.conf.urls import url, include from . import views urlpatterns = [ ... url(r'^domai ...
- ElasticSearch(七)管理ES
发现,故障修复以及恢复 在发现节点,主要是使用ES的zen模块来进行发现,发现的目的就是加入集群,zen的发现有两种模式分别是单播和组播,单播是指配置好了要发现的节点IP,组播则是指不配置具体IP,向 ...
- java 标准输入输出System.in与System.out
System.in System.in 是 InputStream 类的实例对象,该对象的创建是由本地(native)方法完成的. public static final InputStream in ...
- 用shell通过jps -m来杀死进程
#!/bin/sh ### find pid jps=`jps -m` echo "$jps"|while read i do if[[ $i =~"agentTestT ...
- vivado各版本的区别
vivado各版本的区别 Vivado HL Design Edition: Vivado HL System Edition: 区别在于System Edition包含有system generat ...
- 解决iScroll横向滚动区域无法拉动页面的问题
近期项目中使用iScroll遇到一个问题,在设定wrapper为横向滚动时,如果你手指放在该区域,将无法拉动页面,也就是说该区域取消了默认事件.这个体验是实在是无法接受,特别是页面中有多个横向滚动区域 ...