`
landyer
  • 浏览: 142571 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HBase入门篇4–存储

阅读更多

作者: H.E. | 您可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 
网址: http://www.javabloger.com/article/apache-hbase-hadoop.html

 

前几篇文章讲述了 HBase的安装Hbase命令和API的使用HBase简单的优化技巧,《HBase入门篇4》这篇文章是讲述把HBase的数据放在HDFS上的点滴过程。目前对与HBase我是一个绝对的新手,如果在文章中有任何我理解有错误的地方请各位指正,谢谢。

Ok,进行正题 ………

   在HBase中创建的一张表可以分布在多个Hregion,也就说一张表可以被拆分成多块,每一块称我们呼为一个Hregion。每个Hregion会保 存一个表里面某段连续的数据,用户创建的那个大表中的每个Hregion块是由Hregion服务器提供维护,访问Hregion块是要通过 Hregion服务器,而一个Hregion块对应一个Hregion服务器,一张完整的表可以保存在多个Hregion 上。HRegion Server 与Region的对应关系是一对多的关系。每一个HRegion在物理上会被分为三个部分:Hmemcache(缓存)、Hlog(日志)、HStore(持久层)。
上述这些关系在我脑海中的样子,如图所示:

1.HRegionServer、HRegion、Hmemcache、Hlog、HStore之间的关系,如图所示:

http://zcitrq.bay.livefilestore.com/y1pdt-uarMGAWh01NH_Avl_-f8n5ZUq7zHyGaPKPp1ApP2BkJOtQFDh0H6YXwzhW4odm6zA6htPQTZC-vIX0G1x3YYolWkXMCDF/HBase-RegionServer-Region.jpg?psid=1

2.HBase表中的数据与HRegionServer的分布关系,如图所示:

http://public.bay.livefilestore.com/y1pjunmpIABSxL-FrxrHUCCwXZ-eFxjSUI5xAiuUpWQRo5HKEJy_2iyVl7bkobp1U5pqa8jvJmMQgirR9PQcSZ6NA/HBase-RegionServer-Region2.jpg?psid=1

 

HBase读数据
HBase读取数据优先读取HMemcache中的内容,如果未取到再去读取Hstore中的数据,提高数据读取的性能。

HBase写数据
HBase写入数据会写到HMemcache和Hlog中,HMemcache建立缓存,Hlog同步Hmemcache和Hstore的事务日志,发起Flush Cache时,数据持久化到Hstore中,并清空HMemecache。

    客户端访问这些数据的时候通过Hmaster ,每个 Hregion 服务器都会和Hmaster 服务器保持一个长连接,Hmaster 是HBase分布式系统中的管理者,他的主要任务就是要告诉每个Hregion 服务器它要维护哪些Hregion。用户的这些都数据可以保存在Hadoop 分布式文件系统上。 如果主服务器Hmaster死机,那么整个系统都会无效。下面我会考虑如何解决Hmaster的SPFO的问题,这个问题有点类似Hadoop的SPFO 问题一样只有一个NameNode维护全局的DataNode,HDFS一旦死机全部挂了,也有人说采用Heartbeat来解决这个问题,但我总想找出 其他的解决方案,多点时间,总有办法的。

昨天在hadoop-0.21.0、hbase-0.20.6的环境中折腾了很久,一直报错,错误信息如下:
Exception in thread "main" java.io.IOException: Call to localhost/serv6:9000 failed on local exception: java.io.EOFException
10/11/10 15:34:34 ERROR master.HMaster: Can not start master
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.apache.hadoop.hbase.master.HMaster.doMain(HMaster.java:1233)
        at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1274)

死活连接不上HDFS,也无法连接HMaster,郁闷啊。
我想想啊,慢慢想,我眼前一亮  java.io.EOFException 这个异常,是不是有可能是RPC 协定格式不一致导致的?也就是说服务器端和客户端的版本不一致的问题?换了一个HDFS的服务器端以后,一切都好了,果然是版本的问题,最后采用 hadoop-0.20.2 搭配hbase-0.20.6 比较稳当。
最后的效果如图所示:

http://farm5.static.flickr.com/4065/5165595387_d17a1bbbe4.jpg

查看大图请点击这里, 上图的一些文字说明:
   1.hadoop版本是0.20.2 ,
   2.hbase版本是0.20.6,
   3.在hbase中创建了一张表 tab1,退出hbase shell环境,
   4.用hadoop命令查看,文件系统中的文件果然多了一个刚刚创建的tab1目录,
以上这张图片说明HBase在分布式文件系统Apache HDFS中运行了。

 

相关文章:
Hbase入门6 -白话MySQL(RDBMS)与HBase之间 
Lily-建立在HBase上的分布式搜索 
MySQL向Hive/HBase的迁移工具 

HBase入门5(集群) -压力分载与失效转发 
Hive入门3–Hive与HBase的整合 
HBase入门篇4 
HBase入门篇3 
HBase入门篇2-Java操作HBase例子 
HBase入门篇 
基于Hbase存储的分布式消息(IM)系统-JABase

–end–

分享到:
评论

相关推荐

    HBase入门与使用

    5. **版本化**:HBase存储的数据具有时间戳,可以查询历史版本的数据。 #### HBase性能 HBase的性能优势在于其对大数据的高效处理能力。通过RegionServer的负载均衡机制,HBase能够在大量节点上分布存储和处理数据...

    大数据开发之Hbase基本使用及存储设计实战教程(视频+笔记+代码)

    │ Day15[Hbase 基本使用及存储设计].pdf │ ├─02_视频 │ Day1501_Hbase的介绍及其发展.mp4 │ Day1502_Hbase中的特殊概念.mp4 │ Day1503_Hbase与MYSQL的存储比较.mp4 │ Day1504_Hbase部署环境准备.mp4 │ Day...

    大数据云计算技术系列 Hadoop之Hbase从入门到精通(共243页).pdf

    《大数据云计算技术系列:Hadoop之Hbase从入门到精通》 HBase,全称Hadoop Database,是一款基于Hadoop生态系统的分布式列式存储系统,旨在处理海量结构化数据。它借鉴了Google Bigtable的设计思想,但开源并适应了...

    Hadoop之Hbase从入门到精通

    ### Hadoop之Hbase从入门到精通 #### HBase技术介绍与概述 HBase是一种分布式、高可靠性且高性能的列式存储系统,它基于Hadoop生态体系构建,并且能够支持大规模的数据存储需求。HBase的设计灵感来源于Google的...

    hbase入门和使用

    同时,HBase支持将Hadoop分析后的结果直接写入HBase存储系统。这种集成方式提高了数据处理和分析的效率。 6. HBase的行事务: HBase对行内列的写入操作提供原子性保证。也就是说,对于同一行的多个列的操作,要么...

    hbase入门到精通

    ### HBase从入门到精通——关键技术点解析 #### 一、HBase技术概览 **HBase**(Hadoop Database)是一种分布式、可扩展的NoSQL数据库系统,它基于Google Bigtable论文的思想构建而成,并且作为Apache Hadoop生态...

    Hbase入门篇

    HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作.

    hadoop hbase从入门到精通

    《Hadoop之HBase从入门到精通》是一个深入学习Hadoop和HBase的全面指南,旨在帮助初学者和有经验的开发者快速掌握这两个强大的大数据处理工具。Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在廉价...

    HBase海量数据存储实战视频教程

    第一章 HBase入门 1. 简介 2. 集群搭建 3. HBase数据模型 4. 常用shell操作 5. shell管理操作 6. Hbase Java编程 7. HBase高可用 8. HBase架构 第二章 陌陌海量存储案例 1. 案例介绍 2. 打招呼消息数据集介绍 3. ...

    Hadoop之Hbase从入门到精通.doc

    Hadoop之HBase从入门到精通 本文将详细介绍HBase技术,从基础概念到高级应用,旨在帮助读者快速掌握HBase技术。 一、HBase技术介绍 HBase是Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储...

    hbase权威指南(The hbase definition guide)最好的hbase入门书籍

    - **存储API**:介绍了HBase提供的存储抽象层,使开发者可以更灵活地选择底层存储方式。 - **实现细节**:深入探讨了HBase内部工作原理。 - **总结**:概括了本章的主要内容,并简要介绍了HBase作为Hadoop数据库...

    hbase入门到精通.txt

    根据提供的文件信息,“hbase入门到精通.txt”,我们可以推断出文档主要涵盖了HBase的相关知识。下面将基于这个假设来生成一系列与HBase相关的知识点。 ### HBase简介 HBase是一个分布式、多维、排序的映射表,该...

    hbase从入门到编程 - 文档.pdf

    ### HBase从入门到编程——核心知识点解析 #### 一、HBase简介 **HBase** 是一个构建在 **Hadoop** 分布式文件系统 (HDFS) 之上的分布式、可扩展、高性能的列族数据库。它为海量数据提供了灵活的存储方式,并支持...

    Hadoop之Hbase从入门到精通 .doc

    "Hadoop之Hbase从入门到精通" HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用 HBase 技术可在廉价 PC Server 上搭建起大规模结构化存储集群。HBase 是 Google Bigtable 的开源实现,类似 ...

    Hbase入门教程-高级查询_02

    本文接着上期介绍的”简单了解Hbase及快速入手之入门教程_01“,着重介绍了hbase的伪分布式部署以及hbase的过滤器。适合刚入门或者刚接触的小伙伴参考。

    第1章 HBase入门-v1.3.docx

    《第1章 HBase入门》 HBase,全称为Hadoop Distributed File System,是一种构建在Hadoop文件系统(HDFS)之上的分布式列式数据库,是NoSQL数据库家族中的重要成员。本章将引领读者逐步深入HBase的世界,了解其核心...

Global site tag (gtag.js) - Google Analytics