hbase 概念 + 搭建分布式HA应用

19 篇文章 0 订阅
HBase - Hadoop Database

hbase的设计思想来自于google的bigtable

主键:Row Key
主键是用来检索记录的主键,访问Hbase table 中的行,只有三种方式
  1. 通过单个Row Key 访问
  2. 通过Row Key 的range
  3. 全表扫描

列族:Column Family
列族在创建表的时候声明,一个列族可以包含多个列,列中的数据都是以二进制形式存在,没有数据类型

时间戳:Timestamp
Hbase中通过row和columns确定的为一个存储单元称为cell,每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引  

查询记录时,不指定版本默认查询最新版本。


搭建distributed clusted & HA 步骤:

    目前集群情况:
              7台机器:hadoop-server01 ~ hadoop-server07
              NameNode:1,2有,  对外提供hdfs://ns1抽象路径,通过Zookeeper来控制Active以及standby节点
               DFSZKFailoverController(zkfc):用作监控NameNode节点,定时向Zookeeper汇报健康情况,所以只有1,2有
              DataNode:7台都有
              NodeManager:7台都有
              ResourceManager:3,4有
               QuorumPeerMain:Zookpeeper进程,5,6,7有
               JournalNode:共享NameNode的edits数据,也是5,6,7有
              
    待会hbase要实现的目标:
              1做HMaster(active),2和3做为HMaster(Backup),同时7台机器上都跑HRegionServer,实现HMaster(active)节点宕机后,自动通过Zookeeper实现切换
              

     export JAVA_HOME=/usr/java/jdk1.7.0_55
//告诉hbase使用外部的zk 
export HBASE_MANAGES_ZK=false
vim hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://ns1/hbase</value>
        </property>
<!-- 指定hbase是分布式的 -->
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
<!-- 指定zk的地址,多个用“,”分割 -->
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>hadoop-server05:2181,hadoop-server06:2181,hadoop-server07:2181</value>
        </property>
</configuration>
vim regionservers
  hadoop-server01
  hadoop-server02
  hadoop-server03
  hadoop-server04
  hadoop-server05
  hadoop-server06
  hadoop-server07

cd ~/app
scp_hadoop_many hbase/ $PWD

如果没有批量自动化脚本,也可以分别使用scp拷贝。

    分别在5,6,7机器上启动Zookeeper
         zkServer.sh start 

    启动hdfs集群
         start-dfs.sh          
    
    启动Hbase集群 (在1机器上启动)
         start-hbase.sh
      
      为了HA,我在2,3也启动了hbase Master
         hbase-daemon.sh start master
   现在就可以访问机器的60010查看hbase状态了。

    可以看到7个节点,并且有2个backup master 


    访问:60010/zk.jsp 可以查看Zookeeper Dump




附注:
    1.脚本 scp_hadoop_many
     #!/bin/bash

if [ $# -ne 2 ]
then
        echo "usage:<sourceFile> <targetFile>"
        exit 1
fi

ips=(hadoop-server02 hadoop-server03 hadoop-server04 hadoop-server05 hadoop-server06 hadoop-server07)

for ip in ${ips[*]}
do
        scp -r $1 hadoop@$ip:$2

done

附注:
    1.脚本 scp_hadoop_many
     #!/bin/bash

if [ $# -ne 2 ]
then
        echo "usage:<sourceFile> <targetFile>"
        exit 1
fi

ips=(hadoop-server02 hadoop-server03 hadoop-server04 hadoop-server05 hadoop-server06 hadoop-server07)

for ip in ${ips[*]}
do
        scp -r $1 hadoop@$ip:$2

done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值