我在独立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;
}
你能显示导致这个错误的java代码吗? – Whitefret
我已经添加了java代码来访问hbase – SUDARSHAN
10你在哪里执行Java代码?直接在快速入门虚拟机上?或远程?你能告诉我Hbase版本吗? –