Hbase单机模式部署-阿里云开发者社区

开发者社区> 看山灬> 正文

Hbase单机模式部署

简介:  HBase是一个分布式、面向列的开源数据库,是Apache Hadoop项目的子项目,适用于非结构化数据存储的数据库。在Hadoop家族中,很多产品为HBase提供服务
+关注继续查看

HBase是一个分布式、面向列的开源数据库,是Apache Hadoop项目的子项目,适用于非结构化数据存储的数据库。在Hadoop家族中,很多产品为HBase提供服务:


Hadoop HDFS为HBase提供了高可靠性的底层存储支持;

Hadoop MapReduce为HBase提供了高性能的计算能力;

Zookeeper为HBase提供了稳定服务和failover机制;

Pig和Hive为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单;

Sqoop为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

1 安装

1.1 下载、解压

http://hbase.apache.org/找最新的稳定版下载,本文使用的是hbase-0.98.6.1-hadoop2-bin.tar.gz。


解压缩,然后进入到那个要解压的目录:

$ tar xzvf hbase-0.98.6.1-hadoop2-bin.tar.gz
$ cd hbase-0.98.6.1-hadoop2/

1.2 简单配置

这一步可以选择跳过。


此处需要配置的是$HBASE_HOME/conf/hbase-site.xml中的hbase.rootdir,即HBase保存数据的目录。如果不进行配置,默认hbase.rootdir指向/tmp/hbase-${user.name},因为系统重启时会清理/tmp目录,所以重启后会丢失数据。如果是在分布式模式部署中,需要提供的是HDFS上的目录位置。


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:/home/lxh/hadoop/hbase</value>
  </property>
</configuration>

2 启动HBase

直接使用start-hbase.sh脚本启动


$ ./bin/start-hbase.sh

启动正常时,在$HBASE_HOME/logs/hbase-lxh-master-ubuntu.log日志的中会提示下面内容:


2014-10-14 09:47:07,189 INFO  [M:0;ubuntu:40435] master.HMaster: Master has completed initializatio

通过jps查询进程,会发现多了HMaster这个进程:


2694 HMaster

3 初探HBase

3.1 启动shell

进入HBase提供的shell中进行测试。

