zookeeper的shell操作
启动zookeeper:zkServer.sh start 进入zookeeper:zkCli.sh
hbase配置
HBase(NoSQL)的数据模型
1.1 表(table),是存储管理数据的。
1.2 行键(row key),类似于MySQL中的主键。 行键是HBase表天然自带的。 1.3 列族(column family),列的集合。
HBase中列族是需要在定义表时指定的,列是在插入记录时动态增加的。 HBase表中的数据,每个列族单独一个文件。
1.4 时间戳(timestamp),列(也称作标签、修饰符)的一个属性。
行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。
如果不指定时间戳或者版本,默认取最新的数据。 1.5 存储的数据都是字节数组。
1.6 表中的数据是按照行键的顺序物理存储的。
2.HBase的物理模型
2.1 HBase是适合海量数据(如20PB)的秒级简单查询的数据库。 2.2 HBase表中的记录,按照行键进行拆分,拆分成一个个的region。 许多个region存储在region server(单独的物理机器)中的。 这样,对表的操作转化为对多台region server的并行查询。
3.HBase的体系结构
3.1 HBase是主从式结构,HMaster、HRegionServer
HBase的伪分布
1. 在Master上解压缩Hbase压缩文件到/usr里面 重命名为:hbase
在/etc/profile中设置环境变量:HBASE_HOME,PATH 如下:
[html] view plain copy
1. #set java & hadoop 2.
3. export JAVA_HOME=/usr/jdk 4.
5. export HADOOP_HOME=/usr/hadoop 6.
7. export ZOOKEEPER_HOME=/usr/zookeeper 8.
9. export HBASE_HOME=/usr/hbase
10.
11. export PATH=.:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$JAVA_HOM
E/bin:$PATH
注:修改完成后记得source /etc/profile
2. 修改文件$HBASE_HOME/conf/hbase-env.sh,修改内容如下
[html] view plain copy
1. export JAVA_HOME=/usr/jdk 2.
3. export HBASE_MANAGES_ZK=true
注意:伪分布式,是使用Hbase自带的zookeeper。 所以export HBASE_MANAGES_ZK=true 为true。 如果要使用自己安装的zookeeper的话,就设置为false
3. 修改文件hbase-site.xml,修改内容如下
[html] view plain copy
1.
3.
5.
7. 8.
9.
10.
11.
13.
15. 16.
17.
19.
21.
23. 24.
25.
27.
29.
31.
注意:因为是伪分布式,所以是在一台机器上的。所以这里要设置副本数为1.不然就会报错。
1.
3.
5.
7.
如果机器数超过3台,那么可以使用默认设置(默认副本数为3)(默认的话就不需要写上面的设置)
4. (可选)修改、usr/hbase/regionservers,(伪分布可以不配置)
5. 启动,执行命令start-hbase.sh
注意:启动hbase之前要先启动hadoop,确保hadoop可写入数据。
HBase的完全分布集群
1.hbase的机群搭建过程(在原来的Master上的hbase伪分布基础上进行搭建)
1.1 集群结构,主节点(hmaster)是Master,从节点(region server)是Slave01和Slave02,Slave03 1.2 修改Master上的hbase的几个文件
(1)修改hbase-env.sh的最后一行export HBASE_MANAGES_ZK=false (2)修改hbase-site.xml文件的hbase.zookeeper.quorum的值为Master,Slave01,Slave02,Slave03
(3)修改regionservers文件(存放的region server的hostname),内容修改为: (里面把Slave机器的主机名都写进去)
1. Slave01 2. 3. Slave02 4.
5. Slave03
1.3 复制Master中的hbase文件夹到Slave01和Slave02,Slave03中 Scp –r /usr/hbase root@192.168.137.101