第一部分:hbase概念
1、HBase是一个分布式的、面向列的开源数据库,建立在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
在hbase中一张表基于列族建立,每个列族中又包含了多个列,每行数据包含行键作为唯一标识。
2、hbase和hive的区别?
hbase是一个真正的数据库,用来存储数据,可以当做mysql理解,只不过非关系型,数据量大的多
hive是一个数据分析的工具,hql语句会被编译转换为一个mapreduce程序(事先写好的),将其提交给底层的yarn集群运行该程序。将结果返回当前界面
- hbase的运行原理
hbase集群的角色可以分成master和regionserver。Master中不存储数据,主要负责regionserver的负载均衡,为regionserver分配region,管理失效的regionserver和用户的增删改操作。而regionserver中会有多个region用来存放数据。Region又可以分为3部分:store、memstore、storefile。一个store对应一个列族,数据缓冲在memstore,缓冲区满了以后导入到storefile中,多个小的storefile会被合并成一个大的storefile。
由于数据量非常大,为了便于查找就建立了多级索引meta和root,将存储数据的信息记录在上面。各个节点注册到zookeeper上由其调度管理。
Zookeeper集群:一个leader和多个follower,leader可读可写,follower这能读取信息
第二部分:Zookeeper集群和hbase集群的搭建(建立在Hadoop集群之上,具体搭建参照Hadoop的文章)
1、搭建zookeeper
解压
cd zookeeper-3.4.5/
cd conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/home/hadoop/cluster/zookeeper-3.4.5/data 存放数据的目录
server.1=haitong-1:2888:3888
server.2=haitong-2:2888:3888
server.3=haitong-3:2888:3888
创建data目录,其内创建文件myid,内容为1
echo '1' >myid
用scp命令将配置好的zookeeper发送到另外两台节点上
scp -r zookeeper-3.4.5 hadoop@haitong-2:/home/hadoop/
echo '2' >myid
scp -r zookeeper-3.4.5 hadoop@haitong-3:/home/hadoop/
echo '3' >myid
启动zookeeper---三个节点分别启动
./zkServer.sh start 启动zookeeper
./zkServer.sh status 查看zookeeper状态 是leader还是follower
./zkCli.sh 启动zookeeper客户端,进入命令行
zookeeper命令
ls / 基本信息
ls2 / 详细信息
create /test "helohello" 创建节点 /test, 节点存储内容为 "hellohello"
get /test 查看节点的内容
set /test "wowowo" 设置节点内容
delete /test 删除节点
quit 退出命令