Re: Error ERROR 2088: Fetch failed. Couldn't retrieve result happened during HCatLoader() then DUMP

2014-10-16 Thread Lorand Bendig

Hi Lulynn,

I've opened PIG-4238 and HIVE-8484.

--Lorand

On 16/10/14 04:55, lulynn_2008 wrote:

Hi Lorand,

Have you opened JIRA for Hive side?

Thanks









At 2014-10-15 15:53:41, Lorand Bendig lben...@gmail.com wrote:

Hi Rohini and Lulynn,

The exception occurs when DUMP is executed:
X = load 'junit_unparted_basic' using
org.apache.hive.hcatalog.pig.HCatLoader();
dump X

I made some tests on Hive 0.14 / Pig 0.14 and found a bug.
When HCatLoader#setLocation(String location, Job job) is called on the
Hive side, it
can't set the outputschema because
HCatUtil#checkJobContextIfRunningFromBackend(job)
always returns false. This is because in fetch mode we don't have a
mapred.task.id.
A null outputschema will raise an exception when
HCatBaseLoader#getNext() calls
PigHCatUtil#transformToTuple(hr, outputSchema);

I can think of two solutions:
1. At Hive side:
If a job is fetchable then we set
PigImplConstants.CONVERTED_TO_FETCH in the PigContext,
which we could check in
HCatUtil#checkJobContextIfRunningFromBackend(job) .

2. At Pig side:
Set a dummy mapred.task.id when fetch is initialized so that
HCatUtil#checkJobContextIfRunningFromBackend(job) can return true.

I'd go with the first one.

Thanks,
Lorand

On 15/10/14 06:55, Rohini Palaniswamy wrote:

Lorand,
 Isn't fetch optimization supposed to be only for DUMP and not STORE ?

-Rohini

On Tue, Oct 14, 2014 at 6:47 PM, lulynn_2008 lulynn_2...@163.com wrote:


Hi Lorand,
The query run fine is I disable fetch. Thanks for your help. Could you
tell why we need to disable fetch?
BTW, I was using pig-0.13.0 and hive-0.13.1.









At 2014-10-14 21:03:13, Lorand Bendig lben...@gmail.com wrote:

Hi,

Which Pig and Hive versions do you use? Does the query run fine if you
disable fetch (set opt.fetch false) ?

Thanks,
Lorand

On 14/10/14 10:50, lulynn_2008 wrote:

Hi All,
I was running HCatStore and HCatLoader in pig grunt. But encounter

ERROR 2088: Fetch failed. Couldn't retrieve result. Please help give a
glance and give your suggestions. Thanks.

Test case:
1. Create table in hive:
create table junit_unparted_basic(a int, b string) stored as RCFILE

tblproperties('hcat.isd'='org.apache.hive.hcatalog.rcfile.RCFileInputDriver','hcat.osd'='org.apache.hive.hcatalog.rcfile.RCFileOutputDriver');

2. copy basic.input.data file into hdfs, here is the content in file:
1S1S
1S2S
1S3S
2S1S
2S2S
2S3S
3S1S
3S2S
3S3S

3. run Pig: pig -useHCatalog
4. grunt A = load 'basic.input.data' as (a:int, b:chararray);
5. grunt store A into 'junit_unparted_basic' using

org.apache.hive.hcatalog.pig.HCatStorer();

6. X = load 'junit_unparted_basic' using

org.apache.hive.hcatalog.pig.HCatLoader();

7. grunt dump X

Error Log:




Pig Stack Trace
---
ERROR 2088: Fetch failed. Couldn't retrieve result

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable

to open iterator for alias X

   at org.apache.pig.PigServer.openIterator(PigServer.java:912)
   at

org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:752)

   at

org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:372)

   at

org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:228)

   at

org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203)

   at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66)
   at org.apache.pig.Main.run(Main.java:542)
   at org.apache.pig.Main.main(Main.java:156)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)

   at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)

   at java.lang.reflect.Method.invoke(Method.java:619)
   at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store

alias X

   at org.apache.pig.PigServer.storeEx(PigServer.java:1015)
   at org.apache.pig.PigServer.store(PigServer.java:974)
   at org.apache.pig.PigServer.openIterator(PigServer.java:887)
   ... 12 more
Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR

2088: Fetch failed. Couldn't retrieve result

   at

org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.runPipeline(FetchLauncher.java:180)

   at

org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.launchPig(FetchLauncher.java:81)

   at

org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:275)

   at org.apache.pig.PigServer.launchPlan(PigServer.java:1367)
   at

org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1352)

   at 

Re: Error ERROR 2088: Fetch failed. Couldn't retrieve result happened during HCatLoader() then DUMP

2014-10-15 Thread Lorand Bendig

Hi Rohini and Lulynn,

The exception occurs when DUMP is executed:
X = load 'junit_unparted_basic' using 
org.apache.hive.hcatalog.pig.HCatLoader();

dump X

