Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何运行HBase程序_Hadoop_Hbase - Fatal编程技术网

Hadoop 如何运行HBase程序

Hadoop 如何运行HBase程序,hadoop,hbase,Hadoop,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 Exc

如何从命令行运行下面的代码

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类路径?我的类路径中有一个巨大的字符串

更新

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
hbase-0.92.2 root#bin/hbase shell
HBase外壳;输入“帮助”以获取支持的命令列表。
键入“exit”以离开HBase外壳
版本0.92.2,r1379292,周五8月31日13:13:53 UTC 2012
hbase(主):001:0>退出
我做错什么了吗?

用这个

java -classpath `hbase classpath`:./ MyHBase
这将获取HBase使用的整个类路径字符串,并将当前目录添加到类路径中

干杯
抹布

您也可以这样做:-

# export HADOOP_CLASSPATH=`./hbase classpath`
#hadoop jar <jarfile> <mainclass>
然后将java捆绑到jar中,在hadoop集群中运行,如下所示:-

# export HADOOP_CLASSPATH=`./hbase classpath`
#hadoop jar <jarfile> <mainclass>
hadoop jar
HBase有很多依赖项,它将是一个长字符串。
java-classpath
不起作用?您不能执行这样的类。类文件所在的路径需要位于类路径上。从类文件所在的目录执行相同的命令。或者将/var/root添加到类路径。我尝试了javac-cp
hbase类路径
MyHBase.java-cp
hbase类路径
MyHBase bt不工作。显示hbase:command not found我应该在hbase中设置类路径吗?你是说找不到java命令?请告诉我整个错误。我看到您能够更早地执行java命令!-----------检查更多的东西。您能在任何地方执行hbase命令吗?将hbase-bin目录添加到路径中。然后将hbase/bin添加到路径中。确保您能够从任何位置执行hbase命令。