2016-08-04 52 views
0

Ich bin Hbase auf Standalone Cloudera vm ausgeführt. Ich versuche nur, von meinem Java-Code eine Verbindung mit hbase herzustellen, bekomme aber immer diese Ausnahme. Ich habe keinen Eintrag in der hbase-site.xml gemacht. Ich habe auch Hbase und zoekeper laufen. Im Folgenden finden Sie Ausnahme erhalte ich:Keine Verbindung zu Hbase mit Java-API möglich

ming-2.6.0-cdh5.7.0.jar:/usr/lib/Hadoop-MapReduce /.// hadoop-mapreduce-client-hs-plugins.jar:/usr/lib/hadoop-mapreduce /.// hadoop-mapreduce-client-jobclient-tests.jar
16/08/03 23:04:33 INFO zookeeeper.ZooKeeper: Clientumgebung: java.library.path =/usr/lib/hadoop/lib/native
16/08/03 23:04:33 INFO zookeeeper.ZooKeeper: Client-Umgebung: java.io.tmpdir =/tmp
16/08/03 23:04:33 INFO Zoowärter .ZooKeeper: Clientumgebung: java.compiler =
16/08/03 23:04:33 INFO zookeeeper.ZooKeeper: Clientumgebung: os.name = Linux
16/08/03 23:04:33 INFO zoekeeper.ZooKeeper: Clientumgebung: os.arch = amd64
16/08/03 23:04:33 INFO zookeeeper.ZooKeeper: Clientumgebung: os.version = 2.6. 32-573.el6.x86_64
16/08/03 23:04:33 INFO zookeeper.ZooKeeper: Clientumgebung: user.name = cloudera
16/08/03 23:04:33 INFO zookeeeper.ZooKeeper: Client Umgebung: user.home =/home/cloudera
16/08/03 23:04:33 INFO zookeeeper.ZooKeeper: Clientumgebung: user.dir =/home/cloudera 16/08/03 23:04:33 INFO zookeeper.ZooKeeper: Clientverbindung wird initiiert, connectString = localhost: 2181 sessionTimeout = 90000 watcher = hconnection-0x2da61880x0, quorum = localhost: 2181, baseZNode =/hbase
16/08/03 23:04:33 INFO zookeeper.ClientCnxn: Öffnen der Socketverbindung zum Server quickstart.cloudera/127.0.0.1: 2181. Wird nicht versuchen, mit SASL zu authentifizieren (unbekannter Fehler)
16/08/03 23:04:33 INFO zookeeper.ClientCnxn: Socket-Verbindung hergestellt, initiierende Sitzung, Client: /127.0.0.1:56535, Server: quickstart.cloudera/127.0.0.1:2181
16/08/03 23:04:33 INFO zookeeeper.ClientCnxn: Der Sitzungsaufbau ist auf dem Server quickstart.cloudera/127.0.0.1: 2181, sessionid = 0x1562b869790000e, ausgehandeltes Zeitlimit = 40000
16/08 abgeschlossen/03 23:04:33 INFO mapreduce.HFileOutputFormat: Suche nach aktuellen Regionen für den Tabellenbenutzer; hconnection-0x2da6188 org.apache.hadoop.hbase.client.RetriesExhaustedException: Fehler nach Versuchen = 36, Ausnahmen:
Wed Aug 03 23 : 05: 21 PDT 2016, null, java.net.SocketTimeoutException: callTimeout = 60000, callDuration = 68660: Zeile 'user ,, 00000000000000' auf dem Tisch 'hbase: meta' bei region = hbase: meta ,, 1,1588230740, hostname = quickstart.cloudera, 60020,1469171048401, SEQNUM = 0

Das ist mein Java-Code.

public int run(String[] args) throws Exception { 
     int result=0; 
     String outputPath = args[1];   
     Configuration configuration = getConf(); 
     configuration.set("data.seperator", DATA_SEPERATOR);   
     configuration.set("hbase.table.name",TABLE_NAME);  
     configuration.set("COLUMN_FAMILY_1",COLUMN_FAMILY_1);  
     configuration.set("COLUMN_FAMILY_2",COLUMN_FAMILY_2);  
     Job job = new Job(configuration);  
     job.setJarByClass(HBaseBulkLoadDriver.class);  
     job.setJobName("Bulk Loading HBase Table::"+TABLE_NAME);   
     job.setInputFormatClass(TextInputFormat.class);  
     job.setMapOutputKeyClass(ImmutableBytesWritable.class);  
     job.setMapperClass(HBaseBulkLoadMapper.class);  
     FileInputFormat.addInputPaths(job, args[0]);   
     FileSystem.getLocal(getConf()).delete(new Path(outputPath), true);  
     FileOutputFormat.setOutputPath(job, new Path(outputPath));  
     job.setMapOutputValueClass(Put.class);  
     HFileOutputFormat.configureIncrementalLoad(job, new HTable(configuration,TABLE_NAME));  
     job.waitForCompletion(true);   
     if (job.isSuccessful()) { 
      HBaseBulkLoad.doBulkLoad(outputPath, TABLE_NAME); 
     } else { 
      result = -1; 
     } 
     return result; 
    } 
+0

können Sie den Java-Code anzeigen, der zu diesem Fehler führt? – Whitefret

+0

Ich habe Java-Code hinzugefügt, um auf hbase zuzugreifen – SUDARSHAN

+0

Wohin führen Sie den Java-Code aus? direkt auf Quickstart VM? oder entfernt? und kannst du mir die Hbase Version erzählen? –

Antwort

0

Zookeeper wird über localhost aufgelöst und Verbindung hergestellt. Können Sie quickstart.cloudera auflösen? Meine Vermutung ist, dass es sich um ein DNS-Problem handelt, da die Zeitüberschreitung bei quickstart.cloudera liegt. Ist das sinnvoll?