I made some tests on Hive 0.14 / Pig 0.14 and found a bug.
When HCatLoader#setLocation(String location, Job job) is called on the 
Hive side, it
can't set the outputschema because 
HCatUtil#checkJobContextIfRunningFromBackend(job)
always returns false. This is because in fetch mode we don't have a 
mapred.task.id.
A null outputschema will raise an exception when 
HCatBaseLoader#getNext() calls

PigHCatUtil#transformToTuple(hr, outputSchema);

I can think of two solutions:
1. At Hive side:
   If a job is fetchable then we set 
PigImplConstants.CONVERTED_TO_FETCH in the PigContext,
   which we could check in 
HCatUtil#checkJobContextIfRunningFromBackend(job) .


2. At Pig side:
   Set a dummy mapred.task.id when fetch is initialized so that
   HCatUtil#checkJobContextIfRunningFromBackend(job) can return true.

I'd go with the first one.

Thanks,
Lorand

On 15/10/14 06:55, Rohini Palaniswamy wrote:

Lorand,
Isn't fetch optimization supposed to be only for DUMP and not STORE ?

-Rohini

On Tue, Oct 14, 2014 at 6:47 PM, lulynn_2008 lulynn_2...@163.com wrote:


Hi Lorand,
The query run fine is I disable fetch. Thanks for your help. Could you
tell why we need to disable fetch?
BTW, I was using pig-0.13.0 and hive-0.13.1.









At 2014-10-14 21:03:13, Lorand Bendig lben...@gmail.com wrote:

Hi,

Which Pig and Hive versions do you use? Does the query run fine if you
disable fetch (set opt.fetch false) ?

Thanks,
Lorand

On 14/10/14 10:50, lulynn_2008 wrote:

Hi All,
I was running HCatStore and HCatLoader in pig grunt. But encounter

ERROR 2088: Fetch failed. Couldn't retrieve result. Please help give a
glance and give your suggestions. Thanks.

Test case:
1. Create table in hive:
create table junit_unparted_basic(a int, b string) stored as RCFILE

tblproperties('hcat.isd'='org.apache.hive.hcatalog.rcfile.RCFileInputDriver','hcat.osd'='org.apache.hive.hcatalog.rcfile.RCFileOutputDriver');

2. copy basic.input.data file into hdfs, here is the content in file:
1S1S
1S2S
1S3S
2S1S
2S2S
2S3S
3S1S
3S2S
3S3S

3. run Pig: pig -useHCatalog
4. grunt A = load 'basic.input.data' as (a:int, b:chararray);
5. grunt store A into 'junit_unparted_basic' using

org.apache.hive.hcatalog.pig.HCatStorer();

6. X = load 'junit_unparted_basic' using

org.apache.hive.hcatalog.pig.HCatLoader();

7. grunt dump X

Error Log:




Pig Stack Trace
---
ERROR 2088: Fetch failed. Couldn't retrieve result

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable

to open iterator for alias X

  at org.apache.pig.PigServer.openIterator(PigServer.java:912)
  at

org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:752)

  at

org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:372)

  at

org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:228)

  at

org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203)

  at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66)
  at org.apache.pig.Main.run(Main.java:542)
  at org.apache.pig.Main.main(Main.java:156)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)

  at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)

  at java.lang.reflect.Method.invoke(Method.java:619)
  at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store

alias X

  at org.apache.pig.PigServer.storeEx(PigServer.java:1015)
  at org.apache.pig.PigServer.store(PigServer.java:974)
  at org.apache.pig.PigServer.openIterator(PigServer.java:887)
  ... 12 more
Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR

2088: Fetch failed. Couldn't retrieve result

  at

org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.runPipeline(FetchLauncher.java:180)

  at

org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.launchPig(FetchLauncher.java:81)

  at

org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:275)

  at org.apache.pig.PigServer.launchPlan(PigServer.java:1367)
  at

org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1352)

  at org.apache.pig.PigServer.storeEx(PigServer.java:1011)
  ... 14 more







Re: Error ERROR 2088: Fetch failed. Couldn't retrieve result happened during HCatLoader() then DUMP

2014-10-14 Thread Lorand Bendig

Hi,

Which Pig and Hive versions do you use? Does the query run fine if you 
disable fetch (set opt.fetch false) ?


Thanks,
Lorand

On 14/10/14 10:50, lulynn_2008 wrote:

Hi All,
I was running HCatStore and HCatLoader in pig grunt. But encounter ERROR 2088: 
Fetch failed. Couldn't retrieve result. Please help give a glance and give your 
suggestions. Thanks.

Test case:
1. Create table in hive:
create table junit_unparted_basic(a int, b string) stored as RCFILE 
tblproperties('hcat.isd'='org.apache.hive.hcatalog.rcfile.RCFileInputDriver','hcat.osd'='org.apache.hive.hcatalog.rcfile.RCFileOutputDriver');
2. copy basic.input.data file into hdfs, here is the content in file:
1S1S
1S2S
1S3S
2S1S
2S2S
2S3S
3S1S
3S2S
3S3S

