Error: Could not find or load main class HBase_c2java

(>^ω^<)喵上树 2014-08-27 11:03:18
HBase linux下java操作。
安装的是JDK1.7.0_65 安装目录

[root@wangxin jdk1.7.0_65]# pwd
/usr/java/jdk1.7.0_65

环境配置

[root@wangxin jdk1.7.0_65]# cat /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_65
export JAR_HOME=/usr/java/jdk1.7.0_65/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAR_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAR_HOME/bin:$PATH

[root@wangxin jdk1.7.0_65]# java -version
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)



HBase 安装的是 hbase-0.98.5-hadoop2-bin.tar.gz 版本
安装目录是

[root@wangxin hbase]# pwd
/usr/local/hbase
[root@wangxin hbase]# ls
bin CHANGES.txt conf docs hbase-webapps lib LICENSE.txt logs NOTICE.txt README.txt

仅修改 conf/hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///hbase_log/tmp/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/hbase_log/tmp/zookeeper</value>
</property>

通关脚本启动

[root@wangxin /]# start-hbase.sh
starting master, logging to /usr/local/hbase/logs/hbase-root-master-wangxin.out
[root@wangxin /]# hbase shell
2014-08-27 06:54:52,498 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.5-hadoop2, rUnknown, Mon Aug 4 23:58:06 PDT 2014

hbase(main):001:0>

在这里可以进行一系列操作,说明HBase安装是没有问题的。也可以通过60010端口在浏览器打开。

现在写一段java代码,通过java api去操作HBase

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
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.HTablePool;
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 HBase_c2java{

static HBaseConfiguration cfg = null;
static {
Configuration configuration = new Configuration();
cfg = new HBaseConfiguration(configuration);
}


public static void createTable(String tableName, String columnFaily)throws Exception{
HBaseAdmin admin = new HBaseAdmin(cfg);
if(admin.tableExists(tableName)){
System.out.println(tableName + "It's not existed!");
System.exit(0);
}
else{
HTableDescriptor tableDesc = new HTableDescriptor(tableName);
tableDesc.addFamily(new HColumnDescriptor(columnFaily+":"));
System.out.println("create table success!");
}
}
public static void main(String[] args){
try{
String tableName = "student";
HBase_c2java.createTable(tableName, "c1");
}catch(Exception e){
e.printStackTrace();
}
}
}

在安装的hbse路径的lib下有很多.jar包

[root@wangxin lib]# ls
activation-1.1.jar hadoop-mapreduce-client-core-2.2.0.jar javax.servlet-api-3.0.1.jar
aopalliance-1.0.jar hadoop-mapreduce-client-jobclient-2.2.0.jar jaxb-api-2.2.2.jar
asm-3.1.jar hadoop-mapreduce-client-shuffle-2.2.0.jar jaxb-impl-2.2.3-1.jar
avro-1.7.4.jar hadoop-yarn-api-2.2.0.jar jersey-client-1.9.jar
commons-beanutils-1.7.0.jar hadoop-yarn-client-2.2.0.jar jersey-core-1.8.jar
commons-beanutils-core-1.8.0.jar hadoop-yarn-common-2.2.0.jar jersey-grizzly2-1.9.jar
commons-cli-1.2.jar hadoop-yarn-server-common-2.2.0.jar jersey-guice-1.9.jar
commons-codec-1.7.jar hadoop-yarn-server-nodemanager-2.2.0.jar jersey-json-1.8.jar
commons-collections-3.2.1.jar hamcrest-core-1.3.jar jersey-server-1.8.jar
commons-compress-1.4.1.jar hbase-client-0.98.5-hadoop2.jar jersey-test-framework-core-1.9.jar
commons-configuration-1.6.jar hbase-common-0.98.5-hadoop2.jar jersey-test-framework-grizzly2-1.9.jar
commons-daemon-1.0.13.jar hbase-common-0.98.5-hadoop2-tests.jar jets3t-0.6.1.jar
commons-digester-1.8.jar hbase-examples-0.98.5-hadoop2.jar jettison-1.3.1.jar
commons-el-1.0.jar hbase-hadoop2-compat-0.98.5-hadoop2.jar jetty-6.1.26.jar
commons-httpclient-3.1.jar hbase-hadoop-compat-0.98.5-hadoop2.jar jetty-sslengine-6.1.26.jar
commons-io-2.4.jar hbase-it-0.98.5-hadoop2.jar jetty-util-6.1.26.jar
commons-lang-2.6.jar hbase-it-0.98.5-hadoop2-tests.jar jruby-complete-1.6.8.jar
commons-logging-1.1.1.jar hbase-prefix-tree-0.98.5-hadoop2.jar jsch-0.1.42.jar
commons-math-2.1.jar hbase-protocol-0.98.5-hadoop2.jar jsp-2.1-6.1.14.jar
commons-net-3.1.jar hbase-server-0.98.5-hadoop2.jar jsp-api-2.1-6.1.14.jar
findbugs-annotations-1.3.9-1.jar hbase-server-0.98.5-hadoop2-tests.jar jsr305-1.3.9.jar
gmbal-api-only-3.0.0-b023.jar hbase-shell-0.98.5-hadoop2.jar junit-4.11.jar
grizzly-framework-2.1.2.jar hbase-testing-util-0.98.5-hadoop2.jar libthrift-0.9.0.jar
grizzly-http-2.1.2.jar hbase-thrift-0.98.5-hadoop2.jar log4j-1.2.17.jar
grizzly-http-server-2.1.2.jar high-scale-lib-1.1.1.jar management-api-3.0.0-b012.jar
grizzly-http-servlet-2.1.2.jar htrace-core-2.04.jar metrics-core-2.2.0.jar
grizzly-rcm-2.1.2.jar httpclient-4.1.3.jar netty-3.6.6.Final.jar
guava-12.0.1.jar httpcore-4.1.3.jar paranamer-2.3.jar
guice-3.0.jar jackson-core-asl-1.8.8.jar protobuf-java-2.5.0.jar
guice-servlet-3.0.jar jackson-jaxrs-1.8.8.jar ruby
hadoop-annotations-2.2.0.jar jackson-mapper-asl-1.8.8.jar servlet-api-2.5-6.1.14.jar
hadoop-auth-2.2.0.jar jackson-xc-1.8.8.jar slf4j-api-1.6.4.jar
hadoop-client-2.2.0.jar jamon-runtime-2.3.1.jar slf4j-log4j12-1.6.4.jar
hadoop-common-2.2.0.jar jasper-compiler-5.5.23.jar snappy-java-1.0.4.1.jar
hadoop-hdfs-2.2.0.jar jasper-runtime-5.5.23.jar xmlenc-0.52.jar
hadoop-mapreduce-client-app-2.2.0.jar javax.inject-1.jar xz-1.0.jar
hadoop-mapreduce-client-common-2.2.0.jar javax.servlet-3.1.jar zookeeper-3.4.6.jar


