Hbase 基础 - shell 与 客户端

以下内容为个人理解,仅供参考。

一、简介

Hbase是在HDFS上开发的面向列的分布式数据库,适用于随机读/写超大规模的数据集(通常这种数据压力传统RDBMS很难承受),可以在廉价的硬件上构成的集群上管理超大规模的稀疏表,并且可以水平扩展。

二、基础概念

1、Hbase把数据存放在表中,表由行列组成,表中的行是排序的(根据ASCII顺序),行键作为表的主键,对表的数据访问需要通过主键或者主键Range,故行键的设计很重要

2、列由“列族”组成(即对列分类),不同列族的数据通常放在不同的文件夹里,列族不宜过多,Hbase启动时就打开数据文件,并且一直保持打开状态(Linux 默认一个进程打开最大文件数为1024),不合理的设计将导致异常。定义表时必须定义一个可用的列族,用户可根据需要增加或删除列族,但是必须先disable。

3、Hbase为master/slave结构,依赖于zookeeper,master 管理着多个regionServer。

三、安装(standalone)

1、必须安装Java 1.6 或者更高版本。

2、可用修改~/.base_profile,export JAVA_HOME指向JAVA安装路径,也可修改conf/hbase-env.sh 中 export JAVA_HOME=/usr/java/jdk1.6.0/

3、默认情况下,hbase会使用/tmp/hbase-$USERID作为数据存储目录,有些系统重启会清空/tmp目录,可用通过更改hbase-site.xml来配置数据存储目录,如:

<configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>file:///opt/hbase_data</value>
        </property>
</configuration>

4、修改bin下sh文件执行权限,通过 ./bin/start-hbase.sh即可启动hbase,通过tail -f 监听./log/hbase-root-master-hbase-xx.log来查看启动信息。

四、Hbase shell

使用 ./bin/hbase shell即可进入管理hbase,使用secureCRT会导致无法删除键入的错误命令(backspace delete键无法使用),笔者使用putty(v0.62)可正常使用,下面是一些示例:

下面以创建一个stations的表,这表的行键是stationid,  列包含info.name(名称)、info.countryCode(站点所属国家代号)

1、创建一个表与显示所有表

hbase> create ‘stations‘,‘info‘   --创建一个带有info列族的stations表hbase> list   --显示当前所有表

2、录入数据(如果录入同一行同一列则代表更新)

hbase> put ‘stations‘, ‘1001‘, ‘info:name‘, ‘HAILAR‘    --录入1001为行键、HAILAR为站点名称的记录
hbase> put ‘stations‘, ‘1001‘, ‘info:countryCode‘, ‘CH‘   --CH代表china

hbase> put ‘stations‘, ‘1002‘, ‘info:name‘, ‘NENJIANG‘
  hbase> put ‘stations‘, ‘1002‘, ‘info:countryCode‘, ‘CH‘

3、读取、删除数据

hbase> scan ‘stations‘   --读取表中所有数据
hbase> get ‘stations‘,‘1001‘  --得到行键为1001的所有列hbase> get ‘stations‘,‘1002‘,‘info:name‘  --得到行键为1002的info:name列hbase> delete ‘stations‘,‘1001‘,‘info:countryCode‘   --删除1001行的info:countryCode列

 4、增加/删除列族

hbase> disable ‘stations‘
hbase> alter ‘stations‘, {NAME=>‘data‘}   --增加data列族,可以录入以data:作为prefix的列
hbase> enable ‘stations‘hbase> describe ‘stations‘  --列出表结构

---删除列族hbase> disable ‘stations‘hbase> alter ‘stations‘,{NAME=>‘data‘, METHOD=>‘delete‘}   --删除stations里面的data列族,列族下面的列将被全部删除

5、删除表

hbase> disable ‘stations‘   --需要把表disable
hbase> drop ‘stations‘

通过http://hbase-master:60010/ 可查看hbase状态信息

时间: 2024-12-26 05:16:37

Hbase 基础 - shell 与 客户端的相关文章

HBASE 基础命令总结

