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 ...
随机推荐
- 【Hi3516】 uboot下烧写BSP
setenv serverip xx.xx.xx.xx setenv ipaddr xx.xx.xx.xx setenv ethaddr xx:xx:xx:xx:xx:xx setenv netmas ...
- js对象的key类型
http://javascript.ruanyifeng.com/grammar/object.html#toc2 对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键名),所以加 ...
- checkbox复选框,如何让其勾选时触发一个事件,取消勾选时不触发
<input type="checkbox" onclick="checkboxOnclick(this)" /> <script> f ...
- cvsnt报错:Administrator: Switch to user failed due to configuration error. Contact your System Administrator
在安装CVSNT一开始用Administrator登录时总是报[login aborted]Switch to user failed due to configuration error. Cont ...
- LINUX下PHP网页生成快照(截屏)(xvfb and wkhtmltoimage)
经测试,可以使用 利用php截屏或实现网页快照我们需要用一个工具:xvfb and wkhtmltoimagek哦,这个工具目前只能在linux系统中使用,下面有兴趣的朋友可进入参考. 在做旅游攻略时 ...
- Wsus 清理的计划任务
<# Get-ExecutionPolicy 默认为 RemoteSigned 该签名设置 Set-ExecutionPolicy Unrestricted 添加到排除 powershell - ...
- 关于 TensorFlow
TensorFlow 是一个用于人工智能的开源神器 TensorFlow中文社区 http://www.tensorfly.cn/ 文档 TensorFlow™ 是一个采用数据流图(data ...
- WhereHows前后端配置文件
前端: # This is the main configuration file for the application. # ~~~~~ # Secret key # ~~~~~ # The se ...
- vue过渡
vue在插入.更新或者移除DOM时,提供了多种不同方式的应用过渡效果,下面主要总结一些常用的过渡. 单元素过渡(vue1.0) 我们常用的动画是css3的动画,在vue中依旧有效. <!DOCT ...
- client家族属性
在前面总结了offset家族属性和scroll家族属性,今天来总结一下client家族属性,同前面一样,client家族也包宽高和左上,具体的通过代码来区别这三大家族属性的不同. <!DOCTY ...