HBase 学习之一 <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>
HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行
----首先感谢网络能够给我提供一个开放的学习平台,如果没有网上的技术爱好者提供的帮助,很难学好hbase。
一、hbase简介
官方:HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
自己的理解:hbase其实就是一个在hadoop基础上的一个数据库,运行在HDFS文件系统之上,特点是一个基于内存面向列的数据库。
hbase架构图

二、Hbase数据模型
1、概念图
基于Google的bigtable模型(key-value对)

2、逻辑视图
网上查了一些资料,举一个例子来说说我的理解吧。
| row key | data |
| wangsan |
info:{'height:178','sex:boy'} message:{'tpl:18363636363','email:1@qq.com'} |
| lisi |
info:{'height:176','sex:gril'} message:{'tpl:18363636364','email:2@qq.com'} |
3、hbase的key和列族
与nosql数据库们一样,row key是用来检索记录的主键。

1)每行都有row key。
2)每条记录分隔成列族集合。
3)每个列族由若干列组成。
三、API操作
创建一个表test,首先导入jar包,在hive的安装目录下的lib中去找就可以了。
public static void main(String[] args) throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
// TODO Auto-generated method stub
Configuration con = HBaseConfiguration.create();
HBaseAdmin admin = new HBaseAdmin(con);
TableName name = TableName.valueOf("test");
HTableDescriptor descriptor = new HTableDescriptor(name);
HColumnDescriptor columnDescriptor = new HColumnDescriptor("data");
descriptor.addFamily(columnDescriptor);
admin.createTable(descriptor);
System.out.println("create ok");
}
将程序导出成jar文件,放到Linux系统中的新建目录/opt/bin/hbase中吧。
首先:执行下面两部操作。

执行jar文件。


test表创建成功。
hbase shell指令。
执行list指令,就可以看到hbase下面新建号的test表。
HBase 学习之一 <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>的更多相关文章
- 怎样将关系型数据表转换至hbase数据表
首先须要把关系型数据库的数据表的数据添加由 "纵向延伸",转变为HBase数据表的"横向延伸" 一.Hbase的存储结构 a) HBase以表(HTa ...
- 12. ZooKeeper之Java客户端API使用—创建会话。
转自:https://blog.csdn.net/en_joker/article/details/78686649 客户端可以通过创建一个ZooKeeper(org.apache.zookeeper ...
- C#开发BIMFACE系列45 服务端API之创建离线数据包
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] BIMFACE的常规应用方式有公有云与私有化部署两种方式,并且浏览模型或者图纸需要使用ViewToken,ViewToke ...
- Azure 云平台用 SQOOP 将 SQL server 2012 数据表导入 HIVE / HBASE
My name is Farooq and I am with HDinsight support team here at Microsoft. In this blog I will try to ...
- vue学习(十四) 条件搜索框动态查询表中数据 数组的新方法
//html <div id="app"> <label> 名称搜索关键字: <input type="text" clasa=& ...
- 用javascript动态创建并提交表单form,表格table
<script> //helper function to create the formfunction getNewSubmitForm(){ var submitForm = doc ...
- Django学习手册 - admin后台 切换成中文显示/添加数据表
Django admin后台管理 切换成中文界面: 站点显示为中文: 在setting 里面修改 LANGUAGE_CORE = 'zh-Hans' 字段名显示中文 class Test(models ...
- EF Core中Fluent Api如何删除指定数据表中的行
这两天一直在研究在code first下如何删除数据表中的指定行,于是开始搜狗,后来百度,压根就找不到资料,后来一想可能我的搜索关键字有问题,而且ef core命令与ef的命令差不多,于是从这两个方面 ...
- ASP.NET动态创建数据库和表
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...
随机推荐
- Netty4.0学习笔记系列之二:Handler的执行顺序(转)
http://blog.csdn.net/u013252773/article/details/21195593 Handler在netty中,无疑占据着非常重要的地位.Handler与Servlet ...
- c++ explicit
C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类 ...
- web.py simpletodo 例子
一个很好的例子: 许多新手,特别是从 ASP/PHP/JSP 转过来的同学,经常问下面这几个问题: 所有东西都放在一个 code.py 中呀?我有好多东西该如何部署我的代码? 是不是 /index 对 ...
- 【C++基础之十五】内联函数
1.优点 为什么使用内联函数,而不使用宏定义,虽然宏本身采用的展开来替代函数调用的压栈出栈返回等操作,提高了代码的效率,但是会有两个问题: (1)边际效应 宏只是展开代码而已,所以在一些操作符的优先级 ...
- 【HDOJ】2363 Cycling
二分+Dijkstra. #include <iostream> #include <cstdio> #include <cstring> #include < ...
- [Sequence Alignment Methods] Smith–Waterman algorithm
Smith–Waterman algorithm 首先需要澄清一个事实,Smith–Waterman algorithm是求两个序列的最佳subsequence匹配,与之对应的算法但是求两个序列整体匹 ...
- 【索引】Volume 0. Getting Started
AOAPC I: Beginning Algorithm Contests (Rujia Liu) Volume 0. Getting Started 10055 - Hashmat the Brav ...
- Java父类子类的对象初始化过程
摘要 Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况. 1. 基本初始化过程: 对于一个简单类的初始化过程是: static 修饰的模块(static变量和 ...
- grep 查找当前文件夹下所有文件内内容 并显示文件名
grep -H comm * 显示结果 rclog:recommend/ysclick,1,2 rclog:recommend/utagclick,1,8 .................... t ...
- motan源码分析十:流量切换
motan提供了流量切换的功能,可以实现把一个group的流量切换到另一个group(一个或多个服务都可以).大家可以使用tomcat部署motan的管理工具,并设置几个组,例如可以参考demo代码: ...