Return-Path: X-Original-To: apmail-pig-user-archive@www.apache.org Delivered-To: apmail-pig-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7D32C98E4 for ; Thu, 2 Feb 2012 23:55:46 +0000 (UTC) Received: (qmail 19528 invoked by uid 500); 2 Feb 2012 23:55:45 -0000 Delivered-To: apmail-pig-user-archive@pig.apache.org Received: (qmail 19480 invoked by uid 500); 2 Feb 2012 23:55:45 -0000 Mailing-List: contact user-help@pig.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@pig.apache.org Delivered-To: mailing list user@pig.apache.org Received: (qmail 19472 invoked by uid 99); 2 Feb 2012 23:55:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Feb 2012 23:55:44 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of royston.sellman@googlemail.com designates 74.125.82.177 as permitted sender) Received: from [74.125.82.177] (HELO mail-we0-f177.google.com) (74.125.82.177) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Feb 2012 23:55:37 +0000 Received: by wera10 with SMTP id a10so3213974wer.22 for ; Thu, 02 Feb 2012 15:55:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=subject:references:from:content-type:x-mailer:in-reply-to :message-id:date:to:content-transfer-encoding:mime-version; bh=7wiKRdJ4Y6DpycYf94rf0OCGjW/pMx4M8Z4KkWIoj/0=; b=Rolbh5jHARRiEgu3QcQ9WDhm7av0+mCVO66LEvdXQd78TsvVbHlQlRn68UdqwzcGP8 K/5rFUf0gv0/OqNfMTi20t7EbdXcWxVSX/9CxyOJazBqRBv0reE/rL37KEkR+u96dM38 U2JU8u7DARIbGTPQKbmQvTuikKkru8or1zk/8= Received: by 10.216.133.85 with SMTP id p63mr3387663wei.52.1328226916823; Thu, 02 Feb 2012 15:55:16 -0800 (PST) Received: from [192.168.1.36] (host86-175-101-139.wlms-broadband.com. [86.175.101.139]) by mx.google.com with ESMTPS id t6sm2999236wid.1.2012.02.02.15.55.15 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 02 Feb 2012 15:55:15 -0800 (PST) Subject: Re: Cannot STORE from Pig to HBase 0.9x References: <058001cce1eb$58447f70$08cd7e50$@gmail.com> From: Royston Sellman Content-Type: text/plain; charset=us-ascii X-Mailer: iPhone Mail (9A405) In-Reply-To: Message-Id: <47E02ADC-70B0-4C8D-9DF0-B0C20EFC36B9@gmail.com> Date: Thu, 2 Feb 2012 23:55:14 +0000 To: "user@pig.apache.org" Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (1.0) X-Virus-Checked: Checked by ClamAV on apache.org Thanks for your reply. WritableByteArrayComparable is in the same place in H= Base 0.93. I also registered my HBase jar from within Pig i.e register /opt/= hbase/hbase-0.93.jar and that command returned without error. I also edited t= he line in the pig startup script that specifies the path to HBase.=20 Is there some other config file that controls how Pig finds HBase jar? Is th= ere a default location Pig searches for jars that I could copy my jar into? Cheers, Royston On 2 Feb 2012, at 23:38, Dmitriy Ryaboy wrote: > "Caused by: java.lang.ClassNotFoundException: > org.apache.hadoop.hbase.filter.WritableByteArrayComparable" indicates that= > you don't have HBase on your classpath, or that the version of HBase you > are testing against moved this class someplace else. We've tested against > the 0.90 series, but not 0.92+... did they refactor something? >=20 > D >=20 > On Thu, Feb 2, 2012 at 12:43 PM, Royston Sellman < > royston.sellman@googlemail.com> wrote: >=20 >> Hi, >>=20 >>=20 >>=20 >> I'm trying to use Pig 0.9.2 with HBase 0.93 (i.e. the latest from HBase >> trunk) and following the tutorial. >>=20 >>=20 >>=20 >> This line loads the sample file from HDFS successfully: >>=20 >> raw =3D LOAD 'test/excite-small.log' USING PigStorage('\t') AS (user, tim= e, >> query); >>=20 >>=20 >>=20 >> This line seems to work: >>=20 >> T=3D FOREACH raw GENERATE CONCAT(CONCAT(user, '\u0000'), time), query; >>=20 >>=20 >>=20 >> Because when I do: >>=20 >> DUMP T; >>=20 >> I get the response I expected. >>=20 >>=20 >>=20 >> But if I then do: >>=20 >> STORE T INTO 'excite' USING >> org.apache.pig.backend.hadoop.hbase.HBaseStorage('colfam1:query'); >>=20 >> I get (in the log): >>=20 >> Pig Stack Trace >>=20 >> --------------- >>=20 >> ERROR 2998: Unhandled internal error. >> org/apache/hadoop/hbase/filter/WritableByteArrayComparable >>=20 >>=20 >>=20 >> java.lang.NoClassDefFoundError: >> org/apache/hadoop/hbase/filter/WritableByteArrayComparable >>=20 >> at java.lang.Class.forName0(Native Method) >>=20 >> at java.lang.Class.forName(Class.java:247) >>=20 >> at >> org.apache.pig.impl.PigContext.resolveClassName(PigContext.java:428) >>=20 >> at >> org.apache.pig.impl.PigContext.instantiateFuncFromSpec(PigContext.java:45= 8) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanBuilder.validateFuncSpec(LogicalPlanBuil= der >> .java:723) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanBuilder.buildFuncSpec(LogicalPlanBuilder= .ja >> va:712) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanGenerator.func_clause(LogicalPlanGenerat= or. >> java:4340) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanGenerator.store_clause(LogicalPlanGenera= tor >> .java:5956) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator= .ja >> va:1122) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanG= ene >> rator.java:683) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanGenerator.statement(LogicalPlanGenerator= .ja >> va:483) >>=20 >> at >>=20 >> org.apache.pig.parser.LogicalPlanGenerator.query(LogicalPlanGenerator.jav= a:3 >> 69) >>=20 >> at >> org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:171)= >>=20 >> at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1609= ) >>=20 >> at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1582= ) >>=20 >> at org.apache.pig.PigServer.registerQuery(PigServer.java:584) >>=20 >> at >> org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:942) >>=20 >> at >>=20 >> org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptPars= er. >> java:386) >>=20 >> at >>=20 >> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:= 188 >> ) >>=20 >> at >>=20 >> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:= 164 >> ) >>=20 >> at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69) >>=20 >> at org.apache.pig.Main.run(Main.java:495) >>=20 >> at org.apache.pig.Main.main(Main.java:111) >>=20 >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>=20 >> at >>=20 >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39 >> ) >>=20 >> at >>=20 >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl >> .java:25) >>=20 >> at java.lang.reflect.Method.invoke(Method.java:597) >>=20 >> at org.apache.hadoop.util.RunJar.main(RunJar.java:156) >>=20 >> Caused by: java.lang.ClassNotFoundException: >> org.apache.hadoop.hbase.filter.WritableByteArrayComparable >>=20 >> at java.net.URLClassLoader$1.run(URLClassLoader.java:202) >>=20 >> at java.security.AccessController.doPrivileged(Native Method) >>=20 >> at java.net.URLClassLoader.findClass(URLClassLoader.java:190) >>=20 >> at java.lang.ClassLoader.loadClass(ClassLoader.java:306) >>=20 >> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) >>=20 >> at java.lang.ClassLoader.loadClass(ClassLoader.java:247) >>=20 >> ... 28 more >>=20 >>=20 >>=20 >> Grateful for any help with this. >>=20 >>=20 >>=20 >> Thanks, >>=20 >> Royston >>=20 >>=20