hbase

Hbase脚本小结

无人久伴 提交于 2020-01-12 14:13:31
脚本使用小结: 1.开启集群,start-hbase.sh 2.关闭集群,stop-hbase.sh 3.开启/关闭所有的regionserver、zookeeper,hbase-daemons.sh start/stop regionserver/zookeeper 4.开启/关闭单个regionserver、zookeeper,hbase-daemon.sh start/stop regionserver/zookeeper 5.开启/关闭master hbase-daemon.sh start/stop master, 是否成为active master取决于当前是否有active master 两个进阶脚本 6.rolling-restart.sh 可以用来挨个滚动重启 7.graceful_stop.sh move服务器上的所有region后,再stop/restart该服务器,可以用来进行版本的热升级 几个细节: 1。 hbase-daemon.sh start master 与 hbase-daemon.sh start master --backup,这2个命令的作用一样的,是否成为backup或active是由master的内部逻辑来控制的 2。stop-hbase.sh 不会调用hbase-daemons.sh stop regionserver

HBase环境搭建随记

别等时光非礼了梦想. 提交于 2020-01-12 06:41:28
====软件版本==== jdk:jdk-8u77-linux-x64.tar.gz zookeeper:zookeeper-3.4.6.tar.gz hadoop:hadoop-2.7.4.tar.gz hbase:hbase-1.3.1-bin.tar.gz ====前提准备==== 3台vmware虚拟机(已配置无秘钥访问) 其中,/etc/hosts文件内容如下: ====安装jdk==== 上传安装包,解压缩,然后配置环境变量即可。 正常配置之后,在服务器任意路径执行java -version可以显示java版本。如下所示。 ====安装zookeeper==== 这里也不在过多描述,简单罗列一下配置文件。 配置文件:zoo.cfg 需要分别在3个节点的,dataDir路径下生成节点的myid。 启动并验证zookeeper是否正常 启动命令:/home/hadmin/zookeeper-3.4.6/bin/zkServer.sh start 查看状态:/home/hadmin/zookeeper-3.4.6/bin/zkServer.sh status 启动之后,3个节点的状态分别如下: ====安装hadoop==== 因为HBase的底层是基于Hadoop的hdfs的,所以在安装HBase之前,必须要安装Hadoop,并确保hdfs正常。

HBase表的设计(一)

岁酱吖の 提交于 2020-01-11 16:48:06
HBase表模式的设计  对于HBase表,在设计表结构之前,我们需要先考虑的几个问题: 这个表应该有多少个列族? 列族使用的是什么数据? 每个列族应该有多少列? 列名应该是什么?尽管列名不必在建表的时候定义,但是后期读写数据时是需要知道的。 单元存放什么数据? 每个单元存储多少个时间版本? 行健结构是什么?应该包含什么信息? 模式影响到表结构和如何读写表,所以说把这些放到宽泛的模式设计中变得尤为重要。 一、HBase的存储方式    HBase底层物理存储是基于HDFS,在HDFS上是以HFile的形式进行存储的: 表中的列族在HDFS上是以HFile的形式存在,一个HFile对应一个列族,但是一个列族可能会对应多个HFile。    一个特定的列族的所有数据在HDFS上会有一个物理存储,这个物理存储区可能会有多个HFile组成,理论上可以通过合并来得到一个HFile,一个列族的所有列在硬盘上是存放在一起的,使用这个特性,可以把不同模式的列放在不同的列族,以便隔离他们。这也是HBase面相列族存储的原因。 二、宽表与高表 宽表:   HBase中所谓的宽表,指的是表中行少而列多,也就是说一行当中包含有很多的列,但是表整体行很少,比如一张表中行健一共有100个,但是每个行健所包含的列有1000个,这种就是所谓的宽表。 高表       HBase中所谓的高表,恰好与宽表相反,行多

Pass a Delete or a Put error in hbase mapreduce

放肆的年华 提交于 2020-01-11 13:34:11
问题 I am getting below Error while running mapreduce on hbase: java.io.IOException: Pass a Delete or a Put at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:125) at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:84) at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:639) at org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80) at

HBase脚本命令

我的未来我决定 提交于 2020-01-11 08:03:38
1. 脚本使用小结 1.开启集群 start-hbase.sh 2.关闭集群 stop-hbase.sh 3.开启/关闭【所有】的regionserver、zookeeper hbase-daemons.sh start/stop regionserver/zookeeper 4.开启/关闭【单个】的regionserver、zookeeper hbase-daemon.sh start/stop regionserver/zookeeper 5.开启/关闭master hbase-daemon.sh start/stop master 是否成为active master取决于当前是否有active master 2. 两个进阶脚本 6.rolling-restart.sh 可以用来挨个滚动重启 7.graceful_stop.sh move服务器上的所有region后,再stop/restart该服务器,可以用来进行版本的热升级 几个细节: 1。hbase-daemon.sh start master 与 hbase-daemon.sh start master --backup,这2个命令的作用一样的,是否成为backup或active是由master的内部逻辑来控制的 2。stop-hbase.sh不会调用hbase-daemons.sh stop regionserver