$ ./bin/hbase shell
2014-10-14 10:14:55,859 INFO  [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.6.1-hadoop2, r96a1af660b33879f19a47e9113bf802ad59c7146, Sun Sep 14 21:27:25 PDT 2014
hbase(main):001:0>

3.2 查看帮助

通过键入help命令查看在HBase的shell中的命令。


hbase(main):001:0> help
HBase Shell, version 0.98.6.1-hadoop2, r96a1af660b33879f19a47e9113bf802ad59c7146, Sun Sep 14 21:27:25 PDT 2014
Type 'help "COMMAND"', (e.g. 'help "get"' -- the quotes are necessary) for help on a specific command.
Commands are grouped. Type 'help "COMMAND_GROUP"', (e.g. 'help "general"') for help on a command group.
COMMAND GROUPS:
  Group name: general
  Commands: status, table_help, version, whoami
  Group name: ddl
  Commands: alter, alter_async, alter_status, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, show_filters
  Group name: namespace
  Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables
  Group name: dml
  Commands: append, count, delete, deleteall, get, get_counter, incr, put, scan, truncate, truncate_preserve
  Group name: tools
  Commands: assign, balance_switch, balancer, catalogjanitor_enabled, catalogjanitor_run, catalogjanitor_switch, close_region, compact, flush, hlog_roll, major_compact, merge_region, move, split, trace, unassign, zk_dump
  Group name: replication
  Commands: add_peer, disable_peer, enable_peer, list_peers, list_replicated_tables, remove_peer, set_peer_tableCFs, show_peer_tableCFs
  Group name: snapshots
  Commands: clone_snapshot, delete_snapshot, list_snapshots, rename_snapshot, restore_snapshot, snapshot
  Group name: security
  Commands: grant, revoke, user_permission
  Group name: visibility labels
  Commands: add_labels, clear_auths, get_auths, set_auths, set_visibility
SHELL USAGE:
Quote all names in HBase Shell such as table and column names.  Commas delimit
command parameters.  Type <RETURN> after entering a command to run it.
Dictionaries of configuration used in the creation and alteration of tables are
Ruby Hashes. They look like this:
  {'key1' => 'value1', 'key2' => 'value2', ...}
and are opened and closed with curley-braces.  Key/values are delimited by the
'=>' character combination.  Usually keys are predefined constants such as
NAME, VERSIONS, COMPRESSION, etc.  Constants do not need to be quoted.  Type
'Object.constants' to see a (messy) list of all constants in the environment.
If you are using binary keys or values and need to enter them in the shell, use
double-quote'd hexadecimal representation. For example:
  hbase> get 't1', "key\x03\x3f\xcd"
  hbase> get 't1', "key\003\023\011"
  hbase> put 't1', "test\xef\xff", 'f1:', "\x01\x33\x40"
The HBase shell is the (J)Ruby IRB with the above HBase-specific commands added.
For more on the HBase Shell, see http://hbase.apache.org/docs/current/book.html

3.3 create创建表

首先创建一个名为test的表,这个表只有一个列族为cf。可以通过list命令列出所有的表来检查创建情况。


hbase(main):002:0> create 'test', 'cf'
0 row(s) in 0.4330 seconds
=> Hbase::Table - test
hbase(main):003:0> list
TABLE                                                                                                                                          
test                                                                                                                                           
1 row(s) in 0.0590 seconds
=> ["test"]

3.4 put插入数据

test表已经创建成功,通过put 'table', 'row', 'col-pre:col-name', 'value'向其中插入数据。table至表名,row指每行的键key,col-pre是列族前缀,col-name是列名,列族前缀与列名之间通过冒号隔开,value是值value。


hbase(main):005:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.1380 seconds
hbase(main):006:0> put 'test', 'row2', 'cf:b', 'value2-b'
0 row(s) in 0.0130 seconds
hbase(main):007:0> put 'test', 'row2', 'cf:c', 'value2-c'
0 row(s) in 0.0100 seconds
hbase(main):008:0> put 'test', 'row3', 'cf', 'value3'
0 row(s) in 0.0110 seconds
hbase(main):011:0> put 'test', 'row3', 'cf:e', 'value3-e'
0 row(s) in 0.0060 seconds

3.5 scan扫描全表

通过scan 'table'命令查询表test的数据:


hbase(main):012:0> scan 'test'
ROW                                  COLUMN+CELL                                                                                               
 row1                                column=cf:a, timestamp=1413253976039, value=value1                                                        
 row2                                column=cf:b, timestamp=1413253980776, value=value2-b                                                      
 row2                                column=cf:c, timestamp=1413253985691, value=value2-c                                                      
 row3                                column=cf:, timestamp=1413253990953, value=value3                                                         
 row3                                column=cf:e, timestamp=1413254206302, value=value3-e                                                      
3 row(s) in 0.0430 seconds

3.6 get查询某一行

通过get 'table', 'row'命令查询某一行数据:


hbase(main):013:0> get 'test', 'row1'
COLUMN                               CELL                                                                                                      
 cf:a                                timestamp=1413253976039, value=value1                                                                     
1 row(s) in 0.0150 seconds
hbase(main):014:0> get 'test', 'row2'
COLUMN                               CELL                                                                                                      
 cf:b                                timestamp=1413253980776, value=value2-b                                                                   
 cf:c                                timestamp=1413253985691, value=value2-c                                                                   
2 row(s) in 0.0120 seconds
hbase(main):015:0> get 'test', 'row3'
COLUMN                               CELL                                                                                                      
 cf:                                 timestamp=1413253990953, value=value3                                                                     
 cf:e                                timestamp=1413254206302, value=value3-e                                                                   
2 row(s) in 0.0050 seconds

3.7 disable使表无效

disable 'table'命令可以使表无效,表并没有删除,但是不能进行查询等操作。


hbase(main):017:0> disable 'test'
0 row(s) in 1.4850 seconds

如果此时再通过get 'table', 'row'查询,则会报错:


hbase(main):018:0> get 'test', 'row3'
COLUMN                               CELL                                                                                                      
ERROR: test is disabled.

3.8 enable使表有效

对于无效的表,可以使用enable 'table'命令使其有效,此时可以进行一系列对表的操作:


hbase(main):020:0> enable 'test'
0 row(s) in 0.5540 seconds
hbase(main):021:0> get 'test', 'row3'
COLUMN                               CELL                                                                                                      
 cf:                                 timestamp=1413253990953, value=value3                                                                     
 cf:e                                timestamp=1413254206302, value=value3-e                                                                   
2 row(s) in 0.0160 seconds

3.9 drop删除表

drop 'table'命令可以删除表,该表必须是无效的表,即通过disable 'table'命令操作的表。


hbase(main):030:0> drop 'test'
0 row(s) in 0.2300 seconds

3.10 关闭shell

与其他shell类似,退出shell的命令是exit


hbase(main):031:0> exit

4 停止HBase

直接使用脚本stop-hbase.sh停止。


$ ./bin/stop-hbase.sh 
stopping hbase....................

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9497 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26743 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11214 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13186 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9055 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6895 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4013 0
+关注
看山灬
专注后端开发、架构相关知识分享,个人网站 https://howardliu.cn/。
136
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载