❶ shell怎樣過濾掉hbase-site.xml文件中的注釋項
hbase接到命令後存下變化信息或者寫入失敗異常的拋出,默認情況下。執行寫入時會寫到兩個地方:預寫式日誌(write-ahead log,也稱hlog)和memstore,以保證數據持久化。memstore是內存里的寫入緩沖區。客戶端在寫的過程中不會與底層的hfile直接交互,當menstore寫滿時,會刷新到硬碟,生成一個新的hfile.hfile是hbase使用的底層存儲格式。menstore的大小由hbase-site.xml文件里的系統級屬性hbase.hregion.memstore.flush.size來定義。
hbase在讀操作上使用了lru緩存機制(blockcache),blockcache設計用來保存從hfile里讀入內存的頻繁訪問的數據,避免硬碟讀。每個列族都有自己的blockcache。blockcache中的block是hbase從硬碟完成一次讀取的數據單位。block是建立索引的最小數據單位,也是從硬碟讀取的最小數據單位。如果主要用於隨機查詢,小一點的block會好一些,但是會導致索引變大,消耗更多內存,如果主要執行順序掃描,大一點的block會好一些,block變大索引項變小,因此節省內存。
LRU是Least Recently Used 近期最少使用演算法。內存管理的一種頁面置換演算法,對於在內存中但又不用的數據塊(內存塊)叫做LRU,操作系統會根據哪些數據屬於LRU而將其移出內存而騰出空間來載入另外的數據。
❷ 如何啟動hbase 自帶了一個 zkcli
常用到的HBase啟動腳本有:
1.$HBASE_HOME/bin/start-hbase.sh
啟動整個集群
2.$HBASE_HOME/bin/stop-hbase.sh
停止整個集群
3.$HBASE_HOME/bin/hbase-daemons.sh
啟動或停止,所有的regionserver或zookeeper或backup-master
4.$HBASE_HOME/bin/hbase-daemon.sh
啟動或停止,單個master或regionserver或zookeeper
以start-hbase.sh為起點,可以看看腳本間的一些調用關系
start-hbase.sh的流程如下:
1.運行hbase-config.sh(作用後面解釋)
2.解析參數(0.96版本及以後才可以帶唯一參數autorestart,作用就是重啟)
3.調用hbase-daemon.sh來啟動master;調用hbase-daemons.sh來啟動regionserver zookeeper master-backup
hbase-config.sh的作用:
裝載相關配置,如HBASE_HOME目錄,conf目錄,regionserver機器列表,java_HOME目錄等,它會調用$HBASE_HOME/conf/hbase-env.sh
hbase-env.sh的作用:
主要是配置JVM及其GC參數,還可以配置log目錄及參數,配置是否需要hbase管理ZK,配置進程id目錄等
hbase-daemons.sh的作用:
根據需要啟動的進程,
如為zookeeper,則調用zookeepers.sh
如為regionserver,則調用regionservers.sh
如為master-backup,則調用master-backup.sh
zookeepers.sh的作用:
如果hbase-env.sh中的HBASE_MANAGES_ZK" = "true",那麼通過ZKServerTool這個類解析xml配置文件,獲取ZK節點列表(即hbase.zookeeper.quorum的配置值),然後通過SSH向這些節點發送遠程命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop zookeeper
regionservers.sh的作用:
與zookeepers.sh類似,通過${HBASE_CONF_DIR}/regionservers配置文件,獲取regionserver機器列表,然後SSH向這些機器發送遠程命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop regionserver
master-backup.sh的作用:
通過${HBASE_CONF_DIR}/backup-masters這個配置文件,獲取backup-masters機器列表(默認配置中,這個配置文件並不存在,所以不會啟動backup-master),然後SSH向這些機器發送遠程命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop master --backup
hbase-daemon.sh的作用:
無論是zookeepers.sh還是regionservers.sh或是master-backup.sh,最終都會調用本地的hbase-daemon.sh,其執行過程如下:
1.運行hbase-config.sh,裝載各種配置(java環境、log配置、進程ID目錄等)
2.如果是start命令?
滾動out輸出文件,滾動gc日誌文件,日誌文件中輸出啟動時間+ulimit -a信息,如
「Mon Nov 26 10:31:42 CST 2012 Starting master on dwxx.yy.taobao」
"..open files (-n) 65536.."
3.調用$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
4.執行wait,等待3中開啟的進程結束
5.執行cleanZNode,將regionserver在zk上登記的節點刪除,這樣做的目的是:在regionserver進程意外退出的情況下,可以免去3分鍾的ZK心跳超時等待,直接由master進行宕機恢復
6.如果是stop命令?
根據進程ID,檢查進程是否存在;調用kill命令,然後等待到進程不存在為止
7.如果是restart命令?
調用stop後,再調用start。。。
$HBASE_HOME/bin/hbase的作用:
最終啟動的實現由這個腳本執行
1.可以通過敲入$HBASE_HOME/bin/hbase查看其usage
DBA TOOLS
shell run the HBase shell
hbck run the hbase 'fsck' tool
hlog write-ahead-log analyzer
hfile store file analyzer
zkcli run the ZooKeeper shell
PROCESS MANAGEMENT
master run an HBase HMaster node
regionserver run an HBase HRegionServer node
zookeeper run a Zookeeper server
rest run an HBase REST server
thrift run the HBase Thrift server
thrift2 run the HBase Thrift2 server
avro run an HBase Avro server
PACKAGE MANAGEMENT
classpath mp hbase CLASSPATH
version print the version
or
CLASSNAME run the class named CLASSNAME
2.bin/hbase shell,這個就是常用的shell工具,運維常用的DDL和DML都會通過此進行,其具體實現(對hbase的調用)是用ruby寫的
3.bin/hbase hbck, 運維常用工具,檢查集群的數據一致性狀態,其執行是直接調用
org.apache.hadoop.hbase.util.HBaseFsck中的main函數
4.bin/hbase hlog, log分析工具,其執行是直接調用
org.apache.hadoop.hbase.regionserver.wal.HLogPrettyPrinter中的main函數
5.bin/hbase hfile, hfile分析工具,其執行是直接調用
org.apache.hadoop.hbase.io.hfile.HFile中的main函數
6.bin/hbase zkcli,查看/管理ZK的shell工具,很實用,經常用,比如你可以通過(get /hbase-tianwu-94/master)其得知當前的active master,可以通過(get /hbase-tianwu-94/root-region-server)得知當前root region所在的server,你也可以在測試中通過(delete /hbase-tianwu-94/rs/dwxx.yy.taobao),模擬regionserver與ZK斷開連接,,,
其執行則是調用了org.apache.zookeeper.ZooKeeperMain的main函數
7.回歸到剛才hbase-daemon.sh對此腳本的調用為:
$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
其執行則直接調用
org.apache.hadoop.hbase.master.HMaster
org.apache.hadoop.hbase.regionserver.HRegionServer
org.apache.hadoop.hbase.zookeeper.HQuorumPeer
的main函數,而這些main函數就是了new一個了Runnable的HMaster/HRegionServer/QuorumPeer,在不停的Running...
8.bin/hbase classpath 列印classpath
9.bin/hbase version 列印hbase版本信息
10.bin/hbase CLASSNAME, 這個很實用,所有實現了main函數的類都可以通過這個腳本來運行,比如前面的hlog hfile hbck工具,實質是對這個介面的一個快捷調用,而其他未提供快捷方式的class我們也可以用這個介面調用,如Region merge 調用:
$HBASE_HOME/bin/hbase/org.apache.hadoop.hbase.util.Merge
❸ hbase怎麼用
HBase安裝及簡單使用
通過之前的hadoop0.20.2的安裝並調試成功,接下來我們繼續安裝hbase0.90.5。在安裝hbase0.90.5之前,因為hbase0.90.5隻支持jdk1.6,所以,我把之前的jdk1.8卸載,重新安裝了jdk1.6。
第一步:
首先需要下載hbase0.90.5.tar.gz,並解壓到/home/hadoop/的目錄下,同時將目錄修改為hbase0.90.5
第二步:
替換hadoop核心jar包,主要母的是防止hbase和hadoop版本不同出現兼容問題,造成hmaster啟動異常
將hbase0.90.5/lib目錄中的hadoop-core-0.20-append-r1056497.jar包進行備份後刪除,再將/home/hadoop/hadoop下面的hadoop-0.20.2-core.jar賦值到/home/hadoop/hbase0.90.5目錄下即可
第三步:
編輯配置文件
①/home/hadoop/hbase0.90.5/conf/hbase-env.sh
我們對行鍵'1001'中列族info的列名age賦值24(1001:info:age=>24),插入兩次,會將最後一次的值進行合並,其中,用時間戳來區分。從圖片中的時間戳不同可以看出保存的是最後一次put的內容。
❹ hbase命令行方式插入一條數據到某個表中使用什麼命令
命令:disable
'tableName'
--disable表。註:修改表結構時,必須要先disable表。
命令:enable
'tableName'
--使表可用
命令:drop
'tableName'
--刪除表
❺ 如何程序讀取Hbase中hfile文件的內容
hbase的region是按行劃分,而非按列,如果你讀取指定一行的所有列數據,regionServer雖然無法保證你的所有數據都在一個HFile中,但是至少是在一個Region中。但是具體的HFile所在的hdfs的節點那就不是HBase關心的事了,因為HBase的存儲是依賴與hd...
❻ hbase資料庫查詢命令有什麼
您好,對於你的遇到的問題,我很高興能為你提供幫助,我之前也遇到過喲,以下是我的個人看法,希望能幫助到你,若有錯誤,還望見諒!。展開全部
select
*
from
a
where
列名
<>0
--<>標示不等於
2.--not
in
select
*
from
a
where
列名
not
in(0)
--這樣是用索
不用。
3.--子
where
select
*
from
a
where
a
not
in
(select
列名from
a
where
a
='1')非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
❼ hbase配置hfile.block.cache.size不生效
自動重啟一般有兩種情況。1、硬體故障或者硬體與硬 件沖突,硬體接觸不良等。2、軟體故障,軟體與硬體沖突或軟體 與軟體沖突。?解決辦法:1、硬體故障通常不 容易解決,因為有的原因 有可能是手機在生產過程中已經出現的問題,通常需要廠家質保。2、軟體與軟體沖突或者軟 件與硬體沖突的解決,最簡單的就是恢復出廠值,然後不安裝任何軟體的情況下觀察手機 是否還有問題,如果有就不是軟體問題,或者是手機廠家出廠就有軟體問題,另外也可以刷不同的系 統觀察手機是否有這種情況。