新聞中心
ubuntu下HBase安裝

創(chuàng)新互聯(lián)公司秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷(xiāo)的理念,以專(zhuān)業(yè)定制企業(yè)官網(wǎng),網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作,微信小程序,網(wǎng)頁(yè)設(shè)計(jì)制作,成都手機(jī)網(wǎng)站制作,成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專(zhuān)業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專(zhuān)業(yè)和所長(zhǎng)。
1.從http://www.apache.org/dyn/closer.cgi/hbase/下載穩(wěn)定版安裝包,我下的是hbase-1.2.6-bin.tar.gz
2.解壓放在/usr/local的目錄下
3.修改權(quán)限
sudo chown -R luanpeng hbase-1.2.6/
4.修改文件夾的名稱(chēng)為hbase
5.在~/.bashrc下添加,之后source一下
export PATH=$PATH:/usr/local/hbase/bin
或者在 /etc/profile中添加
export HBASE_HOME=/usr/local/hbase
export PATH=${HBASE_HOME}/bin:$PATH
6.修改文件夾的權(quán)限
cd /usr/local
sudo chown -R luanpeng ./hbase
7.測(cè)試一下是否安裝成功
hbase version
單機(jī)版hbase配置
配置/usr/local/hbase/conf/hbase-env.sh 。
配置Java環(huán)境變量,并添加配置HBASE_MANAGES_ZK為true,用vi命令打開(kāi)并編輯hbase-env.sh,命令如下
HBASE_MANAGES_ZK為true的時(shí)候使用的Hbase自帶的zookeeper,使用jps來(lái)查看的時(shí)候進(jìn)程的名字前面都是帶h的,比如:HRegionServer、HQuorumPeer、HMaster
vi /usr/local/hbase/conf/hbase-env.sh
export JAVA_HOME=/usr/lib/java8/jdk1.8.0_65
export HBASE_MANAGES_ZK=true
配置/usr/local/hbase/conf/hbase-site.xml。
在啟動(dòng)HBase前需要設(shè)置屬性hbase.rootdir,用于指定HBase數(shù)據(jù)的存儲(chǔ)位置,因?yàn)槿绻辉O(shè)置的話,hbase.rootdir默認(rèn)為/tmp/hbase-${user.name},這意味著每次重啟系統(tǒng)都會(huì)丟失數(shù)據(jù)。
單機(jī)版hbase測(cè)試
接下來(lái)測(cè)試運(yùn)行。首先切換目錄至HBase安裝目錄/usr/local/hbase;再啟動(dòng)HBase。命令如下:
cd /usr/local/hbase
bin/start-hbase.sh
bin/hbase shell
sudo bin/start-hbase.sh用于啟動(dòng)HBase
bin/hbase shell用于打開(kāi)shell命令行模式,用戶可以通過(guò)輸入shell命令操作HBase數(shù)據(jù)庫(kù)。
停止HBase運(yùn)行,命令如下:
sudo bin/stop-hbase.sh
下面我們?cè)囼?yàn)一下hbase的使用,執(zhí)行:
hbase(main):001:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 3.0000 average load
創(chuàng)建一張表
hbase(main):004:0> create 'table1','field1'
0 row(s) in 1.3430 seconds
=> Hbase::Table - table1
獲取一張表
hbase(main):005:0> t1 = get_table('table1')
0 row(s) in 0.0010 seconds
=> Hbase::Table - table1
添加一行
hbase(main):008:0> t1.put 'row1', 'field1:qualifier1', 'value1'
0 row(s) in 0.4160 seconds
讀取全部
hbase(main):009:0> t1.scan
ROW COLUMN+CELL
row1 column=field1:qualifier1, timestamp=1470621285068, value=value1
1 row(s) in 0.1000 seconds
集群版hbase配置
hbase集群需要分布是存儲(chǔ),一般是使用hdfs這個(gè)Hadoop分布式存儲(chǔ),所以要先安裝hadoop來(lái)布局分布式存儲(chǔ)。
hbase的基本語(yǔ)法
habse配置詳解
hbase.tmp.dir:本地文件系統(tǒng)的臨時(shí)目錄,默認(rèn)是java.io.tmpdir/hbase?java.io.tmpdir/hbase?{user.name};
hbase.rootdir:hbase持久化的目錄,被所有regionserver共享,默認(rèn)${hbase.tmp.dir}/hbase,一般設(shè)置為hdfs://namenode.example.org:9000/hbase類(lèi)似,帶全限定名;
hbase.cluster.distributed:hbase集群模式運(yùn)作與否的標(biāo)志,默認(rèn)是false,開(kāi)啟需要設(shè)置為true,false時(shí)啟動(dòng)hbase會(huì)在一個(gè)jvm中運(yùn)行hbase和zk;
hbase.zookeeper.quorum:重要的也是必須設(shè)置的,啟動(dòng)zk的服務(wù)器列表,逗號(hào)分隔,cluster模式下必須設(shè)置,默認(rèn)是localhost,hbase客戶端也需要設(shè)置這個(gè)值去訪問(wèn)zk;
hbase.local.dir:本地文件系統(tǒng)被用在本地存儲(chǔ)的目錄,默認(rèn)${hbase.tmp.dir}/local/;
hbase.master.port:hbase master綁定的端口,默認(rèn)是60000;
hbase.master.info.port:hbase master web 界面的端口,默認(rèn)是60010,設(shè)置為-1可以禁用ui;
hbase.master.info.bindAddress:master web界面的綁定地址,默認(rèn)是0.0.0.0;
hbase.master.logcleaner.plugins:清理日志的插件列表,逗號(hào)分隔,被LogService調(diào)用的LogCleanerDelegate,可以自定義,順序執(zhí)行,清理WAL和HLog;默認(rèn)org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner
hbase.master.logcleaner.ttl:HLog在.oldlogdir目錄中生存的最長(zhǎng)時(shí)間,過(guò)期則被Master起線程回收,默認(rèn)是600000;
hbase.master.hfilecleaner.plugins:HFile的清理插件列表,逗號(hào)分隔,被HFileService調(diào)用,可以自定義,默認(rèn)org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner
hbase.master.catalog.timeout:Catalog Janitor從master到META的超時(shí)時(shí)間,我們知道這個(gè)Janitor是定時(shí)的去META掃描表目錄,來(lái)決定回收無(wú)用的regions,默認(rèn)是600000;
fail.fast.expired.active.master:如果master過(guò)期,那么不需要從zk恢復(fù),直接終止,默認(rèn)是false;
hbase.master.dns.interface:master的dns接口,向該接口提供ip,默認(rèn)是default;
hbase.master.dns.nameserver:master使用的dns主機(jī)名或者ip,默認(rèn)是default;
hbase.regionserver.port:regionserver綁定的端口,默認(rèn)是60020;
hbase.regionserver.info.port:regionserver的web界面端口,-1取消界面,默認(rèn)是60030;
hbase.regionserver.info.bindAddress:regionserver的web綁定,默認(rèn)是0.0.0.0;
hbase.regionserver.info.port.auto:master或者regionserver是否自動(dòng)搜索綁定的端口,默認(rèn)是false;
hbase.regionserver.handler.count:regionserver上rpc listener的個(gè)數(shù),把這個(gè)配置稱(chēng)為io線程數(shù),其實(shí)雷同,就是說(shuō)在regionserver上一個(gè)處理rpc的handler,默認(rèn)是30;
hbase.regionserver.msginterval:regionserver向master發(fā)消息的間隔,默認(rèn)3000毫秒;
hbase.regionserver.optionallogflushinterval:如果沒(méi)有足夠的entry觸發(fā)同步,那么過(guò)了這個(gè)間隔后HLog將被同步到HDFS,默認(rèn)是1000毫秒;
hbase.regionserver.regionSplitLimit:regionsplit的最大限額,默認(rèn)是MAX_INT=2147483647,設(shè)置這個(gè)限制后,在到達(dá)限制時(shí)region split就不會(huì)再進(jìn)行;
hbase.regionserver.logroll.period:不管有多少版本,直接roll掉commit log的周期,也就是說(shuō)一個(gè)固定的時(shí)間周期,到期就roll,默認(rèn)是3600000毫秒;
hbase.regionserver.logroll.errors.tolerated:可接受的WAL關(guān)閉錯(cuò)誤個(gè)數(shù),到達(dá)后將觸發(fā)服務(wù)器終止;設(shè)置為0那么在WAL writer做log rolling失敗時(shí)就停止region server,默認(rèn)是2;
hbase.regionserver.hlog.reader.impl:HLog 文件reader的實(shí)現(xiàn)類(lèi),默認(rèn)是org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader;
hbase.regionserver.hlog.writer.impl:HLog 文件writer的實(shí)現(xiàn)類(lèi),默認(rèn)是org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter;
hbase.regionserver.global.memstore.upperLimit:memstore在regionserver內(nèi)存中的上限,屆時(shí)新的update被阻塞并且flush被強(qiáng)制寫(xiě),默認(rèn)是0.4就是堆內(nèi)存的40%;阻塞狀態(tài)持續(xù)到regionserver的所有memstore的容量到達(dá)hbase.regionserver.global.memstore.lowerLimit;
hbase.regionserver.global.memstore.lowerLimit:memstore在regionserver內(nèi)存中的最大上限,到達(dá)時(shí)flush就被強(qiáng)制寫(xiě),默認(rèn)是0.38等價(jià)于38%的內(nèi)存容量;
hbase.regionserver.optionalcacheflushinterval:一個(gè)edit版本在內(nèi)存中的cache時(shí)長(zhǎng),默認(rèn)3600000毫秒,設(shè)置為0的話則禁止自動(dòng)flush;
hbase.regionserver.catalog.timeout:regionserver的Catalog Janitor訪問(wèn)META的超時(shí)時(shí)間,默認(rèn)是600000;
hbase.regionserver.dns.interface:同master類(lèi)似~~不講
hbase.regionserver.dns.nameserver:同master類(lèi)似
zookeeper.session.timeout:這是個(gè)值得說(shuō)道一下的配置,首先ZK客戶端要用,Hbase使用zk的客戶端聯(lián)系總體,同時(shí)也被用來(lái)啟動(dòng)一個(gè)zk server,作為zk的maxSessionTimeout,總的來(lái)說(shuō)就是regionserver與zk的關(guān)鍵參數(shù),如果連接超時(shí),master會(huì)重新的balance,regionserver也會(huì)被從集群名單中清除,默認(rèn)是90000;一個(gè)問(wèn)題是如果zk 由hbase自己維護(hù),那么該參數(shù)作為regionserver連接是一個(gè)值,如果zk在另外的集群,那么zk自己的maxSessionTimeout參數(shù)將優(yōu)先于Hbase的該參數(shù),屆時(shí)可能會(huì)發(fā)生超時(shí)時(shí)間不同的問(wèn)題;
zookeeper.znode.parent:znode存放root region的地址,默認(rèn)是root-region-server;
zookeeper.znode.acl.parent:root znode的acl,默認(rèn)acl;
hbase.zookeeper.dns.interface:zk的dns接口,默認(rèn)default;
hbase.zookeeper.dns.nameserver:zk的dns服務(wù)地址,默認(rèn)default;
hbase.zookeeper.peerport:zk的peer之間的通訊端口,默認(rèn)是2888;
hbase.zookeeper.leaderport:zk選leader的通訊端口,默認(rèn)是3888;
hbase.zookeeper.useMulti:zk支持多重update,要求zk在3.4版本以上,默認(rèn)是false;
hbase.config.read.zookeeper.config:讓hbaseconfig去讀zk的config,默認(rèn)false,也不支持開(kāi)啟,這個(gè)功能很搞笑~~個(gè)人觀點(diǎn);
hbase.zookeeper.property.initLimit:zk的配置,同步的屬性個(gè)數(shù)限制,默認(rèn)10個(gè)~~沒(méi)用;
hbase.zookeeper.property.syncLimit:zk的配置,同步時(shí)的每次請(qǐng)求的條數(shù),默認(rèn)5個(gè);
hbase.zookeeper.property.dataDir:zk的配置,snapshot存放的目錄,默認(rèn)是${hbase.tmp.dir}/zookeeper;
hbase.zookeeper.property.clientPort:zk的配置,client連zk的端口,默認(rèn)2181;
hbase.zookeeper.property.maxClientCnxns:zk的配置,允許接入zk的最大并發(fā)連接數(shù)的限制,按ip分配,默認(rèn)300;
hbase.client.write.buffer:htable客戶端寫(xiě)緩沖區(qū)大小,默認(rèn)是2097152BYTE,這個(gè)緩沖區(qū)就是為了寫(xiě)數(shù)據(jù)的臨時(shí)存放,設(shè)置大了,浪費(fèi)客戶端和服務(wù)端的存儲(chǔ),設(shè)置小了,如果寫(xiě)的數(shù)據(jù)多,太多的RPC又帶來(lái)網(wǎng)絡(luò)開(kāi)銷(xiāo),官方給的一個(gè)服務(wù)端存儲(chǔ)耗費(fèi)評(píng)估計(jì)算是:hbase.client.write.buffer*hbase.regionserver.handler.count,服務(wù)端的rs的處理handler個(gè)數(shù)也很關(guān)鍵;
hbase.client.pause:pause時(shí)長(zhǎng),在hbase發(fā)生get或其他操作fail掉的時(shí)候進(jìn)行pause的時(shí)間長(zhǎng)度,默認(rèn)??100;
hbase.client.retries.number:發(fā)生操作fail時(shí)的重試次數(shù),結(jié)合上一個(gè)指標(biāo)一起來(lái)控制總的重試時(shí)間,默認(rèn)是35;
hbase.client.max.total.tasks:一個(gè)HTable實(shí)例可以提交給集群的最大并發(fā)任務(wù)數(shù),默認(rèn)是100;
hbase.client.max.perserver.tasks:一個(gè)HTable實(shí)例給一臺(tái)regionserver提交的最大并發(fā)任務(wù)數(shù),默認(rèn)是5;
hbase.client.max.perregion.tasks:客戶端連接一臺(tái)region的最大連接數(shù),換句話說(shuō),當(dāng)你有這么多個(gè)連接在region時(shí),新的操作不被發(fā)送直到有操作完成,默認(rèn)是1;
hbase.client.scanner.caching:做scanner的next操作時(shí)(如果再本地client沒(méi)找到)緩存的數(shù)據(jù)行數(shù),這個(gè)值的設(shè)置也需要權(quán)衡,緩存的多則快,但吃?xún)?nèi)存,緩存的少則需要多的拉數(shù)據(jù), 需要注意的事項(xiàng)是如果兩次調(diào)用的時(shí)間差大于scanner的timeout,則不要設(shè)置該值,默認(rèn)是100;
hbase.client.keyvalue.maxsize:一個(gè)KeyValue實(shí)例的最大大小,這是存儲(chǔ)文件中一個(gè)entry的容量上限,合理的設(shè)置這個(gè)值可以控制regionserver的split,split不會(huì)拆keyvalue,所以把keyvalue的大小設(shè)置為regionserver大小的一個(gè)比例分?jǐn)?shù)(可除)是個(gè)不錯(cuò)的選擇,默認(rèn)是10485760;
hbase.client.scanner.timeout.period:結(jié)合剛才的caching做的一個(gè),scanner的超時(shí)時(shí)間,默認(rèn)是60000毫秒;
hbase.client.localityCheck.threadPoolSize:做localityCheck的線程池大小,默認(rèn)是2;
hbase.bulkload.retries.number:做bulk load的最大重試次數(shù),默認(rèn)是0,即代表不斷重試;
hbase.balancer.period:Master運(yùn)行balancer的周期,默認(rèn)是300000毫秒;
hbase.regions.slop:如果有regionserver的region數(shù)目超過(guò)average+(average*slop),則rebalance,默認(rèn)是0.2;
hbase.server.thread.wakefrequency:服務(wù)線程的sleep時(shí)間,默認(rèn)10000毫秒,比如log roller;
hbase.server.versionfile.writeattempts:退出前寫(xiě) version file的重試次數(shù),默認(rèn)3,每次嘗試的間隔由上一個(gè)參數(shù)控制;
hbase.hregion.memstore.flush.size:Memstore寫(xiě)磁盤(pán)的flush閾值,超過(guò)這個(gè)大小就flush,默認(rèn)是134217728;
hbase.hregion.preclose.flush.size:如果一個(gè)region的memstore的大小等于或超過(guò)這個(gè)參數(shù)的量,在關(guān)閉region時(shí)(放置關(guān)閉flag),要提前flush,然后region關(guān)閉下線,默認(rèn)大小是5242880;
hbase.hregion.memstore.block.multiplier:如果memstore的大小滿足hbase.hregion.block.memstore * hbase.hregion.flush.size個(gè)byte,那么阻塞update,這個(gè)配置可以避免不必要的長(zhǎng)時(shí)間split或者compact,甚至是OOME,默認(rèn)是2;
hbase.hregion.memstore.mslab.enabled:開(kāi)啟MemStore-Local Allocation Buffer,這個(gè)配置可以避免在高寫(xiě)入的情況下的堆內(nèi)存碎片,可以降低在大堆情況下的stop-the-world GC頻率,默認(rèn)是true;
hbase.hregion.max.filesize:HStoreFile的最大尺寸,換句話說(shuō),當(dāng)一個(gè)region里的列族的任意一個(gè)HStoreFile超過(guò)這個(gè)大小,那么region進(jìn)行split,默認(rèn)是10737418240;
hbase.hregion.majorcompaction:一個(gè)region的所有HStoreFile進(jìn)行major compact的時(shí)間周期,默認(rèn)是604800000 毫秒(7天);
hbase.hregion.majorcompaction.jitter:major compaction的發(fā)生抖動(dòng)范圍,這么理解比較容易,就是說(shuō)上一個(gè)參數(shù)不是一個(gè)嚴(yán)格周期,會(huì)有個(gè)抖動(dòng),這個(gè)參數(shù)就是這個(gè)抖動(dòng)的比例,默認(rèn)是0.5;
hbase.hstore.compactionThreshold:一個(gè)HStore存儲(chǔ)HStoreFile的個(gè)數(shù)閾值,超過(guò)這個(gè)閾值則所有的HStoreFile會(huì)被寫(xiě)到一個(gè)新的HStore,需要平衡取舍,默認(rèn)是3;
hbase.hstore.blockingStoreFiles:一個(gè)HStore存儲(chǔ)HStoreFile阻塞update的閾值,超過(guò)這個(gè)閾值,HStore就進(jìn)行compaction,直到做完才允許update,默認(rèn)是10;
hbase.hstore.blockingWaitTime:一個(gè)更強(qiáng)力的配置,配合上一個(gè)參數(shù),當(dāng)HStore阻塞update時(shí),超過(guò)這個(gè)時(shí)間限制,阻塞取消,就算compaction沒(méi)有完成,update也不會(huì)再被阻塞,默認(rèn)是90000毫秒;
hbase.hstore.compaction.max:每個(gè)minor compaction的HStoreFile個(gè)數(shù)上限,默認(rèn)是10;
hbase.hstore.compaction.kv.max:在flushing或者compacting時(shí)允許的最大keyvalue個(gè)數(shù),如果有大的KeyValue或者OOME的話則配置一個(gè)小的值,如果行數(shù)多且小則配置大值,默認(rèn)是10;
hbase.storescanner.parallel.seek.threads:如果并行查找開(kāi)啟的線程池大小,默認(rèn)是10;
hfile.block.cache.size:一個(gè)配置比例,允許最大堆的對(duì)應(yīng)比例的內(nèi)存作為HFile和HStoreFile的block cache,默認(rèn)是0.4,即40%,設(shè)置為0則disable這個(gè)比例,不推薦這么做;
hfile.block.index.cacheonwrite:在index寫(xiě)入的時(shí)候允許put無(wú)根(non-root)的多級(jí)索引塊到block cache里,默認(rèn)是false;
hfile.index.block.max.size:在多級(jí)索引的樹(shù)形結(jié)構(gòu)里,如果任何一層的block index達(dá)到這個(gè)配置大小,則block寫(xiě)出,同時(shí)替換上新的block,默認(rèn)是131072;
hfile.format.version:新文件的HFile 格式版本,設(shè)置為1來(lái)測(cè)試向后兼容,默認(rèn)是2;
hfile.block.bloom.cacheonwrite:對(duì)于組合布隆過(guò)濾器的內(nèi)聯(lián)block開(kāi)啟cache-on-write,默認(rèn)是false;
io.storefile.bloom.block.size:一個(gè)聯(lián)合布隆過(guò)濾器的單一塊(chunk)的大小,這個(gè)值是一個(gè)逼近值,默認(rèn)是131072;
hbase.rs.cacheblocksonwrite:當(dāng)一個(gè)HFile block完成時(shí)是否寫(xiě)入block cache,默認(rèn)是false;
hbase.rpc.server.engine:hbase 做rpc server的調(diào)度管理類(lèi),實(shí)現(xiàn)自org.apache.hadoop.ipc.RpcServerEngine,默認(rèn)是org.apache.hadoop.hbase.ipc.ProtobufRpcServerEngine;
hbase.rpc.timeout:Hbase client發(fā)起遠(yuǎn)程調(diào)用時(shí)的超時(shí)時(shí)限,使用ping來(lái)確認(rèn)連接,但是最終會(huì)拋出一個(gè)TimeoutException,默認(rèn)值是60000;
hbase.rpc.shortoperation.timeout:另一個(gè)版本的hbase.rpc.timeout,控制短操作的超時(shí)時(shí)限,比如region server 匯報(bào)master的操作的超時(shí)時(shí)限可以設(shè)置小,這樣有利于master的failover,默認(rèn)是10000;
hbase.ipc.client.tcpnodelay:默認(rèn)是true,具體就是在tcp socket連接時(shí)設(shè)置 no delay;
hbase.master.keytab.file:kerberos keytab 文件的全路徑名,用來(lái)為HMaster做log,無(wú)默認(rèn)值;
hbase.master.kerberos.principal:運(yùn)行HMaster進(jìn)程時(shí)需要kerberos的principal name,這個(gè)配置就是這個(gè)name的值,形如:hbase/[email protected];
hbase.regionserver.keytab.file:kerberos keytab 文件的全路徑名,用來(lái)為HRegionServer做log,無(wú)默認(rèn)值;
hbase.regionserver.kerberos.principal:運(yùn)行HRegionServer進(jìn)程時(shí)需要kerberos的principal name,這個(gè)配置就是這個(gè)name的值,形如:hbase/[email protected];
hadoop.policy.file:RPC服務(wù)器做權(quán)限認(rèn)證時(shí)需要的安全策略配置文件,在Hbase security開(kāi)啟后使用,默認(rèn)是habse-policy.xml;
hbase.superuser:Hbase security 開(kāi)啟后的超級(jí)用戶配置,一系列由逗號(hào)隔開(kāi)的user或者group;
hbase.auth.key.update.interval:Hbase security開(kāi)啟后服務(wù)端更新認(rèn)證key的間隔時(shí)間:默認(rèn)是86400000毫秒;
hbase.auth.token.max.lifetime:Hbase security開(kāi)啟后,認(rèn)證token下發(fā)后的生存周期,默認(rèn)是604800000毫秒;
hbase.ipc.client.fallback-to-simple-auth-allowed:client使用安全連接去鏈接一臺(tái)非安全服務(wù)器時(shí),服務(wù)器提示client切換到SASL SIMPLE認(rèn)證模式(非安全),如果設(shè)置為true,則client同意切換到非安全連接,如果false,則退出連接;
hbase.coprocessor.region.classes:逗號(hào)分隔的Coprocessores列表,會(huì)被加載到默認(rèn)所有表上。在自己實(shí)現(xiàn)了一個(gè)Coprocessor后,將其添加到Hbase的classpath并加入全限定名。也可以延遲加載,由HTableDescriptor指定;
hbase.rest.port:Hbase REST服務(wù)器的端口,默認(rèn)是8080;
hbase.rest.readonly:定義REST服務(wù)器啟動(dòng)的模式,有兩種方式,false:所有http方法都將被通過(guò)-GET/PUT/POST/DELETE,true:只有g(shù)et方法ok。默認(rèn)值是false;
hbase.rest.threads.max:REST服務(wù)器線程池的最大線程數(shù),池滿的話新請(qǐng)求會(huì)自動(dòng)排隊(duì),限制這個(gè)配置可以控制服務(wù)器的內(nèi)存量,預(yù)防OOM,默認(rèn)是100;
hbase.rest.threads.min:同上類(lèi)似,最小線程數(shù),為了確保服務(wù)器的服務(wù)狀態(tài),默認(rèn)是2;
hbase.rest.support.proxyuser:使REST服務(wù)器支持proxy-user 模式,默認(rèn)是false;
hbase.defaults.for.version.skip:是否跳過(guò)hbase.defaults.for.version的檢查,默認(rèn)是false;
hbase.coprocessor.master.classes:由HMaster進(jìn)程加載的coprocessors,逗號(hào)分隔,全部實(shí)現(xiàn)org.apache.hadoop.hbase.coprocessor.MasterObserver,同coprocessor類(lèi)似,加入classpath及全限定名;
hbase.coprocessor.abortonerror:如果coprocessor加載失敗或者初始化失敗或者拋出Throwable對(duì)象,則主機(jī)退出。設(shè)置為false會(huì)讓系統(tǒng)繼續(xù)運(yùn)行,但是coprocessor的狀態(tài)會(huì)不一致,所以一般debug時(shí)才會(huì)設(shè)置為false,默認(rèn)是true;
hbase.online.schema.update.enable:設(shè)置true來(lái)允許在線schema變更,默認(rèn)是true;
hbase.table.lock.enable:設(shè)置為true來(lái)允許在schema變更時(shí)zk鎖表,鎖表可以組織并發(fā)的schema變更導(dǎo)致的表狀態(tài)不一致,默認(rèn)是true;
hbase.thrift.minWorkerThreads:線程池的core size,在達(dá)到這里配置的量級(jí)后,新線程才會(huì)再新的連接創(chuàng)立時(shí)創(chuàng)建,默認(rèn)是16;
hbase.thrift.maxWorkerThreads:顧名思義,最大線程數(shù),達(dá)到這個(gè)數(shù)字后,服務(wù)器開(kāi)始drop連接,默認(rèn)是1000;
hbase.thrift.maxQueuedRequests:Thrift連接隊(duì)列的最大數(shù),如果線程池滿,會(huì)先在這個(gè)隊(duì)列中緩存請(qǐng)求,緩存上限就是該配置,默認(rèn)是1000;
hbase.thrift.htablepool.size.max:Thrift服務(wù)器上table pool的最大上限,默認(rèn)是1000;
hbase.offheapcache.percentage:JVM參數(shù)-XX:MaxDirectMemorySize的百分比值,默認(rèn)是0,即不開(kāi)啟堆外分配;
hbase.data.umask.enable:開(kāi)啟后,文件在regionserver寫(xiě)入時(shí)會(huì) 有權(quán)限相關(guān)設(shè)定,默認(rèn)是false不開(kāi)啟;
hbase.data.umask:開(kāi)啟上面一項(xiàng)配置后,文件的權(quán)限umask,默認(rèn)是000;
hbase.metrics.showTableName:是否為每個(gè)指標(biāo)顯示表名前綴,默認(rèn)是true;
hbase.metrics.exposeOperationTimes:是否進(jìn)行關(guān)于操作在使用時(shí)間維度的指標(biāo)報(bào)告,比如GET PUT DELETE INCREMENT等,默認(rèn)是true;
hbase.snapshot.enabled:是否允許snapshot被使用、存儲(chǔ)和克隆,默認(rèn)是true;
hbase.snapshot.restore.take.failsafe.snapshot:在restore過(guò)程中,如果失敗則啟用snapshot替換,成功則刪除掉snapshot,默認(rèn)開(kāi)啟true;
hbase.snapshot.restore.failsafe.name:剛才所說(shuō)過(guò)程中snapshot的名字,默認(rèn)是hbase-failsafe-{snapshot.name}-{restore.timestamp};
hbase.server.compactchecker.interval.multiplier:檢查是否需要compact的時(shí)間間隔,一般情況是在比如memstore flush后或者其他事件觸發(fā)compact的,但是有時(shí)也需要不同的compact策略,所以需要周期性的檢查具體間隔=hbase.server.compactchecker.interval.multiplier * hbase.server.thread.wakefrequency,默認(rèn)1000;
hbase.lease.recovery.timeout:在dfs 租約超時(shí)時(shí)限,超時(shí)則放棄,默認(rèn)是900000;
hbase.lease.recovery.dfs.timeout:dfs恢復(fù)租約調(diào)用的超時(shí)時(shí)限,默認(rèn)是64000;
網(wǎng)站標(biāo)題:Ubuntu下HBase數(shù)據(jù)庫(kù)的安裝和配置文件詳解
分享鏈接:http://m.fisionsoft.com.cn/article/dpcppjd.html


咨詢(xún)
建站咨詢(xún)
