2013-04-22 2 views
4

Как запустить код из командной строки?Как запустить программу HBase

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 MyHBase { 
    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(); 
     } 
    } 
} 

Как установить путь класса hbase? Я получаю огромную строку в моем пути к классам.

UPDATE

root# vi MyHBase.java 
hbase-0.92.2 root# java -classpath `hbase classpath`:./ /var/root/MyHBase 
-sh: hbase: command not found 
Exception in thread "main" java.lang.NoClassDefFoundError: /var/root/MyHBase 
Caused by: java.lang.ClassNotFoundException: .var.root.MyHBase 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

Я могу сделать

hbase-0.92.2 root# bin/hbase shell 
HBase Shell; enter 'help<RETURN>' for list of supported commands. 
Type "exit<RETURN>" to leave the HBase Shell 
Version 0.92.2, r1379292, Fri Aug 31 13:13:53 UTC 2012 

hbase(main):001:0> exit 

Могу ли я делать что-то неправильно?

+0

HBase имеет много зависимостей, это будет длинная строка. –

+0

'java -classpath' doe не работает? – ericson

ответ

7

Вы также можете сделать что-то вроде этого: -

# export HADOOP_CLASSPATH=`./hbase classpath` 

, а затем расслоение это Java в банке, чтобы запустить его в Hadoop кластера, как это: -

#hadoop jar <jarfile> <mainclass> 
+0

Это отлично работает – myloginid

5

Используйте этот

java -classpath `hbase classpath`:./ MyHBase 

это будет получить всю строку, которая HBase пути к классам использует и добавляет текущий каталог, а также пути к классам.

Приветствия Тряпки

+0

Я делаю что-то не так в UPDATE. –

+1

Вы не можете выполнить такой класс. Путь, в котором присутствует файл класса, должен находиться в пути к классам. Выполните ту же команду из каталога, в котором присутствует файл класса. Альтернативно вы добавляете/var/root в путь к классам. – Rags

+0

Я пробовал javac -cp 'hbase classpath' MyHBase.java java -cp' hbase classpath' MyHBase bt не работает. Показывать hbase: команда не найдена –

Смежные вопросы