HBase Java API 问题之put 卡住

搭建好Hbase集群环境,熟悉其基本原理后,下载eclipse后,编写代码,操作hbase API,往Hbase中添加数据,卡在了put。

public static void insertData() throws IOException{
    	//put对象 数据插入的操作对象
    	System.out.println("insertData begin");
    	String rowkey="000001";
    	String cf = "C1";
    	String cn = "testdata";
    	String value = "2022/05/12";
    	
    	Put put = new Put(Bytes.toBytes(rowkey));
    	//给put对象赋值
    	put.addColumn(Bytes.toBytes(cf), Bytes.toBytes(cn), Bytes.toBytes(value));
    	
    	//插入数据
    	System.out.println("put begin");
    	table.put(put);
    	System.out.println("put end");
    	//关闭表连接
    	//table.close();
    	System.out.println("insertData end");
    }
conf.set("hbase.zookeeper.quorum", "mu01:2181,cu01:2181,cu02:2181");

上面是我的代码段,mu01,cu01,cu02是集群的地址。使用getTable可以获取到Table。当时感觉奇怪,windows怎么会识别这些域名呢,想着表都获取了,就以为没问题了。
put的时候出问题了。。。。。。

很长一段时间后,报错新信息如下:

org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 1 action: RetriesExhaustedException: 1 time, servers with issues: null
closed success!
	at org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.makeException(AsyncProcess.java:295)
	at org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.access$2300(AsyncProcess.java:271)
	at org.apache.hadoop.hbase.client.AsyncProcess.waitForAllPreviousOpsAndReset(AsyncProcess.java:1924)
	at org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:303)
	at org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:266)
	at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1477)
	at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1024)
	at hbase_test1.testconnection.insertData(testconnection.java:96)
	at hbase_test1.testconnection.main(testconnection.java:108)

上网查询资料,提到hosts文件,才恍然大悟,需要修改windows(windows下安装的eclipse,调用的Hbase java API)下的hosts文件,添加Hbase集群域名地址。windows下的hosts文件路径:  C:\Windows\System32\drivers\etc\hosts

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值