簡體   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