工作中我自己总结的hbase文档,供初学者学习。看了这个,就不用去查什么文档了。(三)

2015-02-03 10:03:38 · 作者: · 浏览: 134
数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。

三、HBASe单机配置

1) 下载
在Apache/Hadoop项目的网站(hadoop.apache.org/)下载hadoophbase发行包,此处两个发行包的大版本号一定要一致,譬如都是0.18版本:hadoop-0.18.2.tar.gzhbase-0.18.1.tar.gz

2) 使用root身份登录目标服务器系统(Suse10Linux)

首先安装java虚拟机,这个比较简单,随便找个绿色的解压就可以了,在这个例子里面我使用IBMWAS6.1附带的jdk,它的home目录是/opt/IBM/WebSphere/AppServer/java,我们只需要配置系统的环境变量就可以了.
编辑全局环境变量文件/etc/profile,在文件后面添加
exportJAVA_HOME=/opt/IBM/WebSphere/AppServer/java
exportPATH=$JAVA_HOME:$PATH
保存profile文件后使用$source/etc/profile命令重新加载profile,然后随便在一个目录下面运行$java-version查看javahome环境变量和path变量是否被正确加载.
另外到/etc/hosts文件中查看主机映射是否存在,例如127.0.0.1localhost或者什么其他的名字,在这里默认配置本机为localhost,如果需要做分布式的话,本机要做namenode,所以要把所有的datanode的host添加到这里面.

3) 创建hadoop用户,$useraddhadoop可以用$passwdhadoop修改hadoop用户的登录密码.

创建hadoop用户的home目录,如果打算在别处安装hadoop/hbase的话可以不这样做,这里我们默认将hadoophbase安装在/home/${username}目录下.

$cd/home
$mkdirhadoop
将目录用户指派给hadoop
$chownhadoophadoop
改变目录权限,这里我们配大一些,其实只要644就足够了:
$chmod755hadoop

使用hadoop用户登录系统,将下载的两个发行包文件传到/home/hadoop目录下面,然后给它们加上执行权限:
$chmoda+xhadoop-0.18.2.tar.gz
$chmoda+xhbase-0.18.1.tar.gz

4) 解压hadoop:

$tarzxvfhadoop-0.18.2.tar.gz
这样做会在/home/hadoop目录下解压hadoop发行包并创建到/home/hadoop/hadoop。

5) 配置hbase-site.xml文件

hbase.rootdir

file:///home/data/hbase

hbase.coprocessor.user.region.classes

com.avos.uluru.hbase.AggrEndPoint

hbase.zookeeper.quorum

10.5.31.10

zookeeper.session.timeout

60000

hbase.zookeeper.property.clientPort

2181

hbase.regionserver.dns.nameserver

test.hbase.com

hbase.master.dns.interface

em3

6) 启动和关闭

/bin/start-hbase.sh

/bin/stop-hbase.sh

7) 说明

必须配置的参数:

Hbase.zookeeper.quorum 本机的IP地址,不能为localhost或127.0.0.1,否则不能远程链接。

Hbase.master.dns.interface 为master绑定的网卡,多网卡的服务器必须配置,否则默认绑定到虚拟的轮回网卡,不配置不能远程链接。

ZooKeeper服务不认Ip,只认主机名,因此需要在/etc/hosts文件里增加一个ZooKeeper服务的IP地址与本机主机名的配置。如:10.5.31.10 amber-mts

如果不配置,Zookerper会绑定到locahost的主机名,远程就不能链接。

远程调用客户端也需要配置本机的DNS,在c:\windows\system32\driver\etc\host文件里增加Zookerper的Ip与主机名的配置。

四、Hbase配置解释

1) 修改linux 系统参数
Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“Too Many Open Files”的错误,导致整个HBase不可运行,你可以用ulimit -n 命令进行修改,或者修改/etc/security/limits.conf和/proc/sys/fs/file-max 的参数,具体如何修改可以去Google 关键字“linux limits.conf ”

2) JVM 配置
修改 hbase-env.sh 文件中的配置参数,根据你的机器硬件和当前操作系统的JVM(32/64位)配置适当的参数
HBASE_HEAPSIZE 4000 HBase使用的 JVM 堆的大小
HBASE_OPTS "?server?XX:+UseConcMarkSweepGC"JVMGC 选项
HBASE_MANAGES_ZKfalse 是否使用Zookeeper进行分布式管理

HBase持久化
重启操作系统后HBase中数据全无,你可以不做任何修改的情况下,创建一张表,写一条数据进行,然后将机器重启,重启后你再进入HBase的shell中使用 list 命令查看当前所存在的表,一个都没有了。是不是很杯具?没有关系你可以在hbase/conf/hbase-default.xml中设置hbase.rootdir的值,来设置文件的保存位置指定一个文件夹,例如:file:///you/hbase-data/path,你建立的HBase中的表和数据就直接写到了你的磁盘上,如图所示:
同样你也可以指定你的分布式文件系统HDFS的路径例如:hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR,这样就写到了你的分布式文件系统上了。

3) 配置HBase运行参数
hbase.rootdir

这个目录是region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的'/hbase'目录,namenode 运行在namenode.example.org的9090端口。则需要设置为hdfs://namenode.example.org:9000 /hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。

默认:file:///tmp/hbase-${user.name}/hbase

hbase.master.port

Hbase的Master的端口.

默认: 60000

hbase.cluster.distributed

Hb