亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么開啟hbase后一會hmaster和hregionserver就沒了?啥情況???

2021-12-12 13:05:20,551 WARN [main-SendThread(192.168.109.130:2128)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnectjava.net.ConnectException: 拒絕連接at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)2021-12-12 13:05:20,653 WARN [main] zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper, quorum=192.168.109.130:2128, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase2021-12-12 13:05:20,653 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper create failed after 4 attempts2021-12-12 13:05:20,654 ERROR [main] master.HMasterCommandLine: Master exitingjava.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster
查看完整描述

2 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

一、通常向HBase批量導入數據有三種常用方式
1、使用HBase提供的TableOutputFormat,原理是通過一個Mapreduce作業將數據導入HBase
2、還有一種方式就是使用HBase原生Client API(put)
3、前兩種方式因為須要頻繁的與數據所存儲的RegionServer通信。一次性入庫大量數據時,特別占用資源,所以都不是很有效。因為HBase在HDFS中是以HFile文件結構存儲的,所以高效便捷的方法就是直接生成HFile文件然后使用Bulk Load方法,即HBase提供的HFileOutputFormat類。
二、Bulk Load基本原理
Bulk Load處理由兩個主要步驟組成:
1、生成HFile文件
Bulk Load的第一步會執行一個Mapreduce作業,其中使用到了HFileOutputFormat輸出HBase數據文件:StoreFile。
HFileOutputFormat的作用在于使得輸出的HFile文件能夠適應單個region。使用TotalOrderPartitioner類將map輸出結果分區到各個不同的key區間中,每一個key區間都相應著HBase表的region。
2、導入HBase表
第二步使用completebulkload工具將第一步的結果文件依次交給負責文件相應region的RegionServer,并將文件move到region在HDFS上的存儲文件夾中。一旦完畢。將數據開放給clients。
假設在bulk load準備導入或在準備導入與完畢導入的臨界點上發現region的邊界已經改變,completebulkload工具會自己主動split數據文件到新的邊界上。可是這個過程并非最佳實踐,所以用戶在使用時須要最小化準備導入與導入集群間的延時,特別是當其它client在同一時候使用其它工具向同一張表導入數據。
Bulk Load常遇到的一個ERROR:”java.io.IOException: Retry attempted 10 times without completing, bailing out”
錯誤解析:
我們使用的Hbase1.0.2版本下,如果Hfile文件 跨越多個region,bulkload會自動地將Hfile文件split,但是對于每次retry只會將指定的Hfile文件split一次。但是在hbase-site.xml配置文件里有個參數hbase.bulkload.retries.number控制了hbase對一個hfile最多plit多少次。這個參數默認是10,如果某個hfile跨越的region數超過10個就會報上述Exception。
解決方案:
將hbase.bulkload.retries.number這個參數設置為更大的值,比如目標表的region數量或者將這個參數設置成0,0表示不斷重試直到成功。設置之后問題解決。


查看完整回答
反對 回復 2022-07-05
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

1HBase的定義

HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統。

適合于存儲大表數據(表的規??梢赃_到數十億行以及數百萬列),并且對大表數據的讀、寫訪問可以達到實時級別。利用Hadoop HDFS(Hadoop Distributed File System)作為其文件存儲系統,提供實時讀寫的數據庫系統;利用ZooKeeper作為協同服務。

2HBase的架構

3HBase的適用場景

HBase適合具有如下需求的應用:

o海量數據(TB、PB)

o高吞吐量

o需要在海量數據中實現高效的隨機讀取

o需要很好的性能伸縮能力

o能夠同時處理結構化和非結構化的數據

o不需要完全擁有傳統關系型數據庫所具備的ACID特性

4成功應用場景案例

項目背景

某銀行僅支持查詢最近一年的賬戶歷史交易情況,超過一年的查詢需要特殊申請,由專人進行人工查詢

原因:

o傳統數據庫無法存儲海量數據。

o大數據量下查詢性能急劇下降。

HBase的優勢

o海量數據(TB、PB):可由查詢一年變為十年或更多

o高效隨機讀?。翰樵兂^一年的數據與查詢最近數據同樣高效


查看完整回答
反對 回復 2022-07-05
  • 2 回答
  • 0 關注
  • 314 瀏覽

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號