❶ 如何查询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