Hey Harsh,

Actually I mailed to HBase mailing list also.. but since I wanted to get
this thing done as soon as possible so I mailed in this group also..
anyways I will take care of this in future , although  I got more responses
in this mailing list only :-)

Anyways problem is solved..

 What i did  is added the folder containing my .class file in the classpath,
along with commons-logging-1.0.4.jar and log4j-1.2.15.jar in my classpath:

so now Myclasspath variable looks like :


*
MYCLASSPATH="/usr/local/hadoop/hadoop/hadoop-0.20.2-core.jar:/usr/local/hadoop/hbase/hbase/hbase-0.20.6.jar:/usr/local/hadoop/hbase/hbase/lib/zookeeper-3.2..2.jar::/usr/local/hadoop/hbase/hbase/lib/commons-logging-1.0.4.jar:/usr/local/hadoop/hbase/hbase/lib/log4j-1.2.15.jar:/usr/local/hadoop/hbase/"
*
* *
and then I used* java -classpath $MYCLASSPATH ExampleClient.java*
now its running..


Thanks.!!!
Praveenesh

On Tue, May 24, 2011 at 3:55 PM, Harsh J <[email protected]> wrote:

> Praveenesh,
>
> HBase has their own user mailing lists where such queries ought to go.
> Am moving the discussion to [email protected] and bcc-ing
> common-user@ here. Also added you to cc.
>
> Regarding your first error, going forward you can use the useful
> `hbase classpath` to generate a HBase-provided classpath list for you
> automatically. Something like:
>
> $ MYCLASSPATH=`hbase classpath`
>
> Regarding the second, latest one as below, your ExampleClient.class
> isn't on the MYCLASSPATH (nor is the directory it is under, i.e. '.')
> so Java can't really find it. This is not a HBase issue.
>
> HTH.
>
> On Tue, May 24, 2011 at 3:23 PM, praveenesh kumar <[email protected]>
> wrote:
> > I am simply using HBase API, not doing any Map-reduce work on it.
> >
> > Following is the code I have written , simply creating the file on HBase:
> >
> > import java.io.IOException;
> > import org.apache.hadoop.hbase.HBaseConfiguration;
> > import org.apache.hadoop.hbase.HColumnDescriptor;
> > import org.apache.hadoop.hbase.HTableDescriptor;
> > import org.apache.hadoop.hbase.client.Get;
> > import org.apache.hadoop.hbase.client.HBaseAdmin;
> > import org.apache.hadoop.hbase.client.HTable;
> > import org.apache.hadoop.hbase.client.Put;
> > import org.apache.hadoop.hbase.client.Result;
> > import org.apache.hadoop.hbase.client.ResultScanner;
> > import org.apache.hadoop.hbase.client.Scan;
> > import org.apache.hadoop.hbase.util.Bytes;
> >
> > public class ExampleClient {
> >  public static void main(String args []) throws IOException
> >  {
> >  HBaseConfiguration config = new HBaseConfiguration();
> >
> >  HBaseAdmin admin = new HBaseAdmin(config);
> >  HTableDescriptor htd = new HTableDescriptor("test");
> >  HColumnDescriptor hcd = new HColumnDescriptor("data");
> >  htd.addFamily(hcd);
> >  admin.createTable(htd);
> >
> >  byte [] tablename = htd.getName();
> >  HTableDescriptor [] tables = admin.listTables();
> >
> >  if(tables.length !=1 && Bytes.equals(tablename, tables[0].getName()))
> >  {
> >   throw new IOException("Failed to create table");
> >  }
> >
> >  HTable table = new HTable(config,tablename);
> >  byte[] row1 = Bytes.toBytes("row1");
> >  Put p1 = new Put(row1);
> >  byte[] databytes = Bytes.toBytes("data");
> >  p1.add(databytes,Bytes.toBytes("1"),Bytes.toBytes("value1"));
> >  table.put(p1);
> >
> >  Get g = new Get(row1);
> >  Result result = table.get(g);
> >  System.out.println("Get : "+ result);
> >  Scan scan = new Scan();
> >  ResultScanner scanner = table.getScanner(scan);
> >  try
> >  {
> >   for(Result scannerResult: scanner)
> >   {
> >    System.out.println("Scan : " + scannerResult);
> >   }
> >  }catch(Exception e ){
> >   e.printStackTrace();
> >  }
> >  finally{
> >   scanner.close();
> >  }
> >  table.close();
> >  }
> > }
> >
> > Now I have set the classpath variable in /etc/environment as
> >
> MYCLASSPATH="/usr/local/hadoop/hadoop/hadoop-0.20.2-core.jar:/usr/local/hadoop/hbase/hbase/hbase-0.20.6.jar:/usr/local/hadoop/hbase/hbase/lib/zookeeper-3.2.2.jar
> >
> > now I am compiling my code with javac command
> >
> > *$javac -classpath $MYCLASSPATH ExampleClient.java*
> >
> > It is working fine.
> > While running, I am using java command
> >
> > *$java -classpath $MYCLASSPATH ExampleClient*, then I am getting the
> > following error :
> > Exception in thread "main" java.lang.NoClassDefFoundError: ExampleClient
> > Caused by: java.lang.ClassNotFoundException: ExampleClient
> >        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> >        at java.security.AccessController.doPrivileged(Native Method)
> >        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> >        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> >        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> >        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> > Could not find the main class: ExampleClient. Program will exit.
> > But I am running the code from the same location. and ExampleClient.class
> > file exists at that location.
> >
> >
> >
> >
> >
> > On Tue, May 24, 2011 at 3:07 PM, Kleegrewe, Christian <
> > [email protected]> wrote:
> >
> >> How do you execute the client (command line) do you use the java or the
> >> hadoop command?
> >> It seems that there is an error in your classpath when running the
> client
> >> job. The classpath when compiling classes that implement the client is
> >> different from the classpath when your client is executed since hadoop
> and
> >> hbase carry their own environment. Maybe tha following link helps:
> >>
> >>
> >>
> http://hbase.apache.org/docs/current/api/org/apache/hadoop/hbase/mapreduce/package-summary.html#classpath
> >>
> >>
> >> regards
> >> Christian
> >>
> >> ---------------8<--------------------------------
> >>
> >> Siemens AG
> >> Corporate Technology
> >> Corporate Research and Technologies
> >> CT T DE IT3
> >> Otto-Hahn-Ring 6
> >> 81739 München, Deutschland
> >> Tel.: +49 (89) 636-42722
> >> Fax: +49 (89) 636-41423
> >> mailto:[email protected]
> >>
> >> Siemens Aktiengesellschaft: Vorsitzender des Aufsichtsrats: Gerhard
> Cromme;
> >> Vorstand: Peter Löscher, Vorsitzender; Wolfgang Dehen, Brigitte Ederer,
> Joe
> >> Kaeser, Barbara Kux, Hermann Requardt, Siegfried Russwurm, Peter Y.
> >> Solmssen; Sitz der Gesellschaft: Berlin und München, Deutschland;
> >> Registergericht: Berlin Charlottenburg, HRB 12300, München, HRB 6684;
> >> WEEE-Reg.-Nr. DE 23691322
> >>
> >>
> >> -----Ursprüngliche Nachricht-----
> >> Von: praveenesh kumar [mailto:[email protected]]
> >> Gesendet: Dienstag, 24. Mai 2011 11:08
> >> An: [email protected]
> >> Betreff: How to compile HBase code ?
> >>
> >> Hello guys,
> >>
> >> In case any of you are working on HBASE, I just wrote a program by
> reading
> >> some tutorials..
> >> But no where its mentioned how to run codes on HBASE. In case anyone of
> you
> >> has done some coding on HBASE , can you please tell me how to run it.
> >>
> >> I am able to compile my code by adding hbase-core.jar and
> hadoop-core.jar
> >> in
> >> classpath while compiling it.
> >> But not able to figure out how to run it.
> >>
> >> Whenever I am doing java ExampleClient ( which is my Hbase program), I
> am
> >> getting the following error :
> >>
> >> Exception in thread "main" java.lang.NoClassDefFoundError:
> >> org/apache/hadoop/hbase/HBaseConfiguration
> >>        at ExampleClient.main(ExampleClient.java:20)
> >> Caused by: java.lang.ClassNotFoundException:
> >> org.apache.hadoop.hbase.HBaseConfiguration
> >>        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> >>        at java.security.AccessController.doPrivileged(Native Method)
> >>        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> >>        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> >>        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> >>        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> >>        ... 1 more
> >> Thanks,
> >> Praveenesh
> >>
> >
>
>
>
> --
> Harsh J
>

Reply via email to