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

解决直接读HFile时因表数据写入而导致文件目录变化问题

阅读更多
转载请标明出处:http://blackwing.iteye.com/admin/blogs/2188077

数据量大的情况下,通过直接读取HFile来获得hbase表数据性能比通过HTable读取有优势,但当读取HFile时,table同时有数据写入,那么可能因为split、compact等原因导致某些HFile不存在,导致任务失败。

如果通过hdfs的snapshot快照功能,对某个table进行快照后,在读取快照,则不会出现问题。步骤如下:

1. 把需要快照的表设置为snapshottable
hdfs dfsadmin -allowSnapshot <path>

对应的java入口
HdfsAdmin : void allowSnapshot(Path path)



2. 生成快照
hdfs dfs -createSnapshot <path> [<snapshotName>]

对应的java入口
FileSystem : createSnapshot(Path path) 或者 createSnapshot(Path path, String snapshotName)


快照会存放在被快照目录的隐藏文件.snapshot目录下;创建snapshot时,需要是文件夹的owner


接下来,之间读取.snapshot目录下对应快照就行。


官方参考文章:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html
分享到:
评论

相关推荐

    MapReduce生成HFile入库到HBase 可能需要的jar包

    MapReduce生成HFile入库到HBase 可能需要的jar包,一共有3个 可以直接放在每台机器的${HADOOP_HOME}/lib下 hadoopHadoop 1.1.2 + hbase 0.94.6.1

    Hadoop数据迁移--使用importtsv两步载入数据

    该工具是HBase提供的一个将HDFS数据转化为HBase数据库数据的一个工具。 其实现过程是,先将HDFS文件转复制并转化为HFile文件,然后将HFile移动并加载成为HBase的数据文件。

    hive-hbase-generatehfiles

    这种模式提供了一种方法,用于获取已存储在Hive中的数据,将其导出为HFile,并从这些HFile批量加载HBase表。概述HFile生成功能已添加到。 它添加了以下属性,然后Hive HBaseStorageHandler可以利用这些属性。 hive....

    HBASE hfile v2 format

    hbase hfile v2 format draft 描述存储结构

    Hadoop数据迁移--从Hadoop向HBase载入数据

    一、将Hadoop中普通文本格式的数据转化为可被HBase识别的HFile文件,HFile相当于Oracle中的DBF数据 文件。 二、将HFile载入到HBase中,该过程实际就是将数据从一个地移动到HBase某表数据的存放地。

    HFile.java

    HFile.java

    C++获取指定目录下的所有文件

    本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下 1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include #include #include #include 函数实现 void ...

    visual studio 新建C++文件为 UTF8 文件解决方案

    hfile.h newc++file.cpp 复制到 C:\Program Files (x86)\MicrosoftVisualStudio12.0\VC\vcprojectitems 我这里是vs2013,各种vs版本的路径可能不同,但vcprojectitems一定相同。 覆盖掉原来的文件 这样每次新建.h...

    C++读取特定路径下文件目录及文件名称

    这几天在弄一个项目,需要读取给定路径下的所有文件夹名称或所有带后缀的文件名。  查了下C++的资料,发现有很多方法,这里总结其中的一种,其他用法类似。... 4 long hFile = 0; 5 //文

    Hadoop数据迁移--使用importtsv独步载入数据

    该工具是HBase提供的一个将HDFS数据转化为HBase数据库数据的一个工具。 其实现过程是,先将HDFS文件转复制并转化为HFile文件,然后将HFile移动并加载成为HBase的数据文件。

    HBase架构核心模块

    写入数据时数据会先写入Hlog中成功后在写入MemStore中。Memstore中的数据因为空间有限,所以需要定期flush到文件StoreFile中,每次flush都是生成新的StoreFile。HRegionServer在处理Flush请求时,将数据写成HFile...

    HBaseBulkImportXML:如何将 XML 文件中的数据批量导入 HBase 表的示例

    HBaseBulkImportXML 如何将数据从 XML 文件批量导入 HBase 表的示例。hbase-bulk-import-XML-example 执照Apache 许可。 HBase 提供对大数据的随机读写访问,但将大数据放入 HBase 可能是一个挑战。 使用 API 将数据...

    分布式数据库HBase深入使用

    分布式数据库HBase深入使用 HBase能高速实现数据存储和访问源于Hbase数据存储 连接ZooKeeper,从ZooKeeper 中找要读的数据。我们需要知道表中的Rowkey在...而读数据时先到MemStore上读,再到StoreFile上读,之后合并。

    MR-read-Hfile2

    这是用于扫描整个hbase表的mapreduce 与TableMapReduceUtil不同,这是直接从HFile读取的 它比TableMapReduceUtil更快

    Delphi 获取文件访问时间.rar

    Delphi 获取文件访问时间,也主是最后一次打开文件 的时间,基于Delphi7实现。相关代码如下:  procedure TForm1.SpeedButton1Click(Sender: TObject);  begin  if OpenDialog1.Execute then  begin  Edit1....

    Hbase_目录结构.pptx

    /hbase/archive (1) 进行snapshot或者升级的时候使用到的归档目录。compaction删除hfile的时 候,也会把旧的hfile归档到这里等。 /hbase/corrupt (2) splitlog的corrupt目录,以及corrupt hfile的目录。

    BigGeoDataHBaseLoader:HBase矢量大数据快速入库工具

    hadoop -jar BigGeoDataHbaseLoader.jar class路径 -Dhbase.zookeeper.quorum=zookeeper集群地址 输入空间数据tsv文件路径 输出HFile路径 空间数据表名 4、将HFile添加到HBase表中 hbase org.apache.hadoop.hbase....

    hadoop mr file2hfile2hbase

    NULL 博文链接:https://liuyq1991.iteye.com/blog/2109364

    HBase用户手册-v2.2.docx

    7.2.1 往hdfs中put文件: 19 7.2.2 用ImportTsv方法生成Hfile 20 7.2.3 利用Hfile进行加载 21 7.2.4 put方式直接加载 22 8 HBase-client 24 8.1 log4j 24 8.2 configuration 25 8.3 Cluster Connections 25 8.4 ...

Global site tag (gtag.js) - Google Analytics