HBase随笔:
--------------
1、HBase数据存放在hdfs集群中,是一个大表,写操作使用MapReduce处理,将(增删改)处理结果放入HBase中,读就直接读HBase,
HBase的并发量在1000左右,常用的关系型数据库MySql的并发量在300到500之间,原因在于HBase启用了缓存技术.HBase中的块的单位是64k,
每次读取数据以块为单位加载数据到内存中,加载到内存中的数据形同一个散列表,散列表以Key-Value的键值对方式存储,HDFS中存储的数据
收到HBase的元数据管理,这种管理方式与Hive雷同,即HBase通过Zookeeper集群管理元数据,通过HDFS集群管理业务数据

2、数据存储以Region作为单位(行的集合),一个Region的默认大小为128M

3、因为HBase是基于键值对(读时以块为单位读)的一个NOSQL数据库,Redis的读写纯粹是基于键值对,Redis的并发量在十万左右,并发能力高,
但没有副本机制,数据容易丢失,而HBase基于HDFS集群,具有副本机制,数据安全度高

4、使用关联评估算法(属于机器学习)

HBase架构原理
-------------
1、客户端链接zookeeper集群,申请写数据
2、zookeeper返回一个地址列表给客户端
3、客户端根据地址列表链接slave节点写数据,并反馈状态
------------slave节点会主动上报存储状态及工况信息到master
------------master则主动将元数据上报zookeeper集群
4、客户端告知zookeeper记录和状态

 

HBase集群搭建与基础运维操作
--------------------------
A、安装HBase集群
---------------
A1、解压安装包
[hadoop@master01 install]$ tar -zxcf hbase-1.2.6-bin.tar.gz -C /software/

A2、系统配置环境变量

#配置/etc/profile
   [hadoop@master01 software]$ su -lc "vi /etc/profile"
   JAVA_HOME=/software/jdk1.7.0_79
   HADOOP_HOME=/software/hadoop-2.7.3
   HBASE_HOME=/software/hbase-1.2.6
   PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
   export PATH JAVA_HOME HADOOP_HOME HBASE_HOME

#分发系统配置文件

[hadoop@master01 software]$ su -lc "scp -r /etc/profile slaver03:/etc/"
   [hadoop@slaver03 software]$ source /etc/profile



配置HBase集群文件

-----------------
   [hadoop@master01 software]$ cd hbase-1.2.6/conf/
   [hadoop@master01 conf]$ vi hbase-env.sh
   --------
   29  export JAVA_HOME=/software/jdk1.7.0_79
   132 export HBASE_MANAGES_ZK=false
   --------
   [hadoop@master01 conf]$ vi hbase-site.xml
   指定
   <configuration>
     <property>
         <name>hbase.rootdir</name>
         <value>hdfs://ns1/userase</value>
     </property>



指定HBase为分布式

<property>
         <name>hbase.cluster.distributed</name>
         <value>true</value>
    </property>


指定zookeeper集群节点

<property>
         <name>hbase.zookeeper.quorum</name>
         <value>slaver01:2181,slaver02:2181,slaver03:2181</value>
    </property>
   </configuration>



指定HBase从节点:

[hadoop@master01 conf]$ vi regionservers
   [hadoop@master01 conf]$ cat regionservers 
   slaver01
   slaver02
   slaver03



#将hbase安装环境拷贝到三个从节点上:
[hadoop@master01 software]$ scp -r hbase-1.2.6/ slaver01:/software/
#将hdfs的配置文件放到hbase安装目录下的conf路径下(每个节点都要操作);
[hadoop@master01 software]$ cp -a /software/hadoop-2.7.3/etc/hadoop/{core-site.xml,hdfs-site.xml} /software/hbase-1.2.6/conf/

B、启动zookeeper集群:
[hadoop@slaver01 software]$ cd zookeeper-3.4.10/bin/ && ./zkServer.sh start
C、启动HDFS集群:
[hadoop@master01 software]$ start-dfs.sh
D、启动HBase:
[hadoop@master01 software]$ start-hbase.sh
在master02上启动HBase:
[hadoop@master02 software]$ hbase-daemon.sh start master
手动启动slaver节点上的 regionserver进程:
[hadoop@slaver01 software]$ hbase-daemon.sh start regionserver
E、在终端查看:
http://master01:16010/