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

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实现切换

1.把机器上hadoop的配置文件(core-site.xml,hdfs-site.xml)拷贝到hbase的conf下面,这样如果HDFS本身是基于NameNode二次抽象成的NameServices就不需要再配置了,也可以不用拷贝。直接把配置再写一遍也可以.

2.修改hbase-env.sh

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

3.复制到其他节点(这里我用了自定义脚本)

cd ~/app

scp_hadoop_many hbase/ $PWD

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

4.启动HDFS和Zookeeper,Hbase

分别在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 [email protected]$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 [email protected]$ip:$2

done

时间: 2024-11-05 10:05:17

hbase 概念 + 搭建分布式HA应用的相关文章

HBase的完全分布式的搭建与部署,以及多master

HBase的完全分布式的搭建与部署,以及多master 一:前提准备 1.设置时间同步 2.清空logs,datas 3.格式化集群 bin/hdfs namenode -format 4.重启集群 sbin/start-dfs.sh sbin/start-yarn.sh 5.删除zookeeper下的data,并新建zkData 6.在zkData下新建myid 7.分发,后,修改每一个myid 8.重启zookeeper bin/zkServer.sh start 二:hbase的修改 1.

Hadoop HA + HBase环境搭建(一)————zookeeper和hadoop环境搭建

版本信息: Hadoop 2.6.3 HBase 1.0.3 JDK 1.8 Zookeeper 3.4.9 集群信息: RDFMaster 192.168.0.41 (Hadoop主节点,zk节点,HBase主节点) RDFSlave01 192.168.0.42 (Hadoop备份主节点,从节点,zk节点,HBase的RegionServer) RDFSlave02 192.168.0.43 (从节点,zk节点,HBase的RegionServer) RDFSlave03 192.168.0

Hbase的伪分布式安装

Hbase安装模式介绍 单机模式 1> Hbase不使用HDFS,仅使用本地文件系统 2> ZooKeeper与Hbase运行在同一个JVM中 分布式模式– 伪分布式模式1> 所有进程运行在同一个节点上,不同进程运行在不同的JVM当中2> 比较适合实验测试– 完全分布式模式1> 进程运行在多个服务器集群中2> 分布式依赖于HDFS系统,因此布署Hbase之前一定要有一个正常工作的HDFS集群 Linux环境准备 关闭防火墙和SELinux # service iptab

【HBase基础教程】2、HBase之完全分布式模式安装

上一篇blog我们介绍了Hbase的单机模式安装与伪分布式的安装方式,本篇blog我们将详细介绍如何搭建hbase完全分布式环境,搭建hbase完全分布式环境的前提是我们已经搭建好了hadoop完全分布式环境,搭建hadoop完全分布式环境请参考:[Hadoop基础教程]4.Hadoop之完全分布式环境搭建 开发环境 硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点) 软件环境:Java 1.7.0_45.Eclipse Juno Service Rele

Hadoop集群之 ZooKeeper和Hbase环境搭建

前面讲解了Hadoop完全分布式的搭建,本章主要讲解一下在Hadoop完全分布式已经搭建成功的情况下搭建ZooKeeper和Hbase环境 所有软件下载百度云 密码:uup8 讲在开头:对于笔者的完全分布式环境请见该文:Hadoop完全分布式安装 1.ZooKeeper和Hbase的简答介绍: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包

HBase 高可用(HA)

HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行. 所以这里要配置HBase高可用的话,只需要启动两个HMaster,让Zookeeper自己去选择一个Master Acitve. HBase配置: 在$HBASE_HOME/conf目录下 1.hbase-site.xml  export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryE

Hadoop分布式HA的安装部署

[toc] Hadoop分布式HA的安装部署 前言 单机版的Hadoop环境只有一个namenode,一般namenode出现问题,整个系统也就无法使用,所以高可用主要指的是namenode的高可用,即存在两个namenode节点,一个为active状态,一个为standby状态.如下图: 说明如下:HDFS的HA,指的是在一个集群中存在两个NameNode,分别运行在独立的物理节点上.在任何时间点,只有一个NameNodes是处于Active状态,另一种是在Standby状态. Active

Hbase概念

Hbase简介 Hbase是一个分布式的, 面向列的开源数据库, 该技术来源于Chang et al所撰写的Google论文"Bigtable: 一个结构化数据的分布式存储系统" 就像Bigtable利用了Google文件系统( File System ) 所提供的分布式数据存储一样, Hbase在Hadoop之上提供了类似于Bigtable的能力 Hbase是Apache的Hadoop项目的子项目 Hbase不同于一般的关系数据库, 它是一个适合于非结构化数据存储的数据库, 另一个不

MapReduce生成HFile文件,再使用BulkLoad导入HBase中(完全分布式运行)

声明: 若要转载, 请标明出处. 前提: 在对于大量的数据导入到HBase中, 如果一条一条进行插入, 则太耗时了, 所以可以先采用MapReduce生成HFile文件, 然后使用BulkLoad导入HBase中. 引用: 一.这种方式有很多的优点: 1. 如果我们一次性入库hbase巨量数据,处理速度慢不说,还特别占用Region资源, 一个比较高效便捷的方法就是使用 "Bulk Loading"方法,即HBase提供的HFileOutputFormat类. 2. 它是利用hbase