本文共 3863 字,大约阅读时间需要 12 分钟。
本节书摘来异步社区《HBase管理指南》一书中的第1章,第1.2节,作者: 蒋燚峰 译者: 苏南,更多章节内容可以访问云栖社区“异步社区”公众号查看。
HBase有两种运行模式:单机运行(Standalone)模式和分布式运行(Distributed)模式。单机运行模式是HBase的默认模式。在单机模式中,HBase会使用一个本地文件系统来代替HDFS,并且在同一个JVM上运行所有的HBase守护进程和HBase管理的ZooKeeper实例。
本节将介绍单机HBase的安装。内容包括:安装HBase、以单机模式启动HBase、在HBase Shell中创建一张表、插入记录、清除记录以及关闭单机模式HBase实例。
你需要有一台Linux机器来运行这组软件栈。不建议在Windows系统之上运行HBase。本书将以Debian 6.0.1(Debian Squeeze)为例进行讲解,因为我所任职的Rakuten公司就有多个运行在Debian上的Hadoop/HBase集群,而6.0.1是目前最新一版的Amazon Machine Image(AMI)。你可以从下载它。
HBase是用Java编写的,因此需要先安装Java。HBase只能运行在Oracle的JDK上,所以在安装时不要使用OpenJDK。尽管Java 7已经发布了,但我们并不建议使用,因为它还需要更多的时间来测试。可以从下列地址中下载到最新版的Java SE 6:。
执行下载到的二进制文件,安装Java SE 6。本书将使用/usr/local/jdk1.6来作为JAVA_HOME。
root# ln -s /your/java/install/directory /usr/local/jdk1.6
我们将新建一个名为Hadoop的用户,用来作为所有HBase/Hadoop守护进程和文件的所有者。我们还要把所有HBase文件和数据都存储在/usr/local/hbase目录下。
root# useradd hadooproot# mkdir /usr/local/hbaseroot# chown hadoop:hadoop /usr/local/hbase
从HBase官方网站()上可以下载到HBase的最新稳定版本。
单机运行模式HBase实例的安装步骤如下。
1.下载HBase源码包,然后将其解压缩到我们为HBase准备的根目录中。为了使安装过程更为简单,我们还要设置一个HBASE_HOME环境变量。完成这两组操作的命令如下:
root# su - hadoophadoop$ cd /usr/local/hbasehadoop$ tar xfvz hbase-0.92.1.tar.gzhadoop$ ln -s hbase-0.92.1 currenthadoop$ export HBASE_HOME=/usr/local/hbase/current
2.在HBase的环境设置文件中设定环境变量JAVA_HOME,命令如下:
hadoop$ vi $HBASE_HOME/conf/hbase-env.sh # The java implementation to use. Java 1.6 required. export JAVA_HOME=/usr/local/jdk1.6
3.为HBase创建一个用于存储数据的目录,然后将该路径设置在HBase配置文件(hbase-site.xml)的 标签内。此步操作所使用的命令如下:
hadoop$ mkdir -p /usr/local/hbase/var/hbasehadoop$ vi /usr/local/hbase/current/conf/hbase-site.xmlhbase.rootdir file:///usr/local/hbase/var/hbase
4.使用如下命令以单机运行模式启动HBase:
hadoop$ $HBASE_HOME/bin/start-hbase.shstarting master, logging to /usr/local/hbase/current/logs/hbase- hadoop- master-master1.out
5.使用如下命令通过HBase Shell连接到正在运行的HBase上:
hadoop$ $HBASE_HOME/bin/hbase shell HBase Shell; enter 'help' for list of supported commands.Type "exit " to leave the HBase ShellVersion 0.92.1, r1298924, Fri Mar 9 16:58:34 UTC 2012
6.创建一张表并再插入一些值,以此来验证HBase是否安装正确。使用如下命令创建一张名为test的表,并为该表创建一个名为cf1的列族。
hbase(main):001:0> create 'test', 'cf1'0 row(s) in 0.7600 seconds
(1)使用如下命令列出新创建的这张表:
hbase(main):002:0> listTABLEtest1 row(s) in 0.0440 seconds
(2)使用如下命令在新创建的表中插入一些值:
hbase(main):003:0> put 'test', 'row1', 'cf1:a', 'value1'0 row(s) in 0.0840 secondshbase(main):004:0> put 'test', 'row1', 'cf1:b', 'value2'0 row(s) in 0.0320 seconds
7.使用scan命令验证我们已将数据插入到了HBase中:
hbase(main):003:0> scan 'test'ROW COLUMN+CELLrow1 column=cf1:a, timestamp=1320947312117, value=value1row1 column=cf1:b, timestamp=1320947363375, value=value21 row(s) in 0.2530 seconds
8.现在,使用disable和drop命令清除掉前面的操作。
(1)使用如下命令禁用表 test:
hbase(main):006:0> disable 'test'0 row(s) in 7.0770 seconds
(2)使用如下命令删除表test:
hbase(main):007:0> drop 'test'0 row(s) in 11.1290 seconds
9.使用如下命令退出HBase Shell:
hbase(main):010:0> exit
10.执行stop脚本关闭HBase实例:
hadoop$ /usr/local/hbase/current/bin/stop-hbase.shstopping hbase.......
通过上面的操作,我们在单台服务器上完成了HBase 0.92.1的安装工作。我们使用了一个名为current的符号链接来指向其安装包的解压缩目录,这样可以使将来的升级更为方便。
为了让HBase能够知道Java的安装位置,我们在HBase的环境设置脚本HBase-env.sh中设置了JAVA_HOME。该脚本中还有一些关于Java堆和HBase守护进程的设置。本书的8~9章将对这些设置进行深入的讨论。
在第1步中,我们在本地文件系统中创建了一个目录,用于存储HBase的数据。在安装完全分布式的HBase时,需要将HBase配置为使用HDFS(而非使用本地文件系统)的方式。当我们在一台服务器上执行了start-hbase.sh脚本时,在该服务器上将会启动一个HBase的主守护进程(HMaster)。因为这一次我们没有配置区域服务器,所以HBase也只是在同一个JVM中启动了一个从守护进程(HRegionServer)。
正如“1.1 简介”一节提到过的那样,HBase需要使用ZooKeeper来作为自己的协调服务。而你可能也已经注意到了,前面这些步骤中并没有启动ZooKeeper。这是因为HBase在默认情况下会启动和管理一个它自己的ZooKeeper仲裁团。
接下来,我们通过HBase Shell连接上了HBase。我们可以使用HBase Shell来管理HBase集群、访问HBase中的数据并完成很多其他的工作。这一次,我们创建了一张名为test的表,向HBase中插入了一些数据,对test表进行了扫描,然后禁用并删除了这张表,最后退出了shell。
我们可以使用HBase的stop-hbase.sh脚本来关闭HBase。该脚本会将HMaster和HRegionServer守护进程都关闭。
转载地址:http://ncjjo.baihongyu.com/