繁体   English   中英

Java Hbase Client检查表是否存在日志信息

[英]Java Hbase Client check table exists log information

我编写了一个Java程序以将数据插入HBase。 如果我只是简单地使用

HTable table = new HTable(conf, tableName);
table.put(put);

找到hbase登录控制台; 但是,如果在此之前放置“检查表存在条件”,例如

if(admin.tableExists(tableName))
{
     HTable table = new HTable(conf, tableName);
     table.put(put);
}

HBase登录控制台显示更多奇怪的信息

14/03/04 11:29:26 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=catalogtracker-on-org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@11957996
14/03/04 11:29:26 INFO zookeeper.ClientCnxn: Opening socket connection to server /127.0.0.1:2181
14/03/04 11:29:26 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 23872@localhost
14/03/04 11:29:26 INFO zookeeper.ClientCnxn: Socket connection established to localhost/127.0.0.1:2181, initiating session
14/03/04 11:29:26 INFO zookeeper.ClientCnxn: Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x44558c9b8f009f, negotiated timeout = 180000
14/03/04 11:29:26 INFO zookeeper.ZooKeeper: Session: 0x44558c9b8f009f closed
14/03/04 11:29:26 INFO zookeeper.ClientCnxn: EventThread shut down

没有错误显示,但是每次程序进行表检查时,它都会重复显示此无用的信息,因此您可以想象hbase控制台输出看起来像我要插入数百万个数据。

谁能告诉我如何避免HBase显示此无用的信息(插入之前我必须检查表是否存在)? 我只是想使控制台更干净。

您可以在HBase的log4j.properties更改控制台上显示的日志记录级别。 默认情况下将其设置为INFO,您可以将其更改为更高的值(WARN / ERROR),这将阻止HBase将INFO级别的日志写入控制台。

或者,您可以使HBase将日志打印到文件而不是控制台中,这样您的控制台将很干净。

这是您应该在log4j.properties修改的属性:

hbase.root.logger=INFO,console
hbase.security.logger=INFO,console
hbase.log.dir=.
hbase.log.file=hbase.log

log4j.logger.org.apache.zookeeper=INFO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM