Details
Description
The Hive command line provides the --orcfiledump utility for dumping data contained within ORC files, specifically when using the -d option. Generally, it is useful to be able to pipe the data extracted into other commands and utilities to transform and control the data so that it is more manageable by the CLI user. A classic example is less.
When such command pipelines are currently constructed, the underlying implementation in org.apache.hadoop.hive.ql.io.orc.FileDump#printJsonData is oblivious to errors occurring when writing to its output stream. Such errors are common place when a user issues Ctrl+C to kill the leaf process. In this event the leaf process terminates immediately but the Hive CLI process continues to execute until the full contents of the ORC file has been read.
By making FileDump considerate of output stream errors the process will terminate as soon as the destination process exits (i.e. when the user kills less) and control will be returned to the user as expected.