HBase数据库
-----------------------------
1.Hbase是在HDFS上面向列的分布式的数据库;
HBase首先是数据库,分布式的,面向列的,<首选在HDFS基础上>;
Google发布三篇论文:GFS、MapReduce、BigTable开启分布式存储和计算的纪元;
hdfs+MapRedece(Hadoop)解决离线分析;HBase解决实时处理业务需求;
2.HBase不是关系型数据库,它不支持SQL;
3.列簇(Column family):
物理上,列簇存储在文件系统中,面向列簇的存储器;
创建table时,必须制定列簇,列簇的中列可随时增加;
针对调优和存储考虑,需将列簇成员设置成相同的访问权限和大小特征;
安装步骤: --完全分布式搭建
a.下载Hbase版本:
说明:HBase版本选型为:1.3.1版本【hbase-1.3.1-bin.tar.gz】
b.解压HBase:
$>tar -zxvf hbase-1.3.1-bin.tar.gz
$>ln -s hbase-1.3.1/ hbase
c.设置环境变量:
【~/.bash_profile】中追加一下命令:
【gedit .bash_profile】
#hbase install
export HBASE_HOME=/home/hyxy/soft/hbase
export PATH=$HBASE_HOME/bin:$PATH
d.修改HBase配置文件
【hbase-env.sh】
export JAVA_HOEM=/home/hyxy/soft/jdk //jdk版本需要在1.7以上
【hbase-site.xml】
【hbase-site.xml】
<property >
<name>hbase.tmp.dir</name>
<value>/home/hyxy/tmp/hbase</value>
</property>
<property >
<name>hbase.rootdir</name>
<value>hdfs://mycluster/hbase</value> //在HDFS上会出现hbase,即
master:50070
</property>
<property >
<name>hbase.cluster.distributed</name>
<value>true</value> //是否集群分布式
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value> //zookeeper的journalnode
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hyxy/tmp/zookeeper</value>
//寻找的是自己配的zookeeper服务,不用自带的zookeeper
</property>
还有:修改 ~/soft/hbase/conf/的 regionservers
$>gedit regionservers
添加里面的内容:【三个节点的主机名】
master
slave1
slave2
e.分发至所有节点
$>scp -r ~/soft/hbase-1.3.1/ hyxy@slave1:~/soft/
$>scp -r ~/soft/hbase-1.3.1/ hyxy@slave2:~/soft/
f.创建软连接,
$>ln -s hbase-1.3.1/ hbase
g.修改环境变量
#hbase install
export HBASE_HOME=/home/hyxy/soft/hbase
export PATH=$HBASE_HOME/bin:$PATH
I. 修改配置项:三个节点都需要修改
1).将hadoop的hdfs-site.xml和core-site.xml拷贝至{HBASE_HOME/conf/}路径下【~/soft/hbase/conf】;
原因:hbase shell 进去之后,status之后,会报mycluster正在初始化,是因为hbase-site.xml
定义的hdfs://mycluster/hbase找不到对应的mycluster.
另一种解决:或者将hdfs-site.xml和core-site.xml的属性项都添加到hbase-site.xml中也行。
2).修改hbase-env.sh文件的{export HBASE_MANAGES_ZK=false}
原因:主要是是为了开启HBase中的zookeeper,不用它自带的zookeeper,而用
我们配置的zookeeper。
J.开启服务:
$>zkServer.sh start //在Zk集群节点上执行
$>start-dfs.sh
$>start-hbase.sh
K. 测试:
$>hbase shell
status //查看状态
注意:开启HBase服务之前必须要保证zookeeper服务好使,它是辅助HBase的。