Just following up - the root cause of the problem seems to have been remnants of old hadoop / hbase
versions on the machine. Once I got past the DataStorage error, Pig started throwing
"java.lang.RuntimeException: hbase-default.xml file seems to be for and old version of HBase (null),
this version is 0.90.1-cdh3u0" because it was loading that config file that is no longer used.
In summary, a machine with a clean install of:
Hadoop 0.20.2-cdh3u0
Apache Pig version 0.8.0-cdh3u0
HBase 0.90.1-cdh3u0
runs just fine without any crazy workarounds needed. I no longer have to manually register jars in
the pig script or turn split combination off in order for hbase loading to work!
--
Jameson Lopp
Software Engineer
Bronto Software, Inc.
On 05/25/2011 06:29 PM, Jonathan Coveney wrote:
I wasn't trying to use HBase, but I have had the same problem. To get around
it, I had to create a pig-nohadoop.jar, pass in the hadoop*.jar in the
classpath, and register antlr in pig. I think it is a pig/hadoop
compatibility error because I got the same error, but just to be sure, can
you run normal hadoop jobs that do not use HBase, just to isolate variables?
2011/5/25 Dmitriy Ryaboy<[email protected]>
Use Pig 0.8.1
D
On Wed, May 25, 2011 at 2:03 PM, Jameson Lopp<[email protected]> wrote:
Our production environment has undergone software upgrades and now I'm
working with:
Hadoop 0.20.2-cdh3u0
Apache Pig version 0.8.0-cdh3u0
HBase 0.90.1-cdh3u0
My research indicates that these all OUGHT to play together nicely... I
would kill for someone to publish a compatibility grid for the misc
versions.
Anyway, I'm trying to load from HBase :
visitors = LOAD 'hbase://track' USING
org.apache.pig.backend.hadoop.hbase.HBaseStorage('open:browser open:ip
open:os open:createdDate', '-caching 1000')
as (browser:chararray,
ipAddress:chararray, os:chararray, createdDate:chararray);
And I'm receiving the following error, which searching around seems to be
indicative of compatibility issues between pig and hadoop:
ERROR 2999: Unexpected internal error. Failed to create DataStorage
java.lang.RuntimeException: Failed to create DataStorage
at
org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:75)
at
org.apache.pig.backend.hadoop.datastorage.HDataStorage.<init>(HDataStorage.java:58)
at
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:196)
at
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:116)
at org.apache.pig.impl.PigContext.connect(PigContext.java:184)
at org.apache.pig.PigServer.<init>(PigServer.java:243)
at org.apache.pig.PigServer.<init>(PigServer.java:228)
at org.apache.pig.tools.grunt.Grunt.<init>(Grunt.java:46)
at org.apache.pig.Main.run(Main.java:545)
at org.apache.pig.Main.main(Main.java:108)
Caused by: java.io.IOException: Call to hadoop001/10.0.0.51:8020 failed
on
local exception: java.io.EOFException
at org.apache.hadoop.ipc.Client.wrapException(Client.java:775)
at org.apache.hadoop.ipc.Client.call(Client.java:743)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220)
at $Proxy0.getProtocolVersion(Unknown Source)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359)
at
org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:207)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:170)
at
org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82)
at
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95)
at
org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:72)
... 9 more
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at
org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:501)
at org.apache.hadoop.ipc.Client$Connection.run(Client.java:446)
Am I actually running incompatible versions? Should I bug the Cloudera
folks?
--
Jameson Lopp
Software Engineer
Bronto Software, Inc.