Hbase_应用
来源:互联网 发布:淘宝客鹊桥助手 编辑:程序博客网 时间:2024/06/10 02:02
HBase使用场景:
什么时候使用HBase:
①数据总量:如果只有数百万行和一些读写操作,是不需要HBase的。而如果有数十亿列,同时在很短时间内有数以千计的读写操作,这时就应该考虑HBase
② 如果数据模式是动态的或者可变的
③ 如果很多列包含很多null值
④ 当有大量的动态行
⑤ 如果数据包含不定数量的列
⑥ 如果需要维护数据的版本
⑦ 如果需要高扩展性
⑧ 如果需要在记录中做内置的压缩
⑨ 如果需要大量的I/O什么时候不使用HBase:
① 当数据规模总量不大时
② 当需要JOIN和其他一些关系型数据库特性时
③ 如果关系数据能满足需求模式设计
① 避免生成连续序列或时间戳的行键,这在大量写入的时候可能会到导致读取线程挂起
② 总是让列族名和行键更小
③ 使用复合行健设计,以指定扫描的开始行键:Scan s = new Scan(startID)Table.getscanner(s)
HBase管理
压缩:hbase>major_compact #将每个store合成一个StoreFile
添加节点:bin/hbase-daemon.sh start regionserver
删除节点:
① 停止负载平衡器:hbase>balance_switch false
② 在退役的节点上停止RegionServer:hbase>hbase-daemon.sh stop regionserver
③ 当RegionServer停止了,它将关闭所有的region
④ Zookeeper上的RegionServer临时节点将消失
⑤ master节点将注意到RegionServer已经关闭并认为它已经崩溃
⑥ RegionServer的region服务重新分配完成另一种优雅的删除节点方式:
① bin/graceful_stop.sh
② 这种方式里会始终启动平衡器
③ 在退役的节点上停止RegionServer:hbase>hbase-daemon.sh stop regionserverHBase备份
离线备份:
hadoop discp hdfs://namenode:9000/hbase hdfs://datanode1:9000/hbaseBackup
将数据从hdfs://namenode:9000/hbase复制到hdfs://datanode1:9000/hbaseBackup
在线备份:
① 快照:
开启快照功能:<name>hbase.snapshot.enabled</name> <value>true</value>
重启集群
hbase>snapshot ‘emptable’,’baksnapshot01082014’ #表名、快照名
查看快照列表
hbase>list_snapshot
删除快照
hbase>delete_snapshot ‘baksnapshot01082014’
使用快照克隆一个表
hbase>clone_snapshot ‘baksnapshot01082014’,’emptable’
恢复一个表到快照状态
hbase>disable ‘table’hbase>restore_snapshot ‘baksnapshot01082014’
② 复制:
修改配置:<name>hbase.replication</name> <value>true</value>
重启集群
在主集群执行以下命令,添加对等集群:add_peer ‘ID’’CLUSTER_KEY’ID指定一个短整型,CLUSTER_KEY设置为从集群
开启列族的复制
disable ‘table’alter ‘table’,{NAME=>’colFam’,REPLICATION_SCOPE=>’1’}enable ‘table’设置为1表示开启复制,0表示关闭
执行
hbase>list_peers
查看任意RegionServer的日志来验证是否复制成功
停止复制的命令stop_replication
③ 使用Export和Import进行备份和恢复:
hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> [<versions> [starttime] [endtime]]hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>
ImportTsv可以将Tab分割的数据(Tsv)导入到HBase表:
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c <tablename> <hdfs-inputdir>
④ CopyTable
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=Copynewtable new.name指定目标的新表名
过滤器
过滤器可以配合get或scan使用,通过RPC传到RegionServer端,RegionServer获取的数据通过过滤器进行过滤,然后返回给客户端
Scan scan = new Scan();scan.setFileter(new ValueFilter(CompareOp.EQUAL,new SubstringComparator(“shash”)));
- Hbase_应用
- Hbase_命令
- Hbase_配置说明
- HBase_数据批量导入
- Hbase_架构与运行机制
- Hbase_列式数据库特性
- 应用
- 应用
- 应用
- 应用
- 应用
- 应用
- 应用
- 网站应用/ 项目应用
- slam应用及应用
- android 应用跳应用
- VML应用
- Ant应用
- Java中Vector和ArrayList的区别
- NOIP2017解题报告
- CentOS7中搭建SVN服务器
- Java集合框架
- 利用linux的df和du命令查看文件和目录的内存占用
- Hbase_应用
- 1、饼图展示
- 工作日志:添加第三方源码到项目中
- 伪类在ios移动端浏览器内无效的解决方法
- 污水雨管理Bentley.SewerGEMS.CONNECT.Edition.Update1.v10.01.00.70.build.30102017
- [jzoj]3468. 【NOIP2013模拟联考7】OSU!(osu) (期望DP)
- android studio更新到最新的版本后项目遇到的问题
- String类的零碎知识点
- 香蕉派M1搭建vnc服务