3. run Pig: pig -useHCatalog
4. grunt A = load 'basic.input.data' as (a:int, b:chararray);
5. grunt store A into 'junit_unparted_basic' using 
org.apache.hive.hcatalog.pig.HCatStorer();
6. X = load 'junit_unparted_basic' using 
org.apache.hive.hcatalog.pig.HCatLoader();

7. grunt dump X

Error Log:

Pig Stack Trace
---
ERROR 2088: Fetch failed. Couldn't retrieve result

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open 
iterator for alias X
 at org.apache.pig.PigServer.openIterator(PigServer.java:912)
 at 
org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:752)
 at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:372)
 at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:228)
 at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203)
 at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66)
 at org.apache.pig.Main.run(Main.java:542)
 at org.apache.pig.Main.main(Main.java:156)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
 at java.lang.reflect.Method.invoke(Method.java:619)
 at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store alias X
 at org.apache.pig.PigServer.storeEx(PigServer.java:1015)
 at org.apache.pig.PigServer.store(PigServer.java:974)
 at org.apache.pig.PigServer.openIterator(PigServer.java:887)
 ... 12 more
Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 2088: 
Fetch failed. Couldn't retrieve result
 at 
org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.runPipeline(FetchLauncher.java:180)
 at 
org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.launchPig(FetchLauncher.java:81)
 at 
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:275)
 at org.apache.pig.PigServer.launchPlan(PigServer.java:1367)
 at 
org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1352)
 at org.apache.pig.PigServer.storeEx(PigServer.java:1011)
 ... 14 more






Re: Re: Error ERROR 2088: Fetch failed. Couldn't retrieve result happened during HCatLoader() then DUMP

2014-10-14 Thread Rohini Palaniswamy
Lorand,
   Isn't fetch optimization supposed to be only for DUMP and not STORE ?

-Rohini

On Tue, Oct 14, 2014 at 6:47 PM, lulynn_2008 lulynn_2...@163.com wrote:

 Hi Lorand,
 The query run fine is I disable fetch. Thanks for your help. Could you
 tell why we need to disable fetch?
 BTW, I was using pig-0.13.0 and hive-0.13.1.









 At 2014-10-14 21:03:13, Lorand Bendig lben...@gmail.com wrote:
 Hi,
 
 Which Pig and Hive versions do you use? Does the query run fine if you
 disable fetch (set opt.fetch false) ?
 
 Thanks,
 Lorand
 
 On 14/10/14 10:50, lulynn_2008 wrote:
  Hi All,
  I was running HCatStore and HCatLoader in pig grunt. But encounter
 ERROR 2088: Fetch failed. Couldn't retrieve result. Please help give a
 glance and give your suggestions. Thanks.
 
  Test case:
  1. Create table in hive:
  create table junit_unparted_basic(a int, b string) stored as RCFILE
 tblproperties('hcat.isd'='org.apache.hive.hcatalog.rcfile.RCFileInputDriver','hcat.osd'='org.apache.hive.hcatalog.rcfile.RCFileOutputDriver');
  2. copy basic.input.data file into hdfs, here is the content in file:
  1S1S
  1S2S
  1S3S
  2S1S
  2S2S
  2S3S
  3S1S
  3S2S
  3S3S
 
  3. run Pig: pig -useHCatalog
  4. grunt A = load 'basic.input.data' as (a:int, b:chararray);
  5. grunt store A into 'junit_unparted_basic' using
 org.apache.hive.hcatalog.pig.HCatStorer();
  6. X = load 'junit_unparted_basic' using
 org.apache.hive.hcatalog.pig.HCatLoader();
 
  7. grunt dump X
 
  Error Log:
 
 
  Pig Stack Trace
  ---
  ERROR 2088: Fetch failed. Couldn't retrieve result
 
  org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable
 to open iterator for alias X
   at org.apache.pig.PigServer.openIterator(PigServer.java:912)
   at
 org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:752)
   at
 org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:372)
   at
 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:228)
   at
 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203)
   at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66)
   at org.apache.pig.Main.run(Main.java:542)
   at org.apache.pig.Main.main(Main.java:156)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
   at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
   at java.lang.reflect.Method.invoke(Method.java:619)
   at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
  Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store
 alias X
   at org.apache.pig.PigServer.storeEx(PigServer.java:1015)
   at org.apache.pig.PigServer.store(PigServer.java:974)
   at org.apache.pig.PigServer.openIterator(PigServer.java:887)
   ... 12 more
  Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR
 2088: Fetch failed. Couldn't retrieve result
   at
 org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.runPipeline(FetchLauncher.java:180)
   at
 org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.launchPig(FetchLauncher.java:81)
   at
 org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:275)
   at org.apache.pig.PigServer.launchPlan(PigServer.java:1367)
   at
 org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1352)
   at org.apache.pig.PigServer.storeEx(PigServer.java:1011)
   ... 14 more