hadoop - Hive gzip文件解压

标签 hadoop gzip hive

我已经将一堆 .gz 文件加载到 HDFS 中,当我在它们之上创建一个原始表时,我在计算行数时看到了奇怪的行为。将 gz 表中的 count(*) 结果与未压缩表中的结果进行比较,结果相差约 85%。压缩文件gz的表记录较少。有人见过这个吗?

CREATE EXTERNAL TABLE IF NOT EXISTS test_gz(
  col1 string, col2 string, col3 string)
ROW FORMAT DELIMITED
   LINES TERMINATED BY '\n'
LOCATION '/data/raw/test_gz'
;

select count(*) from test_gz;    result 1,123,456
select count(*) from test;  result 7,720,109

最佳答案

我能够解决这个问题。不知何故,gzip 文件在 map/reduce 作业(hive 或自定义 java map/reduce)中没有完全解压缩。 Mapreduce 作业只会读取大约 450 MB 的 gzip 文件并将数据写出到 HDFS,而不会完全读取 3.5GZ 文件。奇怪,一点错误都没有!

由于文件是在另一台服务器上压缩的,所以我手动解压,然后在hadoop客户端服务器上重新压缩。之后,我将新压缩的3.5GZ文件上传到HDFS,然后hive就可以完整统计读取整个文件的所有记录。

马辛

关于hadoop - Hive gzip文件解压,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614126/

相关文章:

.net - IO.Compression 有问题吗?

post - 为什么 POST 方法期间请求正文的 GZIP 压缩不常见?

hadoop - hiveconf参数,可以设置一个值吗?

hadoop - Hive中的计算标签共现

.net - 通过 WebClient.DownloadData 自动解压缩 gzip 响应

hadoop - Hive NR 映射进度不一致并定期从 0% 重新启动

hive - 导出 Hive 查询结果

hadoop - 如何使用pig从hdfs加载twitter数据?

hadoop - HBase 和 Bigtable 支持单行事务

Hadoop-2.5.1 + Nutch-2.2.1 : Found interface org. apache.hadoop.mapreduce.TaskAttemptContext,但类是预期的