2016-08-04 100 views
0

我在獨立cloudera虛擬機上運行Hbase。我只是試圖從我的java代碼連接到hbase,但一直都會得到這個異常。我沒有在hbase-site.xml中進行任何輸入。我也有Hbase和zookeper啓動並運行。下面是例外,我得到:無法使用java api連接到Hbase

明2.6.0-cdh5.7.0.jar:/ usr/lib中/ Hadoop的MapReduce的/.//類Hadoop MapReduce的客戶HS-plugins.jar:/ usr/lib/hadoop-mapreduce /./ hadoop-mapreduce-client-jobclient-tests.jar
16/08/03 23:04:33 INFO zookeeper.ZooKeeper:客戶端環境:java.library.path =/usr/lib/hadoop/lib/native
16/08/03 23:04:33信息zookeeper.ZooKeeper:客戶端環境:java.io.tmpdir =/tmp
16/08/03 23:04:33 INFO zookeeper .ZooKeeper:客戶端環境:java.compiler =
16/08/03 23:04:33信息zookeeper.ZooKeeper:客戶端環境:os.name = Linux
16/08/03 23:04:33信息zookeeper.ZooKeeper:客戶端環境:os.arch = amd64
16/08/03 23:04:33信息zookeeper.ZooKeeper:客戶端環境:os.version = 2.6。 32-573.el6.x86_64
16/08/03 23:04:33信息zookeeper.ZooKeeper:客戶端環境:user.name = cloudera
16/08/03 23:04:33信息zookeeper.ZooKeeper:客戶端環境:user.home =/home/cloudera
16/08/03 23:04:33信息zookeeper.ZooKeeper:客戶端環境:user.dir =/home/cloudera
16/08/03 23:04:33 INFO zookeeper.ZooKeeper:啓動客戶端連接,connectString = localhost:2181 sessionTimeout = 90000 watcher = hconnection-0x2da61880x0,quorum = localhost:2181,baseZNode =/hbase
16/08/03 23:04:33信息zookeeper.ClientCnxn:打開套接字連接到服務器quickstart.cloudera/127.0.0.1:2181。不會嘗試使用SASL進行身份驗證(未知錯誤)
16/08/03 23:04:33 INFO zookeeper.ClientCnxn:建立套接字連接,啓動會話,客戶端:/127.0.0.1:56535,服務器:quickstart.cloudera/127.0.0.1:2181
16/08/03 23:04:33信息zookeeper.ClientCnxn:服務器上的會話建立完成quickstart.cloudera/127.0.0.1:2181,sessionid = 0x1562b869790000e,協商超時= 40000
16/08/03 23:04:33 INFO mapreduce.HFileOutputFormat:查找表用戶的當前區域; hconnection-0x2da6188 org.apache.hadoop.hbase.client.RetriesExhaustedException:失敗後嘗試= 36,例外:
Wed Aug 03 23 :05:21 PDT 2016,null,java.net.SocketTimeoutException:callTimeout = 60000,callDuration = 68660:行 '用戶,, 00000000000000' 上表 '的HBase:元' 在區域= HBase的:元,, 1.1588230740,主機名= quickstart.cloudera,60020,1469171048401,SEQNUM = 0

這是我的Java代碼。

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

你能顯示導致這個錯誤的java代碼嗎? – Whitefret

+0

我已經添加了java代碼來訪問hbase – SUDARSHAN

+0

10你在哪裏執行Java代碼?直接在快速入門虛擬機上?或遠程?你能告訴我Hbase版本嗎? –

回答

0

Zookeeper通過本地主機解析並正常連接。你能解決quickstart.cloudera嗎?我猜這是自Quickstart.cloudera調用超時以來的DNS問題。那有意義嗎?