无法在Cloudera VM中使用Java(在Eclipse中)连接到hbase

清酒

我正在尝试使用Cloudera VM中的Java(在Eclipse中)连接到Hbase,但出现错误。能够在命令行中运行相同的程序(通过将我的程序转换为jar)

我的java程序

    `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.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    //import org.apache.hadoop.mapred.MapTask;
    import java.io.FileWriter;
    import java.io.IOException;
   public class HbaseConnection {

      public static void main(String[] args) throws IOException {
        Configuration config = HBaseConfiguration.create();
        config.addResource("/usr/lib/hbase/conf/hbase-site.xml");
        HTable table = new HTable(config, "test_table");
        byte[] columnFamily = Bytes.toBytes("colf");
        byte[] idColumnName = Bytes.toBytes("id");
        byte[] groupIdColumnName = Bytes.toBytes("g_id");
        Put put = new Put(Bytes.toBytes("testkey"));
        put.add(columnFamily, idColumnName, Bytes.toBytes("test id"));
        put.add(columnFamily, groupIdColumnName, Bytes.toBytes("test group id"));
        table.put(put);
        table.close();

      }
    }`

而且我将hbase-site.xml保留在Eclipse的源文件夹中hbase-site.xml

  <property>
    <name>hbase.rest.port</name>
    <value>8070</value>
    <description>The port for the HBase REST server.</description>
  </property>

  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://quickstart.cloudera:8020/hbase</value>
  </property>

  <property>
    <name>hbase.regionserver.ipc.address</name>
    <value>0.0.0.0</value>
  </property>

  <property>
    <name>hbase.master.ipc.address</name>
    <value>0.0.0.0</value>
  </property>

  <property>
    <name>hbase.thrift.info.bindAddress</name>
    <value>0.0.0.0</value>
  </property>

并且在eclipse中运行程序时遇到错误

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.
Exception in thread "main" java.io.IOException: java.lang.reflect.InvocationTargetException
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:389)
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:366)
    at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:247)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:188)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:150)
    at com.aig.gds.hadoop.platform.idgen.hbase.HBaseTest.main(HBaseTest.java:34)
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:387)
    ... 5 more
Caused by: java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.hdfs.DistributedFileSystem could not be instantiated
    at java.util.ServiceLoader.fail(ServiceLoader.java:224)
    at java.util.ServiceLoader.access$100(ServiceLoader.java:181)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:445)
    at org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2400)
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2411)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2428)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:88)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2467)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2449)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:367)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:287)
    at org.apache.hadoop.hbase.util.DynamicClassLoader.<init>(DynamicClassLoader.java:104)
    at org.apache.hadoop.hbase.protobuf.ProtobufUtil.<clinit>(ProtobufUtil.java:197)
    at org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:64)
    at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:69)
    at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:83)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.retrieveClusterId(HConnectionManager.java:801)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:633)
    ... 10 more
Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.addDeprecations([Lorg/apache/hadoop/conf/Configuration$DeprecationDelta;)V
    at org.apache.hadoop.hdfs.HdfsConfiguration.addDeprecatedKeys(HdfsConfiguration.java:66)
    at org.apache.hadoop.hdfs.HdfsConfiguration.<clinit>(HdfsConfiguration.java:31)
    at org.apache.hadoop.hdfs.DistributedFileSystem.<clinit>(DistributedFileSystem.java:114)
    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 java.lang.Class.newInstance(Class.java:374)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373)
    ... 26 more

提前致谢。

尤吉斯

问题的根本原因在于堆栈跟踪:

NoSuchMethodError: org.apache.hadoop.conf.Configuration.addDeprecations

这意味着您的hadoop-common-* jar版本与您的hadoop-hdfs-* jar版本不同步,或者您的类路径中可能混合了不同的版本。

请注意,hadoop 2.3.0及更高版本中存在addDeprecations:https://hadoop.apache.org/docs/r2.3.0/api/org/apache/hadoop/conf/Configuration.html

但在2.2.0及更低版本中丢失:https : //hadoop.apache.org/docs/r2.2.0/api/org/apache/hadoop/conf/Configuration.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在Cloudera Quickstart VM 5.3.0中使用Cloudera Manager添加新服务

来自分类Dev

快速启动VM Cloudera包裹无法启动

来自分类Dev

无法在Eclipse中连接到VM

来自分类Dev

无法使用Java API连接到Hbase

来自分类Dev

无法使用Java连接到Hbase