使用javac编译

[root@wangxin test]# javac -cp /usr/local/hbase/lib/hadoop-common-2.2.0.jar:/usr/local/hbase/lib/hbase-common-0.98.5-hadoop2.jar:/usr/local/hbase/lib/hbase-client-0.98.5-hadoop2.jar HBase_c2java.java
Note: HBase_c2java.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

有两个警告。。这个怎么可以处理掉?
运行

[root@wangxin test]# java -cp /usr/local/hbase/lib/hadoop-common-2.2.0.jar:/usr/local/hbase/lib/hbase-common-0.98.5-hadoop2.jar:/usr/local/hbase/lib/hbase-client-0.98.5-hadoop2.jar HBase_c2java
Error: Could not find or load main class HBase_c2java

这里为什么找不到主类?
.java 和.class在同一目录下,这个目录下没有其他文件。
...全文
5271 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
askcxk 2017-04-23
  • 打赏
  • 举报
回复
好吧我发现我的问题是启动命令多写了一个 s,解决了 。和题主的情况还不大一样。。。
askcxk 2017-04-23
  • 打赏
  • 举报
回复
遇到同样的提示,不知道怎么解决 [root@hbase01 hbase-1.3.1]# bin/hbase-daemon.sh start master starting master, logging to /usr/local/bigdata/softwares/hbase-1.3.1/bin/../logs/hbase-root-master-hbase01.out Java HotSpot(TM) Client VM warning: ignoring option PermSize=128m; support was removed in 8.0 Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0 [root@hbase01 hbase-1.3.1]# bin/hbase-daemon.sh start regionservers starting regionservers, logging to /usr/local/bigdata/softwares/hbase-1.3.1/bin/../logs/hbase-root-regionservers-hbase01.out Error: Could not find or load main class regionservers [root@hbase01 hbase-1.3.1]# jps 21248 Jps 21056 HMaster 4308 NodeManager 4052 SecondaryNameNode 4213 ResourceManager 3767 NameNode 9947 HQuorumPeer 3887 DataNode
牛逼飞飞 2015-09-01
  • 打赏
  • 举报
回复
楼主,求助啊,刚学单机模式 就起不来啊。 [root@chenlong hbase-1.0.1.1]# ./bin/start-hbase.sh Error: Could not find or load main class org.apache.hadoop.hbase.util.HBaseConfTool Error: Could not find or load main class org.apache.hadoop.hbase.zookeeper.ZKServerTool starting master, logging to /data/hbase-1.0.1.1/bin/../logs/hbase-root-master-chenlong.out Error: Could not find or load main class org.apache.hadoop.hbase.master.HMaster starting regionserver, logging to /data/hbase-1.0.1.1/bin/../logs/hbase-root-1-regionserver-chenlong.out Error: Could not find or load main class org.apache.hadoop.hbase.regionserver.HRegionServer
坏一点 2015-02-11
  • 打赏
  • 举报
