zoukankan      html  css  js  c++  java
  • HBase基础和伪分布式安装配置

    一、HBase(NoSQL)的数据模型

    1.1 表(table),是存储管理数据的。

    1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定

    1.3 列族(column family),列的集合。

    一张表中有多个行健,一个行健读取出来的是一条记录,列族和MySQL中的列差不多,但是它是列的集合

    HBase中列族是需要在定义表时指定的,列是在插入记录时动态增加的。

    HBase表中的数据存储在本地磁盘上的时候,每个列族单独一个作为文件存储。

    上图表示HBase中表的一行

    和关系型数据库不同的是

    关系型数据库一行中每一个列的值只能是一个,如:

    UserId UserName

    1 JChubby

    而在NoSql中,一行里面某一个列的值可能是多个的,如上图,或者:

    UserId UserName

    1 JChubby

    Looky

    其中省略了timestamp时间戳这一列,但是在NoSql中读取这一行数据的出来时,数据应该是和关系型数据库读出来的是差不多的

    时间戳列起到了标识列数据版本的作用,当没有指定时间戳的时候默认取的是最新的列数据,具体请参照上图

    1.4 存储的数据都是字节数组。



    二、HBase的物理模型

    2.1 HBase是适合海量数据(如20PB)的秒级简单查询的数据库。

    2.2 HBase表中的记录,按照行键进行拆分, 拆分成一个个的region。

    如:在一个有1W行健的表中,每2K个行健拆分成一个region分别存储在不同的节点中,每个region记录着行健的起始位置和最终位置[startkey,endkey]

    许多个region存储在region server(单独的物理机器)中的。

    这样,对表的操作转化为对多台region server的并行查询。

    HBase中有两种特殊的表,分别是-ROOT和.META

    .META中记录着各个region的起止行健,当.META中的记录很大时,又会按照相同的规则拆分成不同的region记录中-ROOT表中

    如上图所示,当要查询数据时,先找-ROOT表中记录的region信息,找到对应的.META表中的region,在到实际的节点上的region查询数据



    三、HBase的体系结构

    3.1 HBase是主从式结构,HMaster、HRegionServer


    四、HBase伪分布安装

    HBase的安装是是建立在hadoop和zookeeper集群之上的

    安装时确保hadoop和zookeeper集群已安装成功并启动

    4.1 解压缩、重命名、设置环境变量

    把hbase-0.94.2-security.tar.gz复制到/home/hadoop

    解压hbase-0.94.2-security.tar.gz与重命名

    #cd /home/hadoop

    #tar -zxvf hbase-0.94.2-security.tar.gz

    #mv hbase-0.94.2-security hbase

    修改/etc/profile文件。

    #vi /etc/profile

    增加 

    export HBASE_HOME=/home/hadoop/hbase

    修改 

    export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin

    保存退出

    #source /etc/profile

    4.2 修改$HBASE_HOME/conf/hbase-env.sh,修改内容如下:

    export JAVA_HOME=/usr/java/jdk1.6.0_45

    export HBASE_MANAGES_ZK=true

    第一个配置java环境变量

    第二个配置在本机器上的HBase可以自己启动zookeeper和使用

    4.2 修改$HBASE_HOME/conf/hbase-site.xml,修改内容如下:

    <property>

     <name>hbase.rootdir</name>

     <value>hdfs://master:9000/hbase</value>

    </property>

    <property>

     <name>hbase.cluster.distributed</name>

     <value>true</value>

    </property>

    <property>

     <name>hbase.zookeeper.quorum</name>

     <value>master</value>

    </property>

    <property>

     <name>dfs.replication</name>

     <value>1</value>

    </property>

    hbase.rootdir配置在hdfs文件系统上hbase存储的路径

    hbase.cluster.distributed配置是否是分布式的

    hbase.zookeeper.quorum配置zookeeper在哪个节点上

    dfs.replication配置副本个数

    注意:hbase.rootdir的主机和端口号与hadoop的配置文件core-site.xml的fs.default.name的主机和端口号一致

    4.3 (可选)文件regionservers的内容为master,该文件记录regionserver的各个节点的主机名,因为是伪分布式安装,所只写一个,localhost或者主机名都可以

    4.4 启动hbase,在bin目录下执行命令start-hbase.sh

    ******启动hbase之前,确保hadoop是运行正常的,并且可以写入文件*******

    4.5 验证是否安装成功:

    (1)执行jps,发现新增加了3个java进程,分别是HMaster、HRegionServer、HQuorumPeer

    (2)使用浏览器访问http://master:16010,可以进入和hadoop类似的web管理页面

  • 相关阅读:
    JavaSE_11_File类、递归
    JavaSE_10_IO流
    leyou_07_对数据的操作
    JavaSE_09_Map
    JavaSE_08_Collections常用功能
    java 22
    java 22
    java 22
    java 22
    java 22
  • 原文地址:https://www.cnblogs.com/wxb20/p/6155718.html
Copyright © 2011-2022 走看看