hi guys,

Vlad: good suggestion however in my case its a 5 second query (when it
works)

Gopal: Thanks for the explanation on the effect logging can have on the
execution path. somewhat counter-intuitive i must say and as you can
imagine a tad more challenging to debug - when debugging influences the
observation. :)

that said adding:

   set hive.fetch.task.conversion=none;

forced the query plans to be the same and that made the difference. it
worked.

now i need to research that setting and see what the implications are.  I'm
sure it doesn't come for free.

and as always a big thanks!  lemme know if i can provide any details.  the
partition size is >1G btw. and this is using hive 2.1.0.

Cheers,
Stephen.
ps here's the hdfs info - the table is bucketed by 24 fwiw.


$ hdfs dfs -du -h
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000000_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000001_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000002_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000003_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000004_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000005_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000006_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000007_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000008_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000009_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000010_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000011_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000012_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000013_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000014_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000015_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000016_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000017_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000018_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000019_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000020_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000021_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000022_0
1.1 G  3.2 G
/user/hive/warehouse/raw_logs.db/fact_www_access_datekey_by_hour/date_key=20160828/000023_0




On Wed, Aug 31, 2016 at 12:19 AM, Vladimir Kroz <vladimir.k...@gmail.com>
wrote:

> One of the causes could be that on long-running queries your terminal
> session gets disconnected and client process terminate (appearing like
>  query hangs).
>
> When debug messages are on, they will keep terminal session alive and
> hence allowing your query to complete.
>
> I'm not sure if this is your case, but based on synopsis your provided it
> could be one of the reasons.
>
> Cheers,
> Vlad
>
> ---------------
> From: Stephen Sprague <sprag...@gmail.com>
> To: "user@hive.apache.org" <user@hive.apache.org>
> Cc:
> Date: Tue, 30 Aug 2016 20:28:50 -0700
> Subject: hive.root.logger influencing query plan?? so it's not so
> Hi guys,
> I've banged my head on this one all day and i need to surrender.  I have a
> query that hangs (never returns). However, when i turn on logging to DEBUG
> level it works.  I'm stumped.   I include here the query, the different
> query plans (with the only thing different being the log level) and a
> traceback on the query that hangs.
>
> * the query
>
> #!/bin/bash
>
> sql="
> explain SELECT *
> FROM   raw_logs.fact_www_access_datekey_by_hour
> WHERE  date_key = 20160828      -- partition key
> and lower(http_string) = 'foo'  -- always evaluates to false
> limit 1                         -- if i remove limit 1 it works.  I expect
> an empty result set.
> ;
> "
>
> #hive -hiveconf hive.root.logger=ERROR,console -e "$sql" >stdout.bad
> 2>stderr.bad  #hangs
> hive -hiveconf hive.root.logger=DEBUG,console -e "$sql" >stdout.good
> 2>stderr.good #works
>
>
>
> * explain plan for the one that hangs (ERROR,console)
>
> STAGE DEPENDENCIES:
>   Stage-0 is a root stage
>
> STAGE PLANS:
>   Stage: Stage-0
>     Fetch Operator
>       limit: 1
>       Processor Tree:
>         TableScan
>           alias: fact_www_access_datekey_by_hour
>           Statistics: Num rows: 144355924 Data size: 158755813572 Basic
> stats: COMPLETE Column stats: NONE
>           Filter Operator
>             predicate: (lower(http_string) = 'foo') (type: boolean)
>             Statistics: Num rows: 72177962 Data size: 79377906786 Basic
> stats: COMPLETE Column stats: NONE
>             Select Operator
>               expressions: payload_year (type: int), payload_month (type:
> int), payload_day (type: int), payload_time (type: string),
> payload_gmt_offset (type: string), perf_time_micros (type: int),
> http_string (type: string), http_type (type: string), http_version (type:
> string), http_rc (type: int), http_size (type: int), referrer (type:
> string), user_agent (type: string), bot_flag (type: string), ip_list (type:
> array<string>), scalar_tags (type: map<string,string>), url_components
> (type: array<string>), user_id (type: string), lt_session_id (type:
> string), session_id (type: string), log_name (type: string), log_lineno
> (type: int), log_line (type: string), web_server (type: string),
> location_info (type: map<string,string>), dp_main_url_type (type: string),
> dp_inventory_type (type: string), dp_main_url (type:
> map<string,array<string>>), dp_tag_url (type: map<string,array<string>>),
> dp_referrer_url (type: map<string,array<string>>), hour (type: int),
> 20160828 (type: int)
>               outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5,
> _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15,
> _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24,
> _col25, _col26, _col27, _col28, _col29, _col30, _col31
>               Statistics: Num rows: 72177962 Data size: 79377906786 Basic
> stats: COMPLETE Column stats: NONE
>               Limit
>                 Number of rows: 1
>                 Statistics: Num rows: 1 Data size: 1099 Basic stats:
> COMPLETE Column stats: NONE
>                 ListSink
>
> * query plan for the one that works (DEBUG,console)
>
> STAGE DEPENDENCIES:
>   Stage-1 is a root stage
>   Stage-0 depends on stages: Stage-1
>
> STAGE PLANS:
>   Stage: Stage-1
>     Map Reduce
>       Map Operator Tree:
>           TableScan
>             alias: fact_www_access_datekey_by_hour
>             Statistics: Num rows: 144355924 Data size: 158755813572 Basic
> stats: COMPLETE Column stats: NONE
>             Filter Operator
>               predicate: (lower(http_string) = 'foo') (type: boolean)
>               Statistics: Num rows: 72177962 Data size: 79377906786 Basic
> stats: COMPLETE Column stats: NONE
>               Select Operator
>                 expressions: payload_year (type: int), payload_month
> (type: int), payload_day (type: int), payload_time (type: string),
> payload_gmt_offset (type: string), perf_time_micros (type: int),
> http_string (type: string), http_type (type: string), http_version (type:
> string), http_rc (type: int), http_size (type: int), referrer (type:
> string), user_agent (type: string), bot_flag (type: string), ip_list (type:
> array<string>), scalar_tags (type: map<string,string>), url_components
> (type: array<string>), user_id (type: string), lt_session_id (type:
> string), session_id (type: string), log_name (type: string), log_lineno
> (type: int), log_line (type: string), web_server (type: string),
> location_info (type: map<string,string>), dp_main_url_type (type: string),
> dp_inventory_type (type: string), dp_main_url (type:
> map<string,array<string>>), dp_tag_url (type: map<string,array<string>>),
> dp_referrer_url (type: map<string,array<string>>), hour (type: int),
> 20160828 (type: int)
>                 outputColumnNames: _col0, _col1, _col2, _col3, _col4,
> _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14,
> _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23,
> _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31
>                 Statistics: Num rows: 72177962 Data size: 79377906786
> Basic stats: COMPLETE Column stats: NONE
>                 Limit
>                   Number of rows: 1
>                   Statistics: Num rows: 1 Data size: 1099 Basic stats:
> COMPLETE Column stats: NONE
>                   File Output Operator
>                     compressed: true
>                     Statistics: Num rows: 1 Data size: 1099 Basic stats:
> COMPLETE Column stats: NONE
>                     table:
>                         input format: org.apache.hadoop.mapred.
> SequenceFileInputFormat
>                         output format: org.apache.hadoop.hive.ql.io.
> HiveSequenceFileOutputFormat
>                         serde: org.apache.hadoop.hive.serde2.
> lazy.LazySimpleSerDe
>
>   Stage: Stage-0
>     Fetch Operator
>       limit: 1
>       Processor Tree:
>         ListSink
>
>
>
>
> * traceback when i press ctl-c on the client
>
> ^CFailed with exception java.io.IOException:java.io.IOException:
> Filesystem closed
> 16/08/30 20:16:09 [62cf87a8-2b39-47d2-b234-53631b60d84e main]: ERROR
> CliDriver: - Failed with exception java.io.IOException:java.io.IOException:
> Filesystem closed
> java.io.IOException: java.io.IOException: Filesystem closed
>         at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(
> FetchOperator.java:517)
>         at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(
> FetchOperator.java:424)
>         at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(
> FetchTask.java:144)
>         at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1885)
>         at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(
> CliDriver.java:252)
>         at org.apache.hadoop.hive.cli.CliDriver.processCmd(
> CliDriver.java:183)
>         at org.apache.hadoop.hive.cli.CliDriver.processLine(
> CliDriver.java:399)
>         at org.apache.hadoop.hive.cli.CliDriver.processLine(
> CliDriver.java:335)
>         at org.apache.hadoop.hive.cli.CliDriver.executeDriver(
> CliDriver.java:742)
>         at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)
>         at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:483)
>         at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
>         at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
> Caused by: java.io.IOException: Filesystem closed
>         at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:794)
>         at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(
> DFSInputStream.java:833)
>         at org.apache.hadoop.hdfs.DFSInputStream.read(
> DFSInputStream.java:897)
>         at org.apache.hadoop.hdfs.DFSInputStream.read(
> DFSInputStream.java:700)
>         at java.io.DataInputStream.readInt(DataInputStream.java:387)
>         at org.apache.hadoop.io.SequenceFile$Reader.readBlock(
> SequenceFile.java:2101)
>         at org.apache.hadoop.io.SequenceFile$Reader.next(
> SequenceFile.java:2508)
>         at org.apache.hadoop.mapred.SequenceFileRecordReader.next(
> SequenceFileRecordReader.java:82)
>         at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(
> FetchOperator.java:484)
>         ... 16 more
>
>
> on the one that hangs the job is never submitted to YARN.  On the one that
> succeeds the job is submitted.  Ultimately though why does changing the log
> level influence the query plan?
>
> any insights greatly appreciated.
>
> Thanks,
> Stephen.
>

Reply via email to