Hbase学习笔记(安装和基础知识及操作)

1.Hbase简介

1.面向列的分布式数据库

2. 以HDFS作为文件系统

3. 利用MapReduce处理Hbase中海量数据

4. ZookKeeper作为协调工具

5. sqoop提供Hbase到关系型数据库中数据导入功能

6. Hive和pig提供高层语言支持如HSQL

2. 伪分布式安装

准备: 安装Hadoop 详细见上一篇日志: hadoop分布式安装

hbase版本: hbase-0.94.7-security.tar.gz

安装目录 /usr/local

步骤:

1.  安装 tar -zxvf hbase-0.94.7-security.tar.gz

2. 重命名: mv hbase-0.94.7-security hbase

3. 配置环境变量hbase_home  (vi /etc/profile)

4. 修改配置文件

1. hbase_home/conf/hbase_env.sh

    修改java_home export
    JAVA_HOME=/usr/local/jdk/

    修改zookeeper(最后一行)
    export HBASE_MANAGES_ZK=true(使用Hbase托管的ZooKeeper)

2. hbase_home/conf/hbase-site.xml文件

    configuration 中加入:

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://hadoop0:9000/hbase</value>
</property>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hadoop0</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

5. 启动hbase

先启动hadoop(start-all.sh)

启用hbase (start-hbase.sh)

jps查看进程 (HMaster,HRegionServer, HQuorumPeer)

http://hadoop0:60010可以查看管理界面,如下:

6. 进程说明:

HMaster: 管理Hbase table的DDL操作

给region分配工作

HResionServer: 原则上每个slave对应一个HRegionServer

HQuorumPeer: ZooKeeper的守护进程,此处我们使用的是Hbase内置的ZooKeeper(在hbase-env.sh中有配置)

3. 分布式安装

准备条件: hadoop分布式环境已安装,查看 hadoop分布式安装

hadoop0主机上hbase伪分布已安装完成

安装:

1. scp -rp /usr/local/hbase hadoop1:/usr/local

2. 在hadoop0上更改hbase_home/conf/regionservers 将localhost更改为hadoop1

3. 在hadoop0上启动hbase

4. jps查看,如下:

hadoop0上进程:

hadoop1上进程:

同理可通过 hostname:60010访问hbase管理界面,同分布式安装部分

4. 数据模型

1. Hbase数据库采用了和Bigtable非常类似的数据类型,表格是稀疏的;

1. row key 行键,table的主键

2. timestamp 时间戳,数据操作时对应的时间戳,可以看成数据的version number

3. Column Family 列簇,每个family可以由任意多个column组成,列名是<族名>:<标签>形式;一个表格的族名时固定的,除非使用管理员权限来改变表格的族名; 不过可以在任何时候添加新的标签;

eg:course对于表来说是一个有两个列的列族(该列族由两个列组成math和art);


rowkey


name


TimeStamp


course


math


art


wish


wish


t1

t2

t3


97

93

97


98

76

99


rain


rain


t4


100

90

4.两张特殊的表  -ROOT- 和 .META.

作用如下:(即-ROOT-记录.META.的region信息,.META.记录用户表的region信息)

关系如下:

基本操作

  (注意操作后不要加分号,习惯了sql,总是在后面加分号,然后发现执行语句后都一直没有反应,去掉分号后成功)

(表名和列名都需要加引号,不区分单双引号)

Hbase shell,是Hbase的命令行工具,命令行中执行hbase shell即可进入hbase shell命令行

1) list  查看hbase中所有表

2) 创建表:

create ‘表名‘,‘列簇1‘,‘列簇2‘....

create ‘student‘, ‘name‘,‘grade‘,‘course‘

在管理界面中查看student

3)describe 查看表结构

describe ‘表名‘

eg: describe ‘student‘

hbase(main):003:0> describe "student"
DESCRIPTION                                          ENABLED
 ‘student‘, {NAME => ‘course‘, DATA_BLOCK_ENCODING = true
 > ‘NONE‘, BLOOMFILTER => ‘NONE‘, REPLICATION_SCOPE
 => ‘0‘, VERSIONS => ‘3‘, COMPRESSION => ‘NONE‘, MIN
 _VERSIONS => ‘0‘, TTL => ‘2147483647‘, KEEP_DELETED
 _CELLS => ‘false‘, BLOCKSIZE => ‘65536‘, IN_MEMORY
 => ‘false‘, ENCODE_ON_DISK => ‘true‘, BLOCKCACHE =>
  ‘true‘}, {NAME => ‘grade‘, DATA_BLOCK_ENCODING =>
 ‘NONE‘, BLOOMFILTER => ‘NONE‘, REPLICATION_SCOPE =>
  ‘0‘, VERSIONS => ‘3‘, COMPRESSION => ‘NONE‘, MIN_V
 ERSIONS => ‘0‘, TTL => ‘2147483647‘, KEEP_DELETED_C
 ELLS => ‘false‘, BLOCKSIZE => ‘65536‘, IN_MEMORY =>
  ‘false‘, ENCODE_ON_DISK => ‘true‘, BLOCKCACHE => ‘
 true‘}, {NAME => ‘name‘, DATA_BLOCK_ENCODING => ‘NO
 NE‘, BLOOMFILTER => ‘NONE‘, REPLICATION_SCOPE => ‘0
 ‘, VERSIONS => ‘3‘, COMPRESSION => ‘NONE‘, MIN_VERS
 IONS => ‘0‘, TTL => ‘2147483647‘, KEEP_DELETED_CELL
 S => ‘false‘, BLOCKSIZE => ‘65536‘, IN_MEMORY => ‘f
 alse‘, ENCODE_ON_DISK => ‘true‘, BLOCKCACHE => ‘tru
 e‘}

