アーキテクチャと展開のインストールチュートリアルのHBaseの原則

1. HBaseのは何ですか

1.1 HBaseのコンセプト

  • HBaseのは、GoogleのBigTableの論文に基づいて、上に構築されています== == HDFSが提供する高い信頼性高性能カラムストアスケーラブルリアルタイムの読み書き分散データベースシステムを。
  • あなたは、リアルタイムの読み取りを必要とし、ランダムアクセス== ==超大規模なデータセットを作成するときは、HBaseのを使用することができます。

1.2 HBaseの特徴

  • == マスストレージ ==
    • あなたは、大量のデータを保存することができます
  • == 柱状ストレージ ==
    • HBaseのデータテーブルは、列グループに基づいて格納され、グループは、列の列方向に分割されます。
  • == 簡単に拡張 ==
    • ディスク容量不足、唯一のデータノードすることができ、ダイナミックノードを増やす必要がある場合HDFSを、依存している根底に
    • これは、サーバを追加することで、クラスタの拡大に保存することができます
  • == 高い同時実行 ==
    • 高い同時読み取りおよび書き込み要求をサポート
  • == スパース ==
    • スパース主に柔軟性HBaseの列に、列の家族は、あなたが任意の数の列を指定することができ、空の場合は、列のデータは、ストレージスペースを取ることはありません。
  • == データの複数のバージョン ==
    • HBaseのデータテーブルは、複数のバージョンの値を持つことができ、デフォルトはバージョン番号によって区別され、バージョン番号が挿入されたタイムスタンプデータであります
  • == データは、単一のタイプ ==
    • すべてのデータは、HBaseの== ==バイト配列に格納されます

2、HBaseの日のアーキテクチャ

ここに画像を挿入説明

2.1 Client客户端

  • Client是操作HBase集群的入口
    • 对于管理类的操作,如表的增、删、改操纵,Client通过RPC与HMaster通信完成
    • 对于表数据的读写操作,Client通过RPC与RegionServer交互,读写数据
  • Client类型:
    • HBase shell
    • Java编程接口
    • Thrift、Avro、Rest等等

2.2 ZooKeeper集群

  • 作用

    • 实现了HMaster的高可用,多HMaster间进行主备选举

    • 保存了HBase的元数据信息meta表,提供了HBase表中region的寻址入口的线索数据

    • 对HMaster和HRegionServer实现了监控

2.3 HMaster

  • HBase集群也是主从架构,HMaster是主的角色,是老大
  • 主要负责Table表和Region的相关管理工作:
  • 关于Table
    • 管理Client对Table的增删改的操作
    • 关于Region
    • 在Region分裂后,负责新Region分配到指定的HRegionServer上
    • 管理HRegionServer间的负载均衡,迁移region分布
    • 当HRegionServer宕机后,负责其上的region的迁移

2.4 HRegionServer

  • HBase集群中从的角色
  • 作用

    • 响应客户端的读写数据请求
    • 负责管理一系列的Region
    • 切分在运行过程中变大的region

2.5 Region

  • HBase集群中分布式存储的最小单元
  • 一个Region对应一个Table表的部分数据

3、HBase数据模型

ここに画像を挿入説明

3.1 rowkey行键

  • table的主键,table中的记录按照rowkey 的字典序进行排序
  • Row key行键可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes)

3.2 Column Family列族

  • 列族或列簇
  • HBase表中的每个列,都归属与某个列族
  • 列族是表的schema的一部分(而列不是),即建表时至少指定一个列族
  • 比如创建一张表,名为user,有两个列族,分别是infodata,建表语句create 'user', 'info', 'data'

3.3 Column列

  • 列肯定是表的某一列族下的一个列,用列族名:列名表示,如info列族下的name列,表示为info:name
  • 属于某一个ColumnFamily,类似于我们mysql当中创建的具体的列

3.4 cell单元格

  • 指定row key行键、列族、列,可以确定的一个cell单元格
  • cell中的数据是没有类型的,全部是以字节数组进行存储
    ここに画像を挿入説明

    3.5 Timestamp时间戳

  • 可以对表中的Cell多次赋值,每次赋值操作时的时间戳timestamp,可看成Cell值的版本号version number
  • 即一个Cell可以有多个版本的值

    4、HBase安装部署

    4.1、下载安装包

    下载地址:https://archive.apache.org/dist/hbase/1.2.1/

    4.2、安装Hbase

    解压到安装目录: tar -zxcf habse-1.2.1-bin.tar.gz -C /opt/bigdata2.7
    重命名解压目录:mv hbase-1.2.1 hbase

    4.3、修改配置文件

    1、需要把hadoop中的配置文件core-site.xml,hdfs-site.xml拷贝到hbase安装目录下的conf文件夹中
    2、修改conf目录下的配置文件
    (1)修改hbase-env.sh
    #添加java环境变量<br/>export JAVA_HOME=/kkb/install/jdk1.8.0_141<br/>export HBASE_MANAGES_ZK=false`

(2)修改 hbase-site.xml

<configuration>
    <!--指定hbase在HDFS上的存储路径-->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://node01:8020/hbase</value>
    </property>
    <!--指定hbase是分布式的-->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
      <!--指定zk的地址,多个用,分割-->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>node01:2181,node02:2181,node03:2181</value>
    </property>  
</configuration>

(3)変更regionservers

vimのregionservers
node02
node03

(4)変更バックアップ・マスター

node2

3、構成環境変数のHBase

viのは/ etc / profile

export HBASE_HOME=/opt/bigdata2.7/hbase
export PATH=$PATH:$HBASE_HOME/bin

4.4、別のノードにHBaseのディレクトリを配布

habaseディレクトリを入力します。cd /opt/bigdata2.7
scp -r hbase node2:/opt/bigdata2.7
scp -r hbase node3:/opt/bigdata2.7
scp /etc/profile node2:/etc
scp /etc/profile mpde3:/etc

すべてのノードを有効にするには、環境変数をHBaseのように4.5、

すべてのノードで実行します。
ソースは/ etc / profileを

5、HBaseのクラスターの開始および停止

(1)スタート
の前提条件:最初のスタートHadoopクラスタとクラスタ飼育係
開始HBaseの
start-hbase.sh

(2)停止
stop-hbase.sh
プロファイルmpde3:/ etc`

すべてのノードを有効にするには、環境変数をHBaseのように4.5、

すべてのノードで実行します。
ソースは/ etc / profileを

5、HBaseのクラスターの開始および停止

(1)スタート
の前提条件:最初のスタートHadoopクラスタとクラスタ飼育係
開始HBaseの
start-hbase.sh

(2)停止
stop-hbase.sh

おすすめ

転載: blog.51cto.com/10312890/2470452