Hbase managed zookeeper suddenly trying to connect to localhost instead of zookeeper quorum

纵饮孤独 提交于 2020-01-11 05:13:12
问题 I was running some tests with table mappers and reducers on large scale problems. After a certain point my reducers started failing when the job was 80% done. From what I can tell when looking at the syslogs the problem is that one of my zookeepers is attempting to connect to the localhost as opposed to the other zookeepers in the quorum Oddly it seems to do just fine connecting to the other nodes when mapping is going on, its reducing that it has a problem with. Here are selected portions of

Hbase内部探险

空扰寡人 提交于 2020-01-11 03:49:39
文章目录 Hbase内部探险 前言 mutation方法 checkAndMutate方法 批量操作 BufferedMutator方法 内部探险 Hbase是怎么存储数据的 预写日志 Memstore HFile KeyValue类 增删改查的真面目 Region的定位 维护工具即调优 维护工具管理 均衡器 规整器 目录管理器 Hbase的性能优化 Master和RegionServer的JVM调优 Full GC Memstore的专属JVM策略MSLAB Region的拆分 自动拆分 预拆分 强制拆分 Region的合并 WAL的优化 BlockCache的优化 Memstore的优化 Memstore的刷写 HFile的合并 合并的策略(Minor Compaction和Major Compaction) compaction的吞吐量限制参数 合并过程 Major Compaction Hbase内部探险 前言 以下内容我将从Hbase的数据存储、region等这些方面入手,进行一个比较全面的总结 在进入Hbase之前,我们先拓展几个api mutation方法 ​ 根据前面提到的方法,如果我们想在一行种添加一列的同时删除一列。可以新建一个Put来添加,新建一个Delete来删除。不过这两行代码分两步执行,并不是一个原子操作。那么我要保证这两个操作同时成功或失败,该怎么做呢

HBase Thrift: how to connect to remote HBase master/cluster?

ⅰ亾dé卋堺 提交于 2020-01-11 03:19:12
问题 Thanks to the Cloudera distribution, I have a HBase master/datanode + Thrift server running on a local machine, and can code and test HBase client programs and use it, no problem. However, I now need to use Thrift in production, and I'm not able to find documentation on how to get Thrift running with a production HBase cluster. From what I understand, I will need to run the hbase-thrift program on the client node since the Thrift program is just another intermediate client to HBase. So I'm

想成为大数据开发工程师,你必须掌握的开发流程图是这样的

痴心易碎 提交于 2020-01-11 02:34:58
1、数据处理主要技术 Sqoop :(发音:skup)作为一款开源的离线数据传输工具,主要用于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它可以将一个关系数据库中数据导入Hadoop的HDFS中, 也可以将HDFS中的数据导入关系型数据库中。 Flume: 实时数据采集的一个开源框架,它是Cloudera提供的一个高可用用的、高可靠、分布式的海量日志采集、聚合和传输的系统。目前已经是Apache的顶级子项目。使用Flume可以收集诸如日志、时间等数据 并将这些数据集中存储起来供下游使用(尤其是数据流框架,例如Storm)。和Flume类似的另一个框架是Scribe(FaceBook开源的日志收集系统,它为日志的分布式收集、统一处理提供一个可扩展的、高容错的简单方案)  Kafka: 通常来说Flume采集数据的速度和下游处理的速度通常不同步,因此实时平台架构都会用一个消息中间件来缓冲,而这方面最为流行和应用最为广泛的无疑是Kafka。它是由LinkedIn开发的一个分布式消息系统, 以其可以水平扩展和高吞吐率而被广泛使用。目前主流的开源分布式处理系统(如Storm和Spark等)都支持与Kafka 集成。 Kafka是一个基于分布式的消息发布-订阅系统,特点是速度快、可扩展且持久。与其他消息发布-订阅系统类似

HBase Region分裂实现

折月煮酒 提交于 2020-01-10 18:20:05
分裂策略 不同的分裂策略的实现需要继承RegionSplitPolicy,主要实现两个方法: shouldSplit()表示是否需要分裂 getSplitPoint()得到分裂点rowkey 从 HBase 0.94之后,默认的分裂策略是IncreasingToUpperBoundRegionSplitPolicy ,思想就是当Region的大小超过某个阈值时,即进行分裂。 这个阈值主要由如下几个因素决定: hbase.hregion.max.filesize hbase.increasing.policy.initial.size 当前Region所在RegionServer上和当前Region属于同一张表的Region个数 根据以上三个因素算出一个阈值后,如果当前Region有某个Store的大小大于这个阈值,则认为该Region可分裂,这里对于Store还有一个条件就是Store下不能存在reference类型的StoreFile,这种reference类型的StoreFile是一次分裂后产生的,后续会详说。 对于IncreasingToUpperBoundRegionSplitPolicy来说,使用基类中默认的getSplitPoint()函数,即将Region中size最大的Store下最大的StoreFile拿出来,然后根据block