1 安装
进入hadoop用户
tar -zxvf hbase-1.1.4-bin.tar.gz
ln -s hbase-1.1.4 hbase
hdfs dfs -mkdir hbase
#进入root用户,设置环境变量
export HBASE_HOME=/home/hadoop/application/hbase
export PATH=$PATH:$HBASE_HOME/bin
hbase分布式模式依赖
1.hadoop分布式文件系统实例hdfs。
2.zookeeper集群
2 hbase-site.xml
参考HBase开启Snappy压缩
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://dashuju174:9000/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>dashuju172,dashuju173,dashuju174</value>
</property>
<!-- 启用snappy压缩 -->
<property>
<name>hbase.block.data.cachecompressed</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.codecs</name>
<value>snappy</value>
</property>
</configuration>
# 配置完成后,将zookeeper的配置zoo.cfg拷贝到${HASE_HOME}/conf 下面,例如
cp /home/hadoop/application/zookeeper/conf/zoo.cfg ./
3 hbase-env.sh
HBASE优化这篇文章介绍了垃圾回收器(GC)的选择,CMS作为老年代的垃圾回收器
#hbase-env.sh此文件是hbase的环境变量,例如Hbase守护进程的JVM启动参数:JAVA堆大小和垃圾回收策略等,在这个文件中还可以设置hbase配置文件的目录、日志目录、SSH选项、进程pid文件的目录等,改变配置需要重启hbase。
#文件位于${HBASE_HOME}/conf下
#
export HBASE_PID_DIR=/var/hadoop/pids
# 采用CMS垃圾收集器
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_LOG_DIR=/appdata/hbase/logs
export JAVA_HOME=/usr/java/jdk1.7.0_80
#如果使用hbase自身的zookeeper,则置为true。
export HBASE_MANAGES_ZK=false
# 这个2222端口根据SSH的端口进行调整,如果使用默认22端口,则不需要加上这句话
export HBASE_SSH_OPTS="-p 2222"
4 regionservers
这个文件罗列了所有region服务器的主机名,master在启动的时候都会注册到Zookeeper中。
改文件位于${HBASE_HOME}/conf,添加regionserver的数据,例如master是174,则需要添加
dashuju172
dashuju173
5 启动与关闭
启动服务
执行start-hbase.sh
查看174的jps,HMaster运行成功
1373 HMaster
26037 QuorumPeerMain
17894 NameNode
18238 ResourceManager
18084 SecondaryNameNode
查看172和173的jps,HRegionServer运行成功
51771 DataNode
33680 HRegionServer
33889 Jps51885
NodeManager
32821 QuorumPeerMain
停止服务
stop-hbase.sh
6 网页端监控
hbase1.0后,web端口改成了16010,之前的版本是60010,
7 常见命令
HBase 常用Shell命令
7.1 创建表
HBase之五:hbase的region分区
# 不指定分区
create 'iw:table0',{NAME=>'i',VERSIONS=>1,COMPRESSION=>'SNAPPY'}
#
create 't_table1', { NAME => 'i', COMPRESSION => 'SNAPPY' }, {NUMREGIONS => 10, SPLITALGO => 'HexStringSplit'}
create 't_table2',{ NAME => 'i', COMPRESSION => 'SNAPPY' } ,SPLITS=>['0','1','2','3','4','5','6','7','8','9']
7.2 启用禁用命令
# 查看表结构
describe 'iw:table0'
#启用禁用
enable 'iw:table0'
disable 'iw:table0'
#删除表
drop 'iw:table0'
#清空表数据
truncate 'iw:table0'
#put数据
put 'snappy_test2','rowkey001','i:col2','value02'
7.3 修改压缩模式
disable 'snappy_test2'
alter 'snappy_test2', NAME => 'i', COMPRESSION => 'snappy'
enable 'snappy_test2'
describe 'snappy_test2'
# 合并后才能生效
major_compact 'snappy_test2'
scan 'snappy_test2'