回复
问题解决了。 使用脚本在linux上编译java,这样就会避免很多的的jar包的问题
坏一点 2015-02-02
  • 打赏
  • 举报
回复
楼主:请问这个问题怎么解决的 Note: HBase_c2java.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. 我是在linux下使用javac -cp lib hbase.java时出现的,但是执行后没有生成hbase文件
suifeng371 2014-09-16
  • 打赏
  • 举报
回复
我也遇到这个问题了。是不是某个包没有导入?
(>^ω^<)喵上树 2014-08-29
  • 打赏
  • 举报
回复
如果 你不嫌麻烦,就在linux下编译时把所有的 .jar包都连接进来。
(>^ω^<)喵上树 2014-08-29
  • 打赏
  • 举报
回复
最好的方法是放到windows下来编译。用eclipse会方便很多。。到时要注意windows和linux的JDK版本要一致。 否则 生成的 .class 在linux下是无法使用的!!
姜小白- 2014-08-29
  • 打赏
  • 举报
回复
org.cloudera.htrace.Trace 类找不到,是否楼主是用了源码来编译呢? 导致 部分源码没有编译为class呢
shixitong 2014-08-29
  • 打赏
  • 举报
回复
怎么解决的?给大家说下,是不是少jar包或者没有编译,还是包冲突,这个大家也积累点这方面的经验
(>^ω^<)喵上树 2014-08-29
  • 打赏
  • 举报
回复
问题已解决。回帖就给分结贴!!!!
(>^ω^<)喵上树 2014-08-27
  • 打赏
  • 举报
回复
在 运行时 java -cp (*.jar):. HBase_c2java 在一系列.jar 的后面加上了 :. 出现了这种情况

[root@wangxin hbase_c2java]# java -cp /usr/local/hbase/lib/hadoop-common-2.2.0.jar:/usr/local/hbase/lib/hbase-common-0.98.5-hadoop2.jar:/usr/local/hbase/lib/hbase-client-0.98.5-hadoop2.jar:/usr/local/hbase/lib/hadoop-auth-2.2.0.jar:. HBase_c2java     
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
        at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:165)
        at HBase_c2java.<clinit>(HBase_c2java.java:24)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 2 more
(>^ω^<)喵上树 2014-08-27
  • 打赏
  • 举报
回复
搞了半天。现在变成这样了 写了运行的脚本,太多要包含了。

[root@wangxin hbase_c2java]# cat runjava.sh 
#!/bin/sh

LANG=zh_CN.GBK export LANG


java -cp $HBASE_HOME/lib/hadoop-common-2.2.0.jar:$HBASE_HOME/lib/hbase-common-0.98.5-hadoop2.jar:$HBASE_HOME/lib/commons-logging-1.1.1.jar:$HBASE_HOME/lib/com.google.guava_1.6.0.jar:$HBASE_HOME/lib/hbase-client-0.98.5-hadoop2.jar:$HBASE_HOME/lib/com.google.protobuf-2.4.0.jar:$HBASE_HOME/lib/zookeeper-3.4.6.jar:$HBASE_HOME/lib/commons-lang-2.6.jar:$HBASE_HOME/lib/commons-configuration-1.6.jar:$HBASE_HOME/lib/hadoop-auth-2.2.0.jar:$HBASE_HOME/lib/slf4j-api-1.6.4.jar:$HBASE_HOME/lib/slf4j-log4j12-1.6.4.jar:$HBASE_HOME/lib/log4j-1.2.17.jar:$HBASE_HOME/lib/hbase-protocol-0.98.5-hadoop2.jar:. HBase_c2jav


[root@wangxin hbase_c2java]# ./runjava.sh 
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
java.io.IOException: java.lang.reflect.InvocationTargetException
        at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:411)
        at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:388)
        at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:269)
        at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:192)
        at HBase_c2java.createTable(HBase_c2java.java:33)
        at HBase_c2java.main(HBase_c2java.java:70)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:409)
        ... 5 more
Caused by: java.lang.NoClassDefFoundError: org/cloudera/htrace/Trace
        at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:195)
        at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:479)
        at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65)
        at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:83)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.retrieveClusterId(HConnectionManager.java:852)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:657)
        ... 10 more
Caused by: java.lang.ClassNotFoundException: org.cloudera.htrace.Trace
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 16 more
这些问题一般是什么造成的。。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