HBASE基础命令总结 一,概述 本文中介绍了hbase的基础命令,作者既有记录总结hbase基础命令的目的还有本着分享的精神,和广大读者一起进步.本文的hbase版本是:HBase 1.2.0-cdh5.10.0. 二,HBase工具命令 上面的 master.regionserver.zookeeper.rest.thrift.thrift2 都是启动命令启动命令就不介绍了.下面一一介绍我认为比较重要的命令: 1,hbase shell 命令 这个命令主要是进入hbase客户端client

【HBase基础教程】2、HBase之完全分布式模式安装

上一篇blog我们介绍了Hbase的单机模式安装与伪分布式的安装方式,本篇blog我们将详细介绍如何搭建hbase完全分布式环境,搭建hbase完全分布式环境的前提是我们已经搭建好了hadoop完全分布式环境,搭建hadoop完全分布式环境请参考:[Hadoop基础教程]4.Hadoop之完全分布式环境搭建 开发环境 硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点) 软件环境:Java 1.7.0_45.Eclipse Juno Service Rele

Hbase基础(一)

Hbase基础 Hbase基础 Hbase定义 行存储 v s 列存储 Hbase数据模型 Hbase物理模型 Hbase系统架构 Hbase的容错 Hbase特殊的表 合并 Hbase的Compaction和Split Hbase定义 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java. 是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,因此可以容错地存储海量稀疏的数据 行存储 v s 列存储

HBase的Shell命令

1.HBase提供了一个shell的终端给用户交互 2.HBase Shell的DDL操作 (1)先进入HBase的 Shell命令行,即HBASE_HOME/bin/hbase shell …… >quit 创建表: >create 'users','user_id','address','info' //表users,有三个列族user_id,address,info 列出全部表: >list 得到表的描述: >describe 'users' 创建表: >create

基础shell的简介

shell脚本是Linux运维工程师必须掌握的技能之一,shell脚本的使用让我们更好的操作Linux系统,方便了我们的执行. 一,编程基础 编程基本概念 编程逻辑处理方式:顺序执行,循环执行,选择执行 程序:指令+ 数据 shell 编程:过程式.解释执行 shell程序:提供了编程能力,解释执行 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 程序的执行方式 计算机:运行二进制指令: 编程语言的基本结构: 数据存储:变量.数组 表达式: a + b

《学习bash》笔记--基础shell编程

1.shell脚本和函数 脚本是包含shell命令的文件,它是一个shell程序,有三种方式运行它们: 一是键入source scriptname,使得脚本的命令被读取并运行,就好像键入它们一样. 二是运行bash scriptname,打开一个子shell来读取并执行脚本文件中命令.该脚本文件可以无"执行权限". 三是使用./scriptname,打开一个子shell读取并执行脚本文件中的命令,该脚本需要"执行权限". 1.1.函数 函数是一种脚本内脚本,你使用它

HBase的shell命令行界面按退格键(Backspace)无法删除问题

在HBase的shell命令行界面输入错误项按"退格键"删除,却怎么也删除不了: 解决办法: 第一步,修改SecureCRT的设置参数: 第二步,按"Ctrl+退格键(Backspace)"进行删除即可.

C# Socket基础(四)之客户端向服务器发消息

private Socket socketClient;//客户端套接字,关于实例化请参考C# Socket基础(三)之客户端连接服务器和接收消息 客户端发送消息 1 /// <summary> 2 /// 发送数据到服务端 3 /// </summary> 4 private void Send() 5 { 6 if (socketClient == null) 7 { 8 9 ShowMsg("服务器未启动!"); 10 return; 11 } 12 by

HBase之Table.put客户端流程

首先,让我们从HTable.put方法开始.由于这一节有很多方法只是简单的参数传递,我就简单略过,但是,关键的方法我还是会截图讲解,所以希望大家尽可能对照源码进行流程分析.另外,在这一节,我单单介绍put操作在客户端的流程,毕竟,这个内容已经很多了.至于具体服务端的流程,我会在后面的章节中介绍到,欢迎大家到时候阅读. 由于这一节的方法还是比较复杂的,我特地画了一张思维导图,大家可以先通过思维导图来对本节的内容有一个大概的了解,置于具体的流程,我在下面将对照源码的贴图一一为大家讲解(在这里声明一点