`
bupt04406
  • 浏览: 347434 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

HBase HDFS 的检验

 
阅读更多

对于0.94版本来说,有几个地方会发生检验

(1)HFile (HRegionServer里面)

(2)FSInputChecker (DFSClient里面)

 

DFSClient :

 

非本地读取,通过DataNode读取,RemoteBlockReader
Disk -> DataNode ->  DFSClient(RemoteBlockReader) -> HFile (HRegionServer)
Disk -> DataNode ->  DFSClient(RemoteBlockReader) -> HLog (HRegionServer)

本地读取,BlockReaderLocal  
Disk ->  DFSClient(BlockReaderLocal) -> HFile (HRegionServer)
Disk ->  DFSClient(BlockReaderLocal) -> HLog (HRegionServer)

其中:RemoteBlockReader 和 BlockReaderLocal 都继承自FSInputChecker 

HFileSystem:里面有两个FileSystem实例 一个是 fs,一个是 FileSystem noChecksumFs;   // read hfile data from storage
(1) noChecksumFs 用于HFile
(2) fs 可以用于HLog、以及其他文件
目前0.94.1以及之前的版本noChecksumFs 和 fs 使用相同的配置(configuration),只有verifyChecksum不同

support checksums in HBase block cache

 

 

public static final String HBASE_CHECKSUM_VERIFICATION =
      "hbase.regionserver.checksum.verify";
默认为true,所以HRegionServer通过DFSClient读取到HFile的数据后会进行检验。

通过DataNode读取(RemoteBlockReader)是否检验由 DistributedFileSystem.verifyChecksum 来决定

本地读取,DFSClient直接读取文件,是否检验由 public static final String  DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY 
     = "dfs.client.read.shortcircuit.skip.checksum"来决定

如果DFS_CLIENT_READ_SHORTCIRCUIT_KEY = "dfs.client.read.shortcircuit";设置为true,并且DataNode是local的,那么DFSClient会先跟DataNode通信获取block的path,然后自己直接读取block(本地读取,BlockReaderLocal)。 


Skip checksum is broke; are we double-checksumming by default?


关于本地读的建议:
Read short circuit should always be enabled, unless you’re constantly trashing the cache.
来自committer Jean-Daniel Cryans,
http://files.meetup.com/1350427/hug_ebay_jdcryans.pdf

分享到:
评论

相关推荐

    Facebook开发HDFS和HBase的新进展

    ### Facebook开发HDFS和HBase的新进展:深度解析与创新亮点 #### HDFS与HBase在Facebook的应用背景 Facebook作为全球领先的社交网络平台,每天处理着海量的数据交互,包括用户生成的内容、广告数据、社交图谱等。...

    google大数据论文 mapreduce hdfs bigtable

    HDFS的设计原则包括:故障检测与恢复、数据局部性和高并发读写能力。 接下来,Bigtable是谷歌的一个分布式数据库系统,专为处理大规模结构化数据而设计。它采用了类似于Google BigTable的模型,支持实时在线查询,...

    hbase相关的安装包

    0.98.3是HBase的一个稳定版本,提供了增强的性能和更多的特性,如更强大的RegionServer,改进的Compaction机制,以及更好的监控和故障检测。 4. **大数据处理**: HBase与Hadoop结合,为大数据处理提供了一种强大...

    hbase-0.94.27.tar.gz

    1. **分布式架构**:HBase采用Master-Slave架构,由一个HMaster主节点负责区域服务器(RegionServer)的管理、故障检测和负载均衡,多个RegionServer存储实际的数据,提供读写服务。 2. **表和列族**:HBase的表是...

    hbase指南 英文

    HBase 建立在 Hadoop 分布式文件系统(HDFS)之上,利用 HDFS 的高容错性和大规模数据存储能力。HBase 通过将数据分布在多个节点上来实现水平扩展,这使得它可以处理 PB 级的数据量。由于 HDFS 的特性,HBase 能够在...

    hbase-1.3.0.tar.gz

    在HBase中,Zookeeper用于管理集群状态,包括节点的注册、主节点选举以及故障检测等,确保系统的高可用性。 在HBase 1.3.0中,有以下几个关键特性值得关注: 1. 支持Region Server的动态调整:管理员可以在线添加...

    多线程 hbase

    HBase基于Hadoop文件系统(HDFS)提供高可用性和容错性,其设计目标是支持实时读写操作,适用于大规模数据处理场景。 二、多线程与HBase 1. **批量操作**:在HBase中,多线程可以用于批量写入和读取操作。例如,...

    hbase-1.0.3-bin.tar

    2. **Zookeeper**:在HBase中,Zookeeper负责协调和管理集群状态,包括HRegion服务器的注册和监控、故障检测以及元数据的存储等。 四、HBase与Hadoop的紧密关系 HBase是Hadoop生态系统的一部分,它利用HDFS作为...

    hbase-1.3.1-bin.zip

    - HBase依赖Zookeeper进行元数据管理、故障检测和集群协调。 - Zookeeper记录了Master Server和Region Server的信息,确保集群的高可用性。 7. **MapReduce集成** - HBase与Hadoop的MapReduce框架紧密集成,支持...

    hbase-0.92.1+zookeeper

    2. **水平扩展性**:HBase是基于HDFS(Hadoop Distributed File System)构建的,可以轻松地在多台服务器上进行水平扩展,通过增加节点来提高存储和处理能力。 3. **高可用性**:HBase利用Zookeeper进行主节点选举...

    hbase使用所需资源

    - **软件资源**:Java运行环境(JRE)、Hadoop(包括HDFS和MapReduce)、HBase本身、Zookeeper。 - **网络资源**:所有节点之间需要有良好的网络通信,以保证数据同步和心跳检测。 5. **部署步骤**: - 安装并...

    hbase-1.1.5-bin.tar

    Hadoop提供了HDFS(Hadoop Distributed File System)作为HBase的数据存储层。 2. **环境配置**:解压`hbase-1.1.5-bin.tar`后,你需要将HBase的bin目录添加到系统的PATH环境变量中,以便在命令行中直接运行HBase...

    HBase中文教程.pdf

    2. 自动故障转移:HBase具有自动故障检测和恢复功能,保证了高可用性。 3. 一致的读写:HBase利用Hadoop的HDFS作为底层存储,并提供了一致的数据读写操作。 4. 集成Hadoop生态系统:作为Hadoop生态系统的一部分,...

    storm-hbase集成

    Apache HBase 是一个非关系型的分布式数据库,基于谷歌的 Bigtable 模型构建,运行在 Hadoop 文件系统(HDFS)之上。HBase 提供高吞吐量的随机读写能力,支持大规模数据存储,并且能够对数据进行快速检索。它的设计...

    深入学习hbase原理资料整理

    在写入过程中,HBase还监控了操作的时间,如果超过1秒,系统会发出警告,以检测潜在的性能问题。 在HBase的生命周期中,当Region的MemStore达到一定大小后,会触发flush操作,此时内存中的数据将被写入HLog,随后...

    HBase性能优化指南

    - **过时数据节点检测**: HDFS通过数据节点定期发送块报告给名称节点来检测。如果10分钟内未收到报告,则数据节点会被认为过时,设置`dfs.namenode.avoid.read.stale.datanode`和`dfs.namenode.avoid.write.stale....

    hbase-0.96 jar包

    1. **分布式存储**:HBase将数据分布在多台服务器上,通过Hadoop的HDFS(Hadoop Distributed File System)作为底层存储,实现高可用性和容错性。 2. **列族存储**:不同于传统的关系型数据库,HBase按照列族存储...

    hbase-2.0.0.3.0.0.0-1634-bin.tar.gz

    在Ambari中,你可以预定义HBase的服务配置,包括Zookeeper、HDFS、YARN等依赖服务的设置,以及HBase自身的集群参数。 三、HBase的编译 1. 环境准备:确保你已安装Java开发环境(JDK)、Maven和Git。Ambari 2.7.x...

    hbase-1.2.0-cdh5.14.0.tar.gz

    HBase依赖于Zookeeper进行协调服务,如元数据管理和故障检测。Zookeeper确保HBase的高可用性和一致性。 9. **MapReduce集成** HBase与Hadoop的MapReduce框架紧密集成,允许用户编写复杂的批处理作业来分析存储在...

Global site tag (gtag.js) - Google Analytics