Rah*_*hul 5 hadoop hive mapr snappy parquet
好!所以我决定使用Parquet作为hive表的存储格式,在我实际在集群中实现之前,我决定运行一些测试.令人惊讶的是,Parquet在我的测试中速度较慢,因为它比普通文本文件更快.
请注意,我在MapR上使用Hive-0.13
遵循我的操作流程
表A.
格式 - 文本格式
表大小 - 2.5 Gb
表B.
格式 - 镶木地板
表大小 - 1.9 Gb
[创建表格B作为选择*从A存储为镶木地板]
表C.
格式 - 带有快速压缩的镶木地板
表大小 - 1.9 Gb
[创建表格C存储为镶木地板tblproperties("parquet.compression"="SNAPPY")作为select*from A]
现在我对上面提到的表进行了一些测试并遵循了细节.
表A.
地图 - 15
减少 - 1
累积CPU - 123.33秒
所需时间 - 59.057秒
表B.
地图 - 8
减少 - 1
累计CPU - 204.92秒
所需时间 - 50.33秒
表A.
地图 - 15
减少 - 0
累计CPU - 51.18秒
所需时间 - 25.296秒
表B.
地图 - 8
减少 - 0
累计CPU - 117.08秒
所需时间 - 27.448秒
表A.
地图 - 15
减少 - 0
累积CPU - 57.55秒
所需时间 - 20.254秒
表B.
地图 - 8
减少 - 0
累积CPU - 113.97秒
所需时间 - 27.678秒
表A.
地图 - 15
减少 - 0
累积CPU - 57.55秒
所需时间 - 20.254秒
表B.
地图 - 8
减少 - 0
累积CPU - 113.97秒
所需时间 - 27.678秒
表A.
地图 - 15
减少 - 1
累积CPU - 127.85秒
所需时间 - 29.68秒
表B.
地图 - 8
减少 - 1
累积CPU - 255.2秒
所需时间 - 41.025秒
您可以看到,在我在两个表上应用的几乎所有操作中,Parquet在执行查询所花费的时间方面落后,但行计数操作除外.
我还使用表C来执行上述操作,但结果几乎在类似的行上,TextFile格式再次是两者的快捷方式.
有人可以让我知道我做错了什么吗?
谢谢!
编辑
我将ORC添加到存储格式列表中并再次运行测试.遵循细节.
行计数操作
文本格式累积CPU - 123.33秒
实木复合地板格式累计CPU - 204.92秒
ORC格式累积CPU - 119.99秒
ORC与SNAPPY累计CPU - 107.05秒
列操作的总和
文本格式累积CPU - 127.85秒
木地板格式累积CPU - 255.2秒
ORC格式累积CPU - 120.48秒
ORC与SNAPPY累积CPU - 98.27秒
列操作的平均值
文本格式累积CPU - 128.79秒
木地板格式累积CPU - 211.73秒
ORC格式累积CPU - 165.5秒
ORC与SNAPPY累积CPU - 135.45秒
使用where子句从给定范围中选择4列
文本格式累积CPU - 72.48秒
实木复合地板格式累计CPU - 136.4秒
ORC格式累积CPU - 96.63秒
ORC与SNAPPY累积CPU - 82.05秒
这是否意味着ORC比Parquet更快?或者我可以做些什么来使查询响应时间和压缩率更好地工作?
谢谢!
首先我想指出的是,用给定的细节几乎不可能回答你的问题。
几点:
在分布式环境中测量时间并不是确定某些东西是否缓慢的方法(如果您有许多查询正在运行并竞争资源,那么您就没有测量您认为正在测量的内容)
不提供实际的表定义和针对这些表运行的查询会使此问题无法重现
不提供表的行数及其各个字段的基数也没有帮助
一般来说,查询 Parquet 比查询文本文件快得多,因为 Parquet 使用了许多东西来使读取操作更快。这些事情很少:
根据用例,可以将事物的某些参数调整为确切的用例。
| 归档时间: |
|
| 查看次数: |
1632 次 |
| 最近记录: |