❶ 如何查詢hbase 中所有的列
hbase的region是按行劃分,而非按列,如果你讀取指定一行的所有列數據,regionServer雖然無法保證你的所有數據都在一個HFile中,但是至少是在一個Region中。但是具體的HFile所在的hdfs的節點那就不是HBase關心的事了,因為HBase的存儲是依賴與hdfs,所以底層存儲讀取的事會由NameNode操心,NameNode會考慮就近原則,而提供最高效的數據讀取策略。
你的數據傳輸是必然,但是HBase不會計算,計算是發生在你將想要的數據獲取到之後再自行進行計算的。你讀取大量數據必然會有大量數據傳輸,HBase只是將提供了一種高效的數據讀取策略,盡量減小數據傳輸量
❷ hbase 命令如何查是否有rowkey為空的值
不要用這個,hbase查詢的時候可以設start和end。還有一個是可以根據offset查。用正規能搞死你,一定要提前設計好自己的key。否則數據海量的時候有你受的。
❸ 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 表有無
hbase shell不能創建表的原因分析。
一.現象:
前一段時間 安裝了Hbase
hbase shell
進去之後 list status 命令都能夠正常運行。
但是執行建表語句 :
create 'aaa','bbb'
的時候 他就一直卡在那不動,也不報任何錯誤, 日誌裡面一直在刷如下的 debug日誌:
DEBUG
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation:
Lookep root region location,
connection=org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@23faa614;
serverName=
INFO org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to checkin
然後我進到 hive裡面 也是可以執行查看語句 但是不能創建表。
狀態就是 只能讀不能寫。
二.解決辦法:
namenode在啟動的時候首先進入安全模式,如果datanode丟失的block達到一定的比例,則系統會一直處於安全模式狀態即只讀狀態。
dfs.safemode.threshold.pct(預設值0.999f)表示HDFS啟動的時候,如果DataNode上報的block個數達到了元數據記錄的block個數的0.999倍才可以離開安全模式,否則一直是這種只讀模式。如果設為1則HDFS永遠是處於SafeMode。
有兩個方法離開這種安全模式
(1)修改dfs.safemode.threshold.pct為一個比較小的值,預設是0.999。
(2)hadoop dfsadmin -safemode leave命令強制離開
用戶可以通過dfsadmin -safemode value 來操作安全模式,參數value的說明如下:
1. enter - 進入安全模式
2. leave - 強制NameNode離開安全模式
3. get - 返回安全模式是否開啟的信息
4. wait - 等待,一直到安全模式結束。
我採取的辦法是 強制離開安全模式。
進入hadoop 的bin目錄,
執行:
hadoop dfsadmin -safemode leave
然後我分別進入 hive 和 hbase
create 就可以 順利的執行了。
❺ hbase怎麼查看配置文件
hbase有本地模式和分布式模式
hbase-site.xml配置
hbase.tmp.dir
本地文件系統tmp目錄,一般配置成local模式的設置一下,但是最好還是需要設置一下,因為很多文件都會默認設置成它下面的
線上配置
<property>
<name>hbase.tmp.dir</name>
<value>/mnt/路徑</value>
</property>
默認值:
${java.io.tmpdir}/hbase-${user.name}
寫到系統的/tmp目錄
hbase.rootdir
HBase集群中所有RegionServer共享目錄,用來持久化HBase的數據,一般設置的是hdfs的文件目錄,如hdfs://master:9000/hbasedata
線上配置
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbasedata</value>
</property>
默認值:
${hbase.tmp.dir}/hbase
hbase.cluster.distributed
集群的模式,分布式還是單機模式,如果設置成false的話,HBase進程和Zookeeper進程在同一個JVM進程。
線上配置為true
默認值:false
hbase.zookeeper.quorum
zookeeper集群的URL配置,多個host中間用逗號分割
線上配置
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave,slave1</value>
</property>
默認值:localhost
hbase.zookeeper.property.dataDir
ZooKeeper的zoo.conf中的配置。 快照的存儲位置
線上配置:/home/hadoop/zookeeperData
默認值:${hbase.tmp.dir}/zookeeper
zookeeper.session.timeout
客戶端與zk連接超時時間
線上配置:1200000(20min)
默認值:180000(3min)
hbase.zookeeper.property.tickTime
Client端與zk發送心跳的時間間隔
線上配置:6000(6s)
默認值:6000
hbase.security.authentication
HBase集群安全認證機制,目前的版本只支持kerberos安全認證。
線上配置:kerberos
默認值:空
hbase.security.authorization
HBase是否開啟安全授權機制
線上配置: true
默認值: false
hbase.regionserver.kerberos.principal
regionserver的kerberos認證的主體名稱(由三部分組成:服務或用戶名稱、實例名稱以及域名)
線上配置:hbase/[email protected]
默認:無
hbase.regionserver.keytab.file
regionserver keytab文件路徑
線上配置:/home/hadoop/etc/conf/hbase.keytab
默認值:無
hbase.master.kerberos.principal
master的kerberos認證的主體名稱(由三部分組成:服務或用戶名稱、實例名稱以及域名)
線上配置:hbase/[email protected]
默認:無
hbase.master.keytab.file
master keytab文件路徑
線上配置:/home/hadoop/etc/conf/hbase.keytab
默認值:無
hbase.regionserver.handler.count
regionserver處理IO請求的線程數
線上配置:50
默認配置:10
hbase.regionserver.global.memstore.upperLimit
RegionServer進程block進行flush觸發條件:該節點上所有region的memstore之和達到upperLimit*heapsize
線上配置:0.45
默認配置:0.4
hbase.regionserver.global.memstore.lowerLimit
RegionServer進程觸發flush的一個條件:該節點上所有region的memstore之和達到lowerLimit*heapsize
線上配置:0.4
默認配置:0.35
hbase.client.write.buffer
客戶端寫buffer,設置autoFlush為false時,當客戶端寫滿buffer才flush
線上配置:8388608(8M)
默認配置:2097152(2M)
hbase.hregion.max.filesize
單個ColumnFamily的region大小,若按照ConstantSizeRegionSplitPolicy策略,超過設置的該值則自動split
線上配置:107374182400(100G)
默認配置:21474836480(20G)
hbase.hregion.memstore.block.multiplier
超過memstore大小的倍數達到該值則block所有寫入請求,自我保護
線上配置:8(內存夠大可以適當調大一些,出現這種情況需要客戶端做調整)
默認配置:2
hbase.hregion.memstore.flush.size
memstore大小,當達到該值則會flush到外存設備
線上配置:104857600(100M)
默認值: 134217728(128M)
hbase.hregion.memstore.mslab.enabled
是否開啟mslab方案,減少因內存碎片導致的Full GC,提高整體性能
線上配置:true
默認配置: true
hbase.regionserver.maxlogs
regionserver的hlog數量
線上配置:128
默認配置:32
hbase.regionserver.hlog.blocksize
hlog大小上限,達到該值則block,進行roll掉
線上配置:536870912(512M)
默認配置:hdfs配置的block大小
hbase.hstore.compaction.min
進入minor compact隊列的storefiles最小個數
線上配置:10
默認配置:3
hbase.hstore.compaction.max
單次minor compact最多的文件個數
線上配置:30
默認配置:10
hbase.hstore.blockingStoreFiles
當某一個region的storefile個數達到該值則block寫入,等待compact
線上配置:100(生產環境可以設置得很大)
默認配置: 7
hbase.hstore.blockingWaitTime
block的等待時間
線上配置:90000(90s)
默認配置:90000(90s)
hbase.hregion.majorcompaction
觸發major compact的周期
線上配置:0(關掉major compact)
默認配置:86400000(1d)
hbase.regionserver.thread.compaction.large
large compact線程池的線程個數
線上配置:5
默認配置:1
hbase.regionserver.thread.compaction.small
small compact線程池的線程個數
線上配置:5
默認配置:1
hbase.regionserver.thread.compaction.throttle
compact(major和minor)請求進入large和small compact線程池的臨界點
線上配置:10737418240(10G)
默認配置:2 * this.minFilesToCompact * this.region.memstoreFlushSize
hbase.hstore.compaction.max.size
minor compact隊列中storefile文件最大size
線上配置:21474836480(20G)
默認配置:Long.MAX_VALUE
hbase.rpc.timeout
RPC請求timeout時間
線上配置:300000(5min)
默認配置:60000(10s)
hbase.regionserver.region.split.policy
split操作默認的策略
線上配置: org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy(採取老的策略,自己控制split)
默認配置: org.apache.hadoop.hbase.regionserver.(在region沒有達到maxFileSize的前提下,如果fileSize達到regionCount * regionCount * flushSize則進行split操作)
hbase.regionserver.regionSplitLimit
單台RegionServer上region數上限
線上配置:150
默認配置:2147483647
hbase-env.sh配置
指定系統運行環境
export JAVA_HOME=/usr/lib/jvm/java-6-sun/ #JDK HOME
export HBASE_HOME=/home/hadoop/cdh4/hbase-0.94.2-cdh4.2.1 # HBase 安裝目錄
export HBASE_LOG_DIR=/mnt/dfs/11/hbase/hbase-logs #日誌輸出路徑
JVM參數調優
export HBASE_OPTS="-verbose:gc -XX:+PrintGCDetails -Xloggc:${HBASE_LOG_DIR}/hbase-gc.log -XX:+PrintGCTimeStamps -XX:+ -XX:+PrintGCApplicationStoppedTime \
-server -Xmx20480m -Xms20480m -Xmn10240m -Xss256k -XX:SurvivorRatio=4 -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=15 \
-XX:ParallelGCThreads=16 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection \
-XX:+CMSClassUnloadingEnabled -XX:=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSMaxAbortablePrecleanTime=5000 \
"
❻ 如何用hive查詢hbase中的數據
第一步,啟動hadoop,命令:./start-all.sh
第二步,啟動hive,命令:
./hive --auxpath /home/dream-victor/hive-0.6.0/lib/hive_hbase-handler.jar,/home/dream-victor/hive-0.6.0/lib/hbase-0.20.3.jar,/home/dream-victor/hive-0.6.0/lib/zookeeper-3.2.2.jar -hiveconf hbase.master=127.0.0.1:60000
這里,-hiveconf hbase.master=指向自己在hbase-site.xml中hbase.master的值
第三步,啟動hbase,命令:./start-hbase.sh
第四步,建立關聯表,這里我們要查詢的表在hbase中已經存在所以,使用CREATE EXTERNAL TABLE來建立,如下:
CREATE EXTERNAL TABLE hbase_table_2(key string, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "data:1")
TBLPROPERTIES("hbase.table.name" = "test");
�0�2hbase.columns.mapping指向對應的列族;多列時,data:1,data:2;多列族時,data1:1,data2:1;
�0�2hbase.table.name指向對應的表;
�0�2hbase_table_2(key string, value string),這個是關聯表
我們看一下HBase中要查詢的表的結構,
❼ 如何獲取hbase數據查詢 語句
get命令和HTable類的get()方法用於從HBase表中讀取數據。使用 get 命令,可以同時獲取一行數據。它的語法如下:
get 』<table name>』,』row1』
下面的例子說明如何使用get命令。掃描emp表的第一行。
hbase(main):012:0> get 'emp', '1'
COLUMN CELL
personal : city timestamp=1417521848375, value=hyderabad
personal : name timestamp=1417521785385, value=ramu
professional: designation timestamp=1417521885277, value=manager
professional: salary timestamp=1417521903862, value=50000
4 row(s) in 0.0270 seconds
讀取指定列
下面給出的是語法,使用get方法讀取指定列。
hbase>get 'table name', 『rowid』, {COLUMN => 『column family:column name 』}
下面給出的示例,是用於讀取HBase表中的特定列。
hbase(main):015:0> get 'emp', 'row1', {COLUMN=>'personal:name'}
COLUMN CELL
personal:name timestamp=1418035791555, value=raju
❽ ubuntu怎麼查看hbase的版本
1.在清華鏡像站點下載hbase的安裝文件,選擇的是stable的版本,版本號是hbase-1.2.5/
2.解壓放在/usr/local的目錄下
3.修改許可權
sudo chown -R hser hadoop hbase-1.2.5/
4.修改文件夾的名稱為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.修改文件夾的許可權
cd /usr/local
sudo chown -R hadoop ./hbase
7.測試一下是否安裝成功
hbase version
HBase 1.2.5...
8.HBase有三種運行模式,單機模式、偽分布式模式、分布式模式。
❾ 如何查看hbase資料庫當前的狀態
可以訪問以下網站查看hbase服務狀態及master等等信息,
http。//retailvm1d。nam。nsroot。net。60010/zk.jsp
HBase is rooted at /hbase
Active master address: retailvm1d,39706,1377502441684
Backup master addresses:
Region server holding ROOT: retailvm1d,38110,1377502442130
Region servers:
retailvm1d,38110,1377502442130
Quorum Server Statistics:
localhost:2181
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT
Clients:
/127.0.0.1:36679[1](queued=0,recved=441,sent=448)
/127.0.0.1:36681[1](queued=0,recved=502,sent=503)
/127.0.0.1:36678[1](queued=0,recved=521,sent=543)
/127.0.0.1:37218[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/159
Received: 1533
Sent: 1562
Connections: 4
Outstanding: 0
Zxid: 0x49
Mode: standalone
Node count: 23