认识HBase

HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,该技术来源于Google论文“Bigtable:一个结构化数据的分布式存储系统”。利用HBase技术可在廉价PC Server上搭建大规模结构化存储集群。

HBase是Google Bigtable的开源实现,与Google Bigtable利用GFS作为其文件存储系统类似,HBase利用Hadoop HDFS作为其文件存储系统;Google 运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。

特点:

  • 大:一个表可以有上亿行,上百万列。
  • 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
  • 稀疏:对于空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

前期准备

  • HBase依赖于Zookeeper,所以要安装好Zookeeper
  • 下载HBase。不同的Hadoop版本支持不同版本的HBase,可根据Hadoop版本在官方网站进行查询对应支持的HBase版本。官方地址

1. 解压HBase

#直接解压HBase压缩包
tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C /hadoop/app

2. 修改3个配置文件(配置文件目录:hbase-0.96.2-hadoop2/conf/)

  • 修改HBase运行环境变量,修改文件hbase-env.sh

vim hbase-env.sh

#修改原文件中 #export JAVA_HOME=/usr/java/jdk1.6.0为
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_65 #关闭hbase自带的zk,使用外部zk
#将原文件中#export HBASE_MANAGES_ZK=true修改为
export HBASE_MANAGES_ZK=false
  • 修改hbase-site.xml

vim hbase-site.xml

<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property> <!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property> <!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master:2181,slave1:2181,slave2:2181</value>
</property>
</configuration>
  • 修改regionservers文件

vim regionservers
#清除原来内容,修改为
master
slave1
slave2

3. 将hadoop的hdfs-site.xmlcore-site.xml 放到hbase/conf

因为在hbase-site.xml下指定了hdfs文件系统的路径,所以要将这两个含有hdfs配置的文件做拷贝

#在hbase-0.96.2-hadoop2/conf/下执行以下命令

cp ~/app/hadoop-2.4.1/etc/hadoop/{core-site.xml,hdfs-site.xml} ./

4. 拷贝HBase到其他节点

scp -r hbase-0.96.2-hadoop2/ slave1:/home/hadoop/app
scp -r hbase-0.96.2-hadoop2/ slave2:/home/hadoop/app

5. 启动HBase

  • 在三个节点上分别启动Zk

#在三个节点的zookeeper/bin目录下分别执行
./zkServer.sh start
  • 启动HDFS

#在master节点上执行
start-dfs.sh
  • 启动HBase(在主节点上运行,这里选master作为主节点)

#在HBase的bin目录下执行
./start-hbase.sh

6. 验证

  • 若启动成功,在master上执行jps命令可查看到Hmaster进程,在另外两个节点上执行jps则可以查看到HRegionServer进程
  • 若启动成功,可通过浏览器访问HBase管理页面
    192.168.1.201:60010
    注:若HMaster进程启动不成功,首先分别在集群主机中使用date命令,检查集群时间是否同步。然后检查/etc/hosts文件,将127.0.0.1的ip地址改为本地的真实地址,例192.168.1.201

7. 提高可靠性

HMaster主要负责Table表HRegion的管理工作,为保证集群的可靠性,要启动多个HMaster.

#在slave1节点上,HBase的bin目录下执行
./hbase-daemon.sh start master

若启动成功,可在jps命令执行结果中查看到HMaster进程。

HBase安装和启动的更多相关文章

  1. HBase安装及简单使用

    通过之前的hadoop0.20.2的安装并调试成功,接下来我们继续安装hbase0.90.5.在安装hbase0.90.5之前,因为hbase0.90.5只支持jdk1.6,所以,我把之前的jdk1. ...

  2. Hbase安装配置(靠谱亲测)

    Hbase是Hadoop生态系统中的NoSql列式数据库.通过Hbase,可以进行数据读写,比较适合Top n场景.Hbase搭建的系统,瓶颈在于硬盘的传输速度.RDBMS一般的瓶颈在于寻道速度. 实 ...

  3. hbase安装

    HBase的安装 本篇介绍两种HBase的安装方式:本地安装方式和伪分布式安装方式. 安装的前提条件是已经成功安装了hadoop,而且hadoop的版本要和hbase的版本相匹配. 我将要安装的hba ...

  4. Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型

    Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', ...

  5. HBase安装inAction

    在安装Hbase之前,需要有hadoop的运行环境,关于hadoop的安装过程,请查看我之前的blog:hadoop安装笔记:或者另一个博主的超详细文章http://weixiaolu.iteye.c ...

  6. hbase安装配置(整合到hadoop)

    hbase安装配置(整合到hadoop) 如果想详细了解hbase的安装:http://abloz.com/hbase/book.html 和官网http://hbase.apache.org/ 1. ...

  7. hbase总结(二)-hbase安装

    本篇介绍两种HBase的安装方式:本地安装方式和伪分布式安装方式. 安装的前提条件是已经安装成功了hadoop,并且hadoop的版本号要和hbase的版本号相匹配. 我将要安装的hbase是hbas ...

  8. 大数据: 完全分布式Hadoop集群-HBase安装

            HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境.   本文基 ...

  9. 指导手册06:HBase安装部署

    指导手册06:HBase安装部署 配置环境 1.参考文件: https://www.cnblogs.com/lzxlfly/p/7221890.html https://www.cnblogs.com ...

随机推荐

  1. PHP:第五章——字符串加密及校验函数

    <?php header("Content-Type:text/html;charset=utf-8"); //1.md5——计算字符中的散列值 //对一段信息(Messag ...

  2. checkbox选中的问题(Ajax.BeginForm)

    判断checkbox选中的方法方法一:if ($("#checkbox-id")get(0).checked) { // do something} 方法二:if($('#chec ...

  3. idea常用实用快捷键

    Ctrl+Alt+方向键(左键,右键),返回上次查看的位置.(这个快捷键和window本身快捷键冲突,需要关闭windows 对应快捷键功能,参考博客:https://blog.csdn.net/u0 ...

  4. android中自定义view构造函数ContentItemView(Context context, AttributeSet paramAttributeSet)的用处

    自己定义一个view <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...

  5. <NET CLR via c# 第4版>笔记 第10章 属性

    10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 属性可以只读或只写,而字段访问总是可读和可写的(一个例外是 readonly 字段仅在构造器中可写). 属性方法可能抛出异 ...

  6. I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking

    <!-- * Copyright (C) 2010-2013, Freescale Semiconductor, Inc. All Rights Reserved. * The CFG elem ...

  7. POJ1651 Multiplication Puzzle【区间DP】

    LINK 每次删除一个数,代价是左右两边相邻的数的当前数的积 第一个和最后一个数不能删除 问最后只剩下第一个数的最后一个数的最小代价 思路 很简单的DP 正着考虑没有办法确定两边的数 那么就把每个区间 ...

  8. test20181021 快速排序

    题意 对于100%的数据,\(n,m \leq 10^5\) 分析 考场上打挂了. 最大值就是后半部分和减前半部分和. 最小是就是奇偶相减. 方案数类似进出栈序,就是catalan数 线段树维护即可, ...

  9. cocos2dx ui显示机制

    实验1 1,a.addChild(b); a的宽高没变,还是自己的宽高. 层级添加  不会改变原层大小. 2.node.addChild(sprite);node的宽和高也没变 感觉2dx的显示不是树 ...

  10. nginx rewrite规则实例讲解

    一.正则表达式匹配,其中: * ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中:* -f和!-f用来判断是否存在文 ...