hadoop - HBase 表大小在一段时间后减少

标签 hadoop hbase hdfs bigdata

我们在 HBase 中存储数据时遇到了一个问题。我们采取了这样的步骤:

  1. 大型 csv 文件(大小:20 G)正在由 Spark 应用程序处理,结果是 hfiles(结果数据大小:180 G)。
  2. 使用命令创建表:'TABLE_NAME', {'NAME'=>'cf', 'COMPRESSION'=>'SNAPPY'}
  3. 使用命令 hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=1024 hdfs://ip:8020/从创建的 hfiles 中批量加载数据路径 TABLE_NAME

加载表后大小为 180 G,但是在一段时间后(昨天晚上 8 点,两天前早上 8 点左右)启动一个进程,将数据压缩到 14 G。

我的问题是这个过程的名称是什么?那是一个主要的压实吗?因为我正在尝试手动触发压缩(major_compact 和 compact),但这是在未压缩表上启动的命令的输出:

hbase(main):001:0> major_compact 'TEST_TYMEK_CRM_ACTION_HISTORY'
0 row(s) in 1.5120 seconds

最佳答案

这是压缩过程。对于 table 大小如此大的差异,我可以提出以下原因。使用 Spark 应用程序,您不会对 HFile 使用压缩编解码器,因为它在文件创建后指定它。表的 HFiles 附件不会改变它的格式(HDFS 中的所有文件都是不可变的)。只有经过压缩过程,数据才会被压缩。您可以通过 HBase UI 监控压缩过程;它通常在 60000 端口上运行。

关于hadoop - HBase 表大小在一段时间后减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45865046/

相关文章:

java - Hadoop 自定义记录读取器实现

java - 无法从 Web 应用程序通过 JDBC 连接到 HIVE

hadoop - 使用哪种 FileInputFormat 读取 Hadoop 存档文件 (HAR) 文件

hadoop - 在 Hive 中使用排序表

hadoop - HBase 0.98.5 无法在 Windows 上启动

java - 将 Web UI 连接到 Apache HBase 的最有效方法是什么?

hadoop - Hbase master 启动失败异常Java.Lang.NoSuchMethodException

hadoop - Hadoop 如何决定有多少节点将执行 Map 和 Reduce 任务?

java - 如何在Ubuntu的hadoop平台中执行jar文件?

hadoop - 文件复制到 DataNodes 时 Hadoop HDFS 中的数据流管道