Hbase作为Hadoop生态圈的一个组件,也是需要依赖Hadoop的,因此在安装Hbase之前需要先安装好Hadoop环境。
Hbase主要用于实时&&离线数据处理,处理数据快,存储量大,按列存储数据库,能够轻松处理亿级别是数据,Hbase的底层依赖于Hbase的HDFS。
Hbase作为noSql类型的数据库,没有关系型数据库的主键概念,变成了行键概念。
Hbase的安装
目前Hbase的的分类还是有CDH和Apache分类,下载好对应的分类。
由于Hbase也依赖于zk,因此也需要安装好zk
下载Apache版本的链接:
https://pan.baidu.com/s/1duNS76lh4gVYssmqYqX-Yw 密码:onwq
分布式主从架构
1、主节点:Master
负责管理型执行
2、从节点:RegionServer
负责具体的执行
安装步骤:
上传安装包到自己相对应的目录,主要修改这两个属性文件就可以了。
修改hbase-env.sh文件
指定Java的安装路径
export JAVA_HOME=/opt/moduels/jdk1.7.0_67
由于hbase自带了ZK的jar包,如果用户要使用自定义的ZK的话,需要更改为false
export HBASE_MANAGES_ZK=false
修改hbase-site.xml文件
指定临时目录的存放位置,和hadoop.tmp.dir相似
<property >
<name>hbase.tmp.dir</name>
<value>/opt/cdhmoduels/hbase-1.4.3/data/tmp</value>
</property>
指定hbase的数据文件存储在HDFS上的路径,就是RegionServer的共享目录
<property >
<name>hbase.rootdir</name>
<value>hdfs://hadoop.madman.com:8020/hbase</value>
</property>
指定hbase的运行模式,分布式模式,false就是单机,true就是分布式集群
<property >
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
指定Zookeeper的地址实例
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop.madman.com</value>
</property>
修改regionservers文件,指定从节点机器
hadoop.madman.com
备注
如果你下载的Hbase的版本和你的Hadoop的版本不一样的话,最好替换一下hbase下的lib中的Hadoop和zookeeper相关的jar进行替换,替换为对应版本的,一般高版本都兼容低版本。
####启动Hbae进程的进行,访问控制台
$ bin/hbase-daemon.sh start master
$ bin/hbase-daemon.sh start regionserver
Hbase启动之后zk的节点下面会生成相对应的文件
[zk: localhost:2181(CONNECTED) 2] ls /hbase
[meta-region-server, master-maintenance, backup-masters, switch, table, draining, region-in-transition, running, table-lock, master, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs, flush-table-proc]
[zk: localhost:2181(CONNECTED) 3]
访问地址:
http://hadoop.madman.com:16010/master-status
备注:1.4.3的版本web界面访问的端口号是16010
有些版本的端口号是:60010
可以去hbae-defaul.xml的配置文件里去看
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
<description>The port for the HBase Master web UI.
Set to -1 if you do not want a UI instance run.</description>
</property>
操作Hbase的命令和Hadoop的都差不多
[hadoop1@hadoop hbase-1.4.3]$ bin/hbase
[hadoop1@hadoop hbase-1.4.3]$ bin/hbase shell
通过上面这个命令进入shell命令
list:列出当前数据库中的表
list_namespace:列出当前数据库中的所有namespace