来自分类Dev

使用spring数据hadoop连接到Cloudera QuickStart VM Hbase时,未知的主机异常

来自分类Dev

Hive无法加载数据-Cloudera QuickStart VM 5.8

来自分类Dev

无法通过Java API(Cloudera-CDH4.4.0)访问HDFS

来自分类Dev

无法使用 cloudera 快速入门重新启动 Hadoop namenode

来自分类Dev

无法将Impala-Kudu连接到Apache Kudu(没有Cloudera Manager):获取TTransportException错误

来自分类Dev

Cloudera hadoop:无法运行Hadoop fs命令,同时HBase无法在HDFS上创建目录吗?

来自分类Dev

无法使用Java从VM连接到mysql数据库

来自分类Dev

无法使用 SSH 连接到 VM (GCE)

来自分类Dev

无法在Java中使用Silvertunnel Netlib连接到Tor网络

来自分类Dev

Errno 14 PYCURL错误6; 无法解析Cloudera Manager 7.x升级中的主机

来自分类Dev

在伪分布式模式下使用Cloudera Manager设置Hadoop-Datanode无法启动

来自分类Dev

在伪分布式模式下使用Cloudera Manager设置Hadoop-Datanode无法启动

来自分类Dev

无法在Ubuntu 14.04中使用OpenVPN连接到VPN

来自分类Dev

无法安装Cloudera

来自分类Dev

Cloudera Manager无法启动

来自分类Dev

Cloudera Kafka无法运行

来自分类Dev

无法通过CM5.5-vmware中的Java客户端连接到hbase

来自分类Dev

在Cloudera中使用Storm

来自分类Dev

无法从Windows连接到HBase

来自分类Dev

无法从Windows连接到HBase

来自分类Dev

无法在VirtualBox VM中连接到Internet-Ubuntu

来自分类Dev

无法连接到Microsoft Azure中的linux VM

来自分类Dev

无法连接到在 Ubuntu VM 中运行的 PostgreSQL

来自分类Dev

无法使用远程桌面连接到Windows 10 VM

Related 相关文章

  1. 1

    无法在Cloudera Quickstart VM 5.3.0中使用Cloudera Manager添加新服务

  2. 2

    快速启动VM Cloudera包裹无法启动

  3. 3

    无法在Eclipse中连接到VM

  4. 4

    无法使用Java API连接到Hbase

  5. 5

    无法使用Java连接到Hbase

  6. 6

    使用spring数据hadoop连接到Cloudera QuickStart VM Hbase时,未知的主机异常

  7. 7

    Hive无法加载数据-Cloudera QuickStart VM 5.8

  8. 8

    无法通过Java API(Cloudera-CDH4.4.0)访问HDFS

  9. 9

    无法使用 cloudera 快速入门重新启动 Hadoop namenode

  10. 10

    无法将Impala-Kudu连接到Apache Kudu(没有Cloudera Manager):获取TTransportException错误

  11. 11

    Cloudera hadoop:无法运行Hadoop fs命令,同时HBase无法在HDFS上创建目录吗?

  12. 12

    无法使用Java从VM连接到mysql数据库

  13. 13

    无法使用 SSH 连接到 VM (GCE)

  14. 14

    无法在Java中使用Silvertunnel Netlib连接到Tor网络

  15. 15

    Errno 14 PYCURL错误6; 无法解析Cloudera Manager 7.x升级中的主机

  16. 16

    在伪分布式模式下使用Cloudera Manager设置Hadoop-Datanode无法启动

  17. 17

    在伪分布式模式下使用Cloudera Manager设置Hadoop-Datanode无法启动

  18. 18

    无法在Ubuntu 14.04中使用OpenVPN连接到VPN

  19. 19

    无法安装Cloudera

  20. 20

    Cloudera Manager无法启动

  21. 21

    Cloudera Kafka无法运行

  22. 22

    无法通过CM5.5-vmware中的Java客户端连接到hbase

  23. 23

    在Cloudera中使用Storm

  24. 24

    无法从Windows连接到HBase

  25. 25

    无法从Windows连接到HBase

  26. 26

    无法在VirtualBox VM中连接到Internet-Ubuntu

  27. 27

    无法连接到Microsoft Azure中的linux VM

  28. 28

    无法连接到在 Ubuntu VM 中运行的 PostgreSQL

  29. 29

    无法使用远程桌面连接到Windows 10 VM

热门标签

归档