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:60010,可以进入和hadoop类似的web管理页面

  • 相关阅读:
    剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
    剑指 Offer——3. 从尾到头打印链表
    剑指 Offer——2. 替换空格
    剑指 Offer——1. 二维数组中的查找
    LeetCode 905. Sort Array By Parity 按奇偶校验排列数组
    LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
    SSH 代码笔记
    anaconda3安装caffe
    opencv多版本安装
    人脸文章与数据库
  • 原文地址:https://www.cnblogs.com/jchubby/p/4429696.html
Copyright © 2011-2022 走看看