离线数据分析平台实战——080HBase介绍和安装
HBase介绍
HBase是参考google的bigtable的一个开源产品,
建立在hdfs之上的一个提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。
是一种介于nosql和RDBMs之间的一种数据库系统,
仅支持通过rowkey和range进行数据的检索,主要存储非结构化数据和半结构化数据。
HBase和Hadoop一样,目标是通过横向扩展,添加普通机器来增加存储性能和计算性能。
HBase特点:
大(一个表可以有上亿行以及百万级的行)、
面向行存储、
稀疏(由于null不占用存储空间,所有表结果可以设计的非常稀疏)。
HBase组成结构
HBase使用Zookeeper进行集群节点管理,当然HBase自身集成了一个ZK系统,不过一般情况在实际生产环境中不使用。
HBase由master和regionserver两类节点(如果使用HBase自带的zk服务,那么还有HQuorumPeer进程)。Hbase支持提供backup master进行master备份。
其中master节点负责和zk进行通信以及存储regionserver的相关位置信息,regionserver节点实现具体对数据的操作,最终数据存储在hdfs上。
HBase架构
HBase安装-前期准备
HBase有三种安装方式,第一种独立模式,第二种是分布式模式(集成zookeeper),第三种是分布式模式(独立zookeeper)。
安装步骤:
- 安装jdk,至少1.6(版本u18除外)。
- 安装ssh免密码登录。
- 修改hostname和hosts,hbase通过hostname获取ip地址。
- Hadoop安装。
- 生成环境集群(NTP + ulimit&nproc + hdfs的dfs.datanode.max.xcievers)
- hbase下载安装
HBase安装
安装步骤:
- 下载hbase,选择版本hbase-0.98.6-cdh5.3.6,下载地址http://archive.cloudera.com/cdh5/cdh/5/。
- 解压压缩包到目录/home/hadoop/bigdater/下。
- 在hbase的根目录下创建一个文件夹hbase来存储临时文件和pid等。默认/tmp。
- 修改配置信息${hbase.home}/conf/hbase-site.xml和${hbase.home}/conf/hbase-env.sh文件。
- 指定regionserver节点hostname,修改文件regionservers。
- 创建到hdfs-site.xml的软连接或者配置连接hdfs的配置信息。
- 添加hbase相关信息到环境变量中。
- 启动hbase集群并验证。
HBase配置信息--hbase-env.sh
主要指定JAVA_HOME和hadoop相关信息。其他包括pid存储路径指定和给定指定参数决定是否使用集成zk(默认使用)。
HBase配置信息--hbase-site.xml
主要指定hbase相关资源配置信息和hdfs相关客户端信息。
HBase安装-环境变量信息配置
主要方便直接执行hbase命令。修改文件~/.base_properties,然后执行命令source ~/.base_properties使命令生效。
HBase启动
启动集群命令: start-hbase.sh
停止集群命令: stop-hbase.sh
单独启动/停止进程命令: (单独的启动master或者regionserver)
hbase-daemon.sh (start|stop) (master|regionserver|zookeeper)
hbase-daemons.sh (start|stop) (regionserver|zookeeper)
HBase验证
验证分为三种方式:
- jsp查看是否有hbase的正常启动。
- web界面查看是否启动成功。http://hostname:60010/
- shell命令客户端查看是否启动成功。
- 查看hbase是否安装成功,查看hdfs文件下是否有hbase的文件夹。
HBase验证截图
HBase其他--备份master
如果需要使用hbase的多master结构,
那么需要在conf文件夹下添加backup-masters文件,
然后一行一个主机名,和regionservers是一样的;
或者在hbase-env.sh中添加变量HBASE_BACKUP_MASTERS,
对应value为backup-masters存储路径(启动命令一样)。
1 下载
http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.6.tar.gz
2 解压
tar -zxvf xxx
3 修改conf/hbase-env.sh
JAVA_HOME=/usr/local/jdk
HBASE_CLASSPATH=hadoophome/etc/hadoop
export HBASE_PID_DIR=/home/hadoop/bd/hbase-0.98.6-cdh5.3.6/hbase/pids
port HBASE_MANAGES_ZK=true
4 修改hbase-site.xml
hbase.rootdir=hdfs://hh/hbase
hbase.cluster.distributed=true
hbase.tmp.dir=/home/hadoop/bd/hbase-0.98.6-cdh5.3.6/hbase/tmp
5 修改regionservers
将主机名添加进去,每行一个
6 修改环境变量
添加HBASE_HOME和PATH
7 启动验证
操作详细步骤
wget http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.6.tar.gz
tar zxf hbase-0.98.6-cdh5.3.6.tar.gz
mv hbase-0.98.6-cdh5.3.6 ../bigdater/
cd ../bigdater/hbase-0.98.6-cdh5.3.6/conf
vim hbase-env.sh
vim hbase-site.xml
vim regionservers
vim ~/.bash_profile
source ~/.bash_profile
start-hbase.sh
jps
hbase-env.sh
export JAVA_HOME=/usr/local/jdk
export HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop
export HBASE_PID_DIR=/home/hadoop/bigdater/hbase-0.98.6-cdh5.3.6/hbase/pids
export HBASE_MANAGES_ZK=true
hbase-site.xml
<configuration>
<property><name>hbase.rootdir</name><value>hdfs://hh/hbase</value></property>
<property><name>hbase.cluster.distributed</name><value>true</value></property>
<property><name>hbase.tmp.dir</name><value>/home/hadoop/bigdater/hbase-0.98.6-cdh5.3.6/hbase/tmp</value></property>
</configuration>
regionservers
hh
~/.bash_profile
export HBASE_HOME=/home/hadoop/bigdater/hbase-0.98.6-cdh5.3.6/
export PATH=$PATH:$HBASE_HOME/bin