2012-12-05 13 views
8

Mam do czynienia z problemem z uruchomić prosty przykład Hbase.Jak uruchomić przykład Hbase Java?

Mam utworzyć na HbaseTest.java, które utworzyć jedną tabelę i wstawić niektóre rekordy. W systemie Unix mogę skompilować klasę Java. przez.

$ javac -classpath HBase-0.94.2.jar: Hadoop-core-1.0.4.jar HBaseTest.java

Ale nie jestem w stanie uruchomić ten program: $ java -classpath hbase- 0.94.2.jar: hadoop-core-1.0.4.jar HBaseTest

Powyższe polecenie nie działa dla mnie. Nie wiesz, o co chodzi? Czy to jest właściwy sposób na uruchomienie przykładu Hbase Java?

+1

Co masz na myśli mówiąc, że "nie działa dla mnie"? Komunikat o błędzie? Nic nie robi? –

+0

działa powłoka hbase? jeśli nie, musisz sprawdzić swoją instalację i ponownie uruchomić hbase – Pixou

+0

podczas uruchamiania tego polecenia dostaję poniżej błędu: $ java -classpath hbase-0.94.2.jar: /scratch/hadoop-1.0.4/hadoop-core-1.0.4 .jar HBaseTest Wyjątek w wątku "główny" java.lang.NoClassDefFoundError:/scratch/hadoop-1/0/4/hadoop-core-1/0/4/jar Wywołany przez: java.lang.ClassNotFoundException: .scratch .hadoop-1.0.4.hadoop-core-1.0.4.jar na java.net.URLClassLoader $ 1.run (URLClassLoader.java:202) ... na java.lang.ClassLoader.loadClass (ClassLoader.java : 246) Nie można znaleźć głównej klasy: /scratch/hadoop-1.0.4/hadoop-core-1.0.4.jar. Program zostanie zamknięty. –

Odpowiedz

16

Możesz użyć "hbase classpath", aby uzyskać wymaganą ścieżkę klasy.

 
    /* 
    * Compile and run with: 
    * javac -cp `hbase classpath` TestHBase.java 
    * java -cp `hbase classpath` TestHBase 
    */ 
    import org.apache.hadoop.conf.Configuration; 
    import org.apache.hadoop.hbase.*; 
    import org.apache.hadoop.hbase.client.*; 
    import org.apache.hadoop.hbase.util.*; 

    public class TestHBase { 
     public static void main(String[] args) throws Exception { 
      Configuration conf = HBaseConfiguration.create(); 
      HBaseAdmin admin = new HBaseAdmin(conf); 
      try { 
       HTable table = new HTable(conf, "test-table"); 
       Put put = new Put(Bytes.toBytes("test-key")); 
       put.add(Bytes.toBytes("cf"), Bytes.toBytes("q"), Bytes.toBytes("value")); 
       table.put(put); 
      } finally { 
       admin.close(); 
      } 
     } 
    } 
+2

Tak. Działa 1. Hbase/bin $./Hbase classpath 2. Masz bardzo duży ciąg dla ścieżki klasy, który zawiera wszystkie ścieżki potrzebne do uruchomienia programu 3. $ java% hbase classpath ciągu (krok 2) .... Teraz działa :) –

+0

To działa. Zarówno źródło, jak i instrukcje do kompilowania i uruchamiania, zarówno w zwykłym hbase, jak i hbase-slider-app. 'hbase classpath' zwraca bardzo duży ciąg, zawierający prawie wszystko w $ {hbase_home}/lib, i hbase/conf, i hadoop/conf, itd. –

1

Jeśli to zawiedzie cię mógł uruchomić, jeśli to możliwe, należy jak NetBeans IDE do opracowania programów Java HBase API klienta.

  • Po otwarciu NetBeans, przejdź do Narzędzia => Biblioteki i kliknij „New Biblioteki” i nadać mu nazwę jak „MapReduce”.
  • Daj mu nazwę, a następnie kliknij Add JAR/Folder i wybierz wymagane pliki JAR, zazwyczaj pod /usr/local/hadoop-2.x.x/share/hadoop dla bibliotek Hadoop i /usr/local/hbase-1.x.x/lib dla bibliotek HBase, przechodząc przeglądarkę systemu plików (lub po prostu przejść do katalogów instalacyjnych) . Shift + klawisze strzałek działają w przypadku masowych plików jar.
  • Teraz utwórz nowy projekt Java i kliknij prawym przyciskiem myszy na panelu projektu i przejdź do "Właściwości".
  • Teraz kliknij na Biblioteki => Dodaj bibliotekę i wybierz bibliotekę z wyświetlonej listy. Powinieneś być dobry, aby skompilować i uruchomić je teraz, mając wszystkie uruchomione procesy.