Hadoop系列文章
Hadoop系列 (一):在CentOS中搭建hadoop环境(伪分布式)
Hadoop系列 (二):完全分布式搭建(腾讯云服务器+阿里云服务器)
Hbase概述
HBase是建立在Hadoop文件系统(HDFS)之上的分布式、面向列的数据库,通过利用Hadoop的文件系统提供容错能力。与Hive不同的时,通过Hbase可以进行实时读写或者随机访问大规模的数据集。
HBase是可以提供实时计算的分布式数据库,数据被保存在HDFS分布式文件系统上,由HDFS保证期高容错性。
HBase上的数据是以StoreFile(HFile)二进制流的形式存储在HDFS上block块中;但是HDFS并不知道的HBase用于存储什么,它只把存储文件认为是二进制文件,也就是说,HBase的存储数据对于HDFS文件系统是透明的。
HDFS | HBase |
---|---|
HDFS适于存储大容量文件的分布式文件系统。 | HBase是建立在HDFS之上的数据库。 |
HDFS不支持快速单独记录查找。 | HBase提供在较大的表快速查找 |
HDFS提供了高延迟批量处理;没有批处理概念。 | HBase提供了数十亿条记录低延迟访问单个行记录(随机存取)。 |
HDFS提供的数据只能顺序访问。 | HBase内部使用哈希表和提供随机接入,并且其存储索引,可将在HDFS文件中的数据进行快速查找。 |
Hbase部署
在部署Hbase部署之前,需要配置好jdk以及zookeeper。详细可以参考我的历史文章,有详细说明。
单机模式
Hbase下载
#下载文件
[hadoop@master software]$ wget https://dlcdn.apache.org/hbase/stable/hbase-2.3.6-bin.tar.gz
#解压到指定目录
[hadoop@master software]$ sudo tar -zxvf hbase-2.3.6-bin.tar.gz -C /opt/hbase --strip-components 1
#更改文件夹权限为hadoop
[hadoop@master opt]$ sudo chown -R hadoop:hadoop hbase
配置hbase环境变量
# 编辑.bash_profile 在文件末尾添加一下内容
#set hbase env
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin
创建data及pids目录
[hadoop@master hbase]$ mkdir data
[hadoop@master hbase]$ mkdir pids
编辑配置文件
在/opt/hbase/conf/hbase-env.sh
文件中添加以下内容:
# hbase-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_291
export HADOOP_HOME=/opt/hadoop
export HBASE_HOME=/opt/hbase
export HBASE_CLASSPATH=/opt/hadoop/etc/hadoo
export HBASE_PID_DIR=/opt/hbase/pids
export HBASE_MANAGES_ZK=false #不启动hbase自带的zookeeper集群
/opt/hbase/confhbase-site.xml
文件中添加以下内容:
启动
注意:单机版Hbase启动时,要确保zookeeper不在运行,因为Hbase和Zookeeper会运行在同一个JVM里面,如果zookeeper启动后,再启动Hbase,会报错:Could not start ZK at requested port of 2181. ZK was started at port: 2182
集群模式
节点规划
服务/机器 | master | slave1 | slave2 |
---|---|---|---|
NameNode | Y | ||
DataNode | <