HBase,
HBase简介
HBase的发展史
2006年底由PowerSet 的Chad Walters和Jim Kellerman 发起,2008年成为Apache Hadoop的一个子项目。现已作为产品在多家企业被使用,如:
WorldLingo
Streamy.com
OpenPlaces
Yahoo!
Adobe
淘宝
Facebook
Twitter
Trend Micro
Hbase是什么
HBase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用HBase。
尽管已经有许多数据存储和访问的策略和实现方法,但事实上大多数解决方案,特别是一些关系类型的,在构建时并没有考虑超大规模和分布式的特点。许多商家通过复制和分区的方法来扩充数据库使其突破单个节点的界限,但这些功能通常都是事后增加的,安装和维护都和复杂。同时,也会影响RDBMS的特定功能,例如联接、复杂的查询、触发器、视图和外键约束这些操作在大型的RDBMS上的代价相当高,甚至根本无法实现。
HBase从另一个角度处理伸缩性问题。它通过线性方式从下到上增加节点来进行扩展。HBase不是关系型数据库,也不支持SQL,但是它有自己的特长,这是RDBMS不能处理的,HBase巧妙地将大而稀疏的表放在商用的服务器集群上。
HBase 是Google Bigtable 的开源实现,与Google Bigtable 利用GFS作为其文件存储系统类似, HBase 利用Hadoop HDFS 作为其文件存储系统;Google 运行MapReduce 来处理Bigtable中的海量数据, HBase 同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable 利用Chubby作为协同服务, HBase 利用Zookeeper作为对应。
HBase的特点
大:一个表可以有上亿行,上百万列。
面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。
数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。
数据类型单一:HBase中的数据都是字符串,没有类型。
1首先我们去官网下载hbase
点击它下载就可以了。
2上传hbase
下面我们用winSCP或者mobaxterm把hadoop传输到一台虚拟机上的/usr/local/目录下,用软件连接后,选到/usr/local/目录拖进去就可以了
3解压hadoop并配置环境变量
切换到/usr/local/目录下,执行命令
tar -zxvf hbase-2.0.2.tar.gz
1
解压完成后,配置环境变量
vi /etc/profile
在末尾加入以下内容
export HBASE_HOME=/usr/local/hbase-2.0.2
export PATH=HBASE_HOME/bin:/$HBASE_HOME/sbin
4修改hadoop中的一系列配置文件
执行命令 cd /usr/local/hbase-2.0.2/conf/ 切换到配置文件目录
4.1配置hbase-env.sh文件
执行命令vi hbase-env.sh
修改以下内容,并取消原文注释(#)
export JAVA_HOME=/usr/local/jdk1.8.0_181/
export HBASE_CLASSPATH=/usr/local/hadoop-2.8.3/etc/hadoop
export HBASE_MANAGES_ZK=false
添加以下内容
export TZ=“Asia/Shanghai”
1
4.2配置hbase-site.xml文件
执行命令 vi hbase-site.xml
在节点内加入配置:
注:文章中的mini1,mini2,mini3请修改为自己的主机名或者ip地址
hbase.rootdir
<!– 如果要指定HDFS上的目录,端口号要与hdfs-site.xml中设为一致–>
hdfs://mini1:9000/hbase
hbase.cluster.distributed
true
hbase.master.info.port
16010
hbase.regionserver.info.port
16030
hbase.zookeeper.quorum
mini1:2181,mini2:2181,mini3:2181
hbase.zookeeper.property.dataDir
/usr/local/hbase-2.0.2/tmp/zk/data
hbase.coprocessor.abortonerror
false
4.3配置regionservers文件
执行命令 vi regionservers
添加以下内容(即hadoop中配置的两个datanode的主机名)
注:文章中的mini1,mini2,mini3请修改为自己的主机名或者ip地址
mini2
mini3
5将hbase传输至其他虚拟机
注:文章中的mini1,mini2,mini3请修改为自己的主机名或者ip地址
scp -r /usr/local/hbase-2.0.2 root@mini2:/usr/local/
scp -r /usr/local/hbase-2.0.2 root@mini3:/usr/local/
6为另外两台虚拟机配置hbase的环境变量
参考3中的配置方法
记得执行 source /etc/profile 使环境变量生效
7启动hbase
注:在启动hbase前,先启动zookeeper和hadoop
在master机器上(mini1)执行命令
start-hbase.sh
1
如果要关闭hbase ,可以执行命令stop-hbase.sh
8测试hbase
打开浏览器(不要用IE或者Edge建议谷歌浏览器或火狐浏览器)
通过下面的链接来测试,如果不行可以关闭linux防火墙再试一次
注:文章中的mini1,mini2,mini3请修改为自己的主机名或者ip地址