You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Ning Zhang (JIRA)" <ji...@apache.org> on 2011/03/08 23:28:00 UTC
[jira] Created: (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Use block-level merge for RCFile if merging intermediate results are needed
---------------------------------------------------------------------------
Key: HIVE-2035
URL: https://issues.apache.org/jira/browse/HIVE-2035
Project: Hive
Issue Type: Improvement
Reporter: Ning Zhang
Assignee: He Yongqiang
Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Franklin Hu (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Franklin Hu updated HIVE-2035:
------------------------------
Attachment: hive-2035.1.patch
Implements block level merge of intermediate results to a table or partition stored as RCFile.
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052940#comment-13052940 ]
jiraposter@reviews.apache.org commented on HIVE-2035:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/935/#review875
-----------------------------------------------------------
Can you make sure that in the test cases, the query need the merge step?
- Siying
On 2011-06-20 19:20:53, Franklin Hu wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/935/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-06-20 19:20:53)
bq.
bq.
bq. Review request for hive.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. For a table stored as RCFile, intermediate results are sometimes merged if those files are below a certain threshold. For RCFiles, we can do a block level merge that does not deserialize the blocks and is more efficient. This patch leverages the existing code used to merge for ALTER TABLE ... CONCATENATE.
bq.
bq.
bq. This addresses bug HIVE-2035.
bq. https://issues.apache.org/jira/browse/HIVE-2035
bq.
bq.
bq. Diffs
bq. -----
bq.
bq. trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/TaskFactory.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/BlockMergeTask.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/MergeWork.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileBlockMergeRecordReader.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileKeyBufferWrapper.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileMergeMapper.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverMergeFiles.java 1136090
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/MapredWork.java 1136090
bq. trunk/ql/src/test/queries/clientpositive/rcfile_createas1.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge1.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge2.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge3.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge4.q PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_createas1.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge1.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge2.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge3.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge4.q.out PRE-CREATION
bq.
bq. Diff: https://reviews.apache.org/r/935/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq.
bq. Thanks,
bq.
bq. Franklin
bq.
bq.
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Siying Dong (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13055355#comment-13055355 ]
Siying Dong commented on HIVE-2035:
-----------------------------------
+1, will run regression tests
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051430#comment-13051430 ]
jiraposter@reviews.apache.org commented on HIVE-2035:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/935/#review864
-----------------------------------------------------------
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/MergeWork.java
<https://reviews.apache.org/r/935/#comment1889>
It doesn't seem to be a RuntimeException
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileMergeMapper.java
<https://reviews.apache.org/r/935/#comment1890>
why not "inputDepth--"?
trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java
<https://reviews.apache.org/r/935/#comment1891>
should we just throw an exception instead of return a magic null?
trunk/ql/src/test/queries/clientpositive/rcfile_insert.q
<https://reviews.apache.org/r/935/#comment1893>
Will it launch a merge job? If it launches, it seems a bug in Hive that CombineHiveInputFormat doesn't span to multiple partitions when it needs to.
trunk/ql/src/test/queries/clientpositive/rcfile_merge1.q
<https://reviews.apache.org/r/935/#comment1892>
It doesn't seem to launch merge jobs. If it launches. It seems to be a bug.
- Siying
On 2011-06-17 20:45:46, Franklin Hu wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/935/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-06-17 20:45:46)
bq.
bq.
bq. Review request for hive.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. For a table stored as RCFile, intermediate results are sometimes merged if those files are below a certain threshold. For RCFiles, we can do a block level merge that does not deserialize the blocks and is more efficient. This patch leverages the existing code used to merge for ALTER TABLE ... CONCATENATE.
bq.
bq.
bq. This addresses bug HIVE-2035.
bq. https://issues.apache.org/jira/browse/HIVE-2035
bq.
bq.
bq. Diffs
bq. -----
bq.
bq. trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/TaskFactory.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/BlockMergeTask.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/MergeWork.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileBlockMergeRecordReader.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileKeyBufferWrapper.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileMergeMapper.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverMergeFiles.java 1134415
bq. trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/MapredWork.java 1134415
bq. trunk/ql/src/test/queries/clientpositive/rcfile_createas1.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_insert.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge1.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge2.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge3.q PRE-CREATION
bq. trunk/ql/src/test/queries/clientpositive/rcfile_merge4.q PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_createas1.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_insert.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge1.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge2.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge3.q.out PRE-CREATION
bq. trunk/ql/src/test/results/clientpositive/rcfile_merge4.q.out PRE-CREATION
bq.
bq. Diff: https://reviews.apache.org/r/935/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq.
bq. Thanks,
bq.
bq. Franklin
bq.
bq.
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Franklin Hu (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Franklin Hu updated HIVE-2035:
------------------------------
Attachment: hive-2035.3.patch
Add min/max split size settings to unit tests
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "He Yongqiang (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
He Yongqiang reassigned HIVE-2035:
----------------------------------
Assignee: (was: He Yongqiang)
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052176#comment-13052176 ]
jiraposter@reviews.apache.org commented on HIVE-2035:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/935/
-----------------------------------------------------------
(Updated 2011-06-20 19:20:53.263299)
Review request for hive.
Changes
-------
Throw error at compile time for bad rcfile merge input format class rather than at runtime, remove bad test, stylistic fixes
Summary
-------
For a table stored as RCFile, intermediate results are sometimes merged if those files are below a certain threshold. For RCFiles, we can do a block level merge that does not deserialize the blocks and is more efficient. This patch leverages the existing code used to merge for ALTER TABLE ... CONCATENATE.
This addresses bug HIVE-2035.
https://issues.apache.org/jira/browse/HIVE-2035
Diffs (updated)
-----
trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/TaskFactory.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/BlockMergeTask.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/MergeWork.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileBlockMergeRecordReader.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileKeyBufferWrapper.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileMergeMapper.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverMergeFiles.java 1136090
trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/MapredWork.java 1136090
trunk/ql/src/test/queries/clientpositive/rcfile_createas1.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge1.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge2.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge3.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge4.q PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_createas1.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge1.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge2.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge3.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge4.q.out PRE-CREATION
Diff: https://reviews.apache.org/r/935/diff
Testing
-------
Thanks,
Franklin
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Hudson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13056745#comment-13056745 ]
Hudson commented on HIVE-2035:
------------------------------
Integrated in Hive-trunk-h0.21 #798 (See [https://builds.apache.org/job/Hive-trunk-h0.21/798/])
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Siying Dong (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051415#comment-13051415 ]
Siying Dong commented on HIVE-2035:
-----------------------------------
will take a look.
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Siying Dong (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Siying Dong updated HIVE-2035:
------------------------------
Status: Patch Available (was: Open)
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13025645#comment-13025645 ]
jiraposter@reviews.apache.org commented on HIVE-2035:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/669/
-----------------------------------------------------------
Review request for hive, Carl Steinbach, John Sichi, and Paul Yang.
Summary
-------
See HIVE-2135
This addresses bug HIVE-2035.
https://issues.apache.org/jira/browse/HIVE-2035
Diffs
-----
trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java 1096976
trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreCommand.java PRE-CREATION
trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java 1096976
trunk/metastore/src/java/org/apache/hadoop/hive/metastore/URLConnectionUpdater.java PRE-CREATION
Diff: https://reviews.apache.org/r/669/diff
Testing
-------
Since this is a refactoring patch, no new tests are required. Ran all the tests in metastore. All of them passed.
Thanks,
Ashutosh
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: He Yongqiang
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Ning Zhang (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13025909#comment-13025909 ]
Ning Zhang commented on HIVE-2035:
----------------------------------
Ashutosh, it seems the review request #669 got a wrong HIVE JIRA reference?
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: He Yongqiang
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051316#comment-13051316 ]
jiraposter@reviews.apache.org commented on HIVE-2035:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/935/
-----------------------------------------------------------
Review request for hive.
Summary
-------
For a table stored as RCFile, intermediate results are sometimes merged if those files are below a certain threshold. For RCFiles, we can do a block level merge that does not deserialize the blocks and is more efficient. This patch leverages the existing code used to merge for ALTER TABLE ... CONCATENATE.
This addresses bug HIVE-2035.
https://issues.apache.org/jira/browse/HIVE-2035
Diffs
-----
trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/TaskFactory.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/BlockMergeTask.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/MergeWork.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileBlockMergeRecordReader.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileKeyBufferWrapper.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileMergeMapper.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverMergeFiles.java 1134415
trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/MapredWork.java 1134415
trunk/ql/src/test/queries/clientpositive/rcfile_createas1.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_insert.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge1.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge2.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge3.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge4.q PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_createas1.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_insert.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge1.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge2.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge3.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge4.q.out PRE-CREATION
Diff: https://reviews.apache.org/r/935/diff
Testing
-------
Thanks,
Franklin
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Franklin Hu (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Franklin Hu reassigned HIVE-2035:
---------------------------------
Assignee: Franklin Hu
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Siying Dong (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13056205#comment-13056205 ]
Siying Dong commented on HIVE-2035:
-----------------------------------
committed
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13054033#comment-13054033 ]
jiraposter@reviews.apache.org commented on HIVE-2035:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/935/
-----------------------------------------------------------
(Updated 2011-06-23 18:56:14.903379)
Review request for hive.
Changes
-------
Add max and min split size configs to unit tests
Summary
-------
For a table stored as RCFile, intermediate results are sometimes merged if those files are below a certain threshold. For RCFiles, we can do a block level merge that does not deserialize the blocks and is more efficient. This patch leverages the existing code used to merge for ALTER TABLE ... CONCATENATE.
This addresses bug HIVE-2035.
https://issues.apache.org/jira/browse/HIVE-2035
Diffs (updated)
-----
trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/TaskFactory.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/BlockMergeTask.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/MergeWork.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileBlockMergeRecordReader.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileKeyBufferWrapper.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileMergeMapper.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverMergeFiles.java 1139014
trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/MapredWork.java 1139014
trunk/ql/src/test/queries/clientpositive/rcfile_createas1.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge1.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge2.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge3.q PRE-CREATION
trunk/ql/src/test/queries/clientpositive/rcfile_merge4.q PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_createas1.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge1.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge2.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge3.q.out PRE-CREATION
trunk/ql/src/test/results/clientpositive/rcfile_merge4.q.out PRE-CREATION
Diff: https://reviews.apache.org/r/935/diff
Testing
-------
Thanks,
Franklin
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Franklin Hu (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Franklin Hu updated HIVE-2035:
------------------------------
Resolution: Fixed
Fix Version/s: 0.8.0
Status: Resolved (was: Patch Available)
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Fix For: 0.8.0
>
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Franklin Hu (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Franklin Hu updated HIVE-2035:
------------------------------
Release Note: For tables stored as RCFile, intermediate results that have too many small files will be merged with a block-level merge that does not deserialize and re-serialized the contents of each block.
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Franklin Hu
> Fix For: 0.8.0
>
> Attachments: hive-2035.1.patch, hive-2035.3.patch
>
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HIVE-2035) Use block-level merge for RCFile if
merging intermediate results are needed
Posted by "Ashutosh Chauhan (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HIVE-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13025937#comment-13025937 ]
Ashutosh Chauhan commented on HIVE-2035:
----------------------------------------
Yeah, correct Ning. I missed jira number by 100. Edited the review request.
Btw, it will be great if you can take a look at that.
> Use block-level merge for RCFile if merging intermediate results are needed
> ---------------------------------------------------------------------------
>
> Key: HIVE-2035
> URL: https://issues.apache.org/jira/browse/HIVE-2035
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: He Yongqiang
>
> Currently if hive.merge.mapredfiles and/or hive.merge.mapfile is set to true the intermediate data could be merged using an additional MapReduce job. This could be quite expensive if the data size is large. With HIVE-1950, merging can be done in the RCFile block level so that it bypasses the (de-)compression, (de-)serialization phases. This could improve the merge process significantly.
> This JIRA should handle the case where the input table is not stored in RCFile, but the destination table is (which requires the intermediate data should be stored in the same format as the destination table).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira