由于文章内容较多,常需要用到目录索引,友情提示:页面右侧有个快捷展开目录的功能,浏览过程中可以随时查看目录。
HBase入门认识
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架构
RegionServer集群结构
HBase逻辑存储结构
HBase物理存储结构
key:rowkey:列簇:列名:时间戳
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。
- 修改配置信息 h b a s e . h o m e / c o n f / h b a s e − s i t e . x m l 和 {hbase.home}/conf/hbase-site.xml和 hbase.home/conf/hbase−site.xml和{hbase.home}/conf/hbase-env.sh文件。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://oda.com/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/jlu/bd/hbase-0.98.6-cdh5.3.6/hbase/tmp</value>
</property>
</configuration>
-
指定regionserver节点hostname,修改文件regionservers。
-
创建到hdfs-site.xml的软连接(即在$HADOOP_HOME/etc/hadoop下创建hbase-site.xml的软连接)或者配置连接hdfs的配置信息(推荐)。
-
添加hbase相关信息到环境变量中(vi ~/.bash_profile)。
-
启动hbase集群并验证。
**大写的ps.**为防止后期编程,hadoop缺少jar包,建议在hadoop-env.sh上添加如下配置