4)插入数据和查看数据

put ‘表名‘,‘行键名‘,‘列名‘,‘value‘,‘列名2‘,‘value2‘,‘family:列名1‘,‘value3‘.......

put ‘student‘,‘wish‘,‘name:‘,‘wish‘

查询数据:

get ‘表名‘,‘行名‘

get ‘student‘,‘wish‘

插入更多数据

hbase(main):004:0> put ‘student‘,‘wish‘,‘course:English‘,‘100‘

hbase(main):005:0> put ‘student‘,‘wish‘,‘course:Chinese‘,‘60‘

hbase(main):006:0> put ‘student‘,‘rain‘,‘course:Chinese‘,‘100‘

hbase(main):007:0> put ‘student‘,‘rain‘,‘course:English‘,‘200‘

查看表中数据: scan ‘student‘

其他get例子:

get ‘student‘,‘wish‘,‘course‘

get ‘student‘,‘wish‘,[‘course‘]

get ‘student‘,‘wish‘,[‘course‘,‘name‘]

5)删除数据

delete ‘student‘,‘wish‘,‘course:Math‘

6)删除表

需停止表的可用性,再删除表

disable ‘student‘drop ‘student‘

7) 统计行数

count ‘student‘
时间: 2024-09-30 20:38:02

Hbase学习笔记(安装和基础知识及操作)的相关文章

APUE 学习笔记(一) Unix基础知识

1. Unix 体系结构 内核的接口被称为系统调用 公用函数库构建在系统调用接口之上 应用软件既可以调用公用函数库,也可以直接进行系统调用 2. 文件和目录 目录操作函数:opendir---> readdir---> closedir struct dirent 结构体 stat 系统调用 3.程序.进程.线程 程序:存放在磁盘上.并处于某个目录中的一个可执行文件.使用exec系列函数将程序从磁盘读入存储器,并使其执行 进程:程序的执行实体.进程控制的3个函数:fork.exec.waitp

学习笔记-《Linux基础知识之挂载详解(mount,umount及开机自动挂载)》

<Linux基础知识之挂载详解(mount,umount及开机自动挂载)>来源:Linux社区  作者:chawan 原文链接 http://www.linuxidc.com/Linux/2016-08/134666.htm 以下是学习作者这篇文章做的一些摘要及学习体会. 重要概念(经典原文引述) 挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载",此目录即为"挂载点

【 学习笔记 】memcached基础知识

源地址:http://kb.cnblogs.com/page/42731/ 仔细学习了下,以下是记录的笔记备忘内容. 一.memcached是什么?    memcached是高性能的分布式内存缓存服务器.    一般使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度.提高可扩展性 memcached的特征:        1. 协议简单        2. 基于libevent的事件处理        3. 内置内存存储方式        4. memcache

libevent学习笔记 一、基础知识

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46485705 一.libevent是什么 libevent是一个轻量级的开源的高性能的事件触发的网络库,适用于windows.linux.bsd等多种平台,内部使用select.epoll.kqueue等系统调用管理事件机制. 它被众多的开源项目使用,例如大名鼎鼎的memcached等. 特点: 事件驱动,高性能; 轻量级,专注于网络(相对于ACE); 开放源码

AWS学习笔记(一)--CLI基础知识(测试)

Installing the AWS CLI Install the AWS CLI Using pip on linux1) Install python---Check to see if Python is already installed---$ python --version---Install python---$ sudo yum install python 2) Install pip---check pip---$ pip -V---install pip---$ cur

【学习笔记】Linux基础知识

Linux的基本原则 1.由目的单一的小程序组成:组合小程序完成复杂任务: 2.一切皆为文件: 3.尽量避免捕获用户接口: 4.配置文件保存为纯文本格式: GUI接口: CLI接口: 命令提示符:prompt,bash(shell) #:root $:普通用户 命令: 命令格式: 命令 选项 参数 选项: 短选项:- 多个选项可以组合:-a -b = -ab 长选项:-- 参数:命令的作用对象(多个参数间用空格隔开) 使用凭证: linux系统严格区分大小写 虚拟终端(terminal):Ctr

Spring基础学习笔记-Bean的基础知识

一. Bean的定义,初始化,使用和销毁 二.ref指定依赖的三种模式 三.Bean的五种自动装配模式(autowire) 四.Bean依赖检查的4种模式:配合atuowire使用,dependency-check="" 五.集合的注入方式 六.管理Bean config.xml文件<!--Bean的配置文档--><!--首先定义为XML的方式来存储Bean的配置--><?xml version="1.0" encoding="

Java学习笔记一(基础知识)

1  java基本概念 JDK  java  develop Kit   Java开发环境,三种版本J2SE(主要用与桌面和小程序的开发).J2EE(主要用户企业级的开发).J2ME(主要用于手持设备的开发) Jre  Java run environment Java运行环境, 2 java的基本特点 1)简单:java的编程风格类似C++.除去C++中容易产生错误指针,结构,枚举等.封装了很多类库. 2)面向对象的:完全面向对象的,支持继承.重载.多态等机制 3)健壮性:检查程序在编译或者运

Redis学习笔记之入门基础知识——其他特性

1.订阅(subscribe)与发布(publish) 用户订阅某一个频道,频道发布新的信息时,会将信息告知用户 2.数据安全 1)     快照持久化(时间点转储,实质是数据副本) 操作:SAVA.BGSAVE(后台子进程SAVE) 功能:服务器会保存最近一次完成创建的快照的数据,注意,在创建快照的过程中的操作不会保存在快照中 SAVE seconds times:从上一次快照创建完成到seconds秒的时间内,如果有times次写入,那么会在seconds秒后执行一次BGSAVE,将数据写入