HBase 笔记2】的更多相关文章

早些时候学习hadoop的技术,我一直对里面两项技术倍感困惑,一个是zookeeper,一个就是Hbase了.现在有机会专职做大数据相关的项目,终于看到了HBase实战的项目,也因此有机会搞懂Hbase原理. 首先来点实在的东西,假如我们已经在服务器上部署好了Hbase应用,作为客户端或者说的具体点,本地开发环境如何编写程序和服务端的Hbase进行交互了? 下面我将展示这些,首先看工程的结构图,如下图所示: 接下来我们将hbase应用下lib文件夹里所有jar包都导入到工程lib目录下,还要把c…
一).什么情况下使用Hbase 1)传统数据库无法承载高速插入.大量读取. 2)Hbase适合海量,但同时也是简单的操作. 3)成熟的数据分析主题,查询模式确立不轻易改变. 二).现实场景 1.电商浏览历史 问题: 传统数据库 数据量很大,事情会变得复杂. Order by 消耗很多性能. 大量发生又无法分布式处理,顾客需要事实看到自己足迹,传统数据库无法使用缓存. Hbase 面向时间查询. 基于行健查询速度快,新产生数据存于内存中的memstore,完全没有IO开销. 分布式化解负荷. 思路…
自定义filter需要继承的类:FilterBase 类里面的方法调用顺序   方法名 作用 1 boolean filterRowKey(Cell cell) 根据row key过滤row.如果需要被过滤掉,返回true:需要返回给客户端,返回false 2 ReturnCode filterKeyValue(Cell v) ReturnCode在Filter接口中定义的枚举类型,决定是否要包括该cell对象(A way to filter based on the column family…
HBASE过滤器介绍: 所有的过滤器都在服务端生效,叫做谓语下推(predicate push down),这样可以保证被过滤掉的数据不会被传送到客户端. 注意:        基于字符串的比较器,如RegexStringComparator和SubstringComparator,比基于字节的比较器更慢,更消耗资源.因为每次比较时它们都需要将给定的值转化为String.截取字符串子串和正则式的处理也需要花费额外的时间. 过滤器本来的目的是为了筛掉无用的信息,所有基于CompareFilter的…
HBase总结:http://blog.csdn.net/lifuxiangcaohui/article/details/39997205  (very good) Spark使用Java读取hbase: http://my.oschina.net/132722/blog/196350 HBase dao:http://www.xuebuyuan.com/2047942.html HBase Scan类用法: http://www.cnblogs.com/linjiqin/archive/201…
1.使用hbase shell的时候运行命令执行失败 例如:在shell下执行 status,失败. 可能的原因:节点之间的时间差距过大 解决方法调整两个节点的时间,使二者一致,这里用了个比较笨的方法 使用date查看一个结点的时间,然后修改另一节点使二者一直,命令:date -s "24 OCT 2015 17:10:00" 其他的解决方法:http://my.oschina.net/agony/blog/324478 2.HBase的web页面打不开 原因:老版本的页面地址是mas…
过滤器 过滤器是GET或者SCAN时过滤结果用的,相当于SQL的where语句 HBase中的过滤器创建后会被序列化,然后分发到各个region server中,region server会还原过滤器并使用,这样scan中,不满足条件的结果不会返回客户端 值过滤器: (针对所有列) 创建valueFilter实例:    Filter filter=new ValueFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("xxx…
阻塞急救: RegionServer内存设置太小: 解决方案: 设置Region Server的内存要在conf/hbase-env.sh中添加export HBASE_REGIONSERVER_OPTS=" $HBASE_REGIONSERVER_OPTS  -Xms8g -Xmx8g" HFile达到允许的最大数量: 解决方案: 调大hbase.hstore.blockingStoreFiles memstore大小达到阈值: 解决方案:略微调大hbase.hregion.mems…
Master/Region Server调优 JVM调优 默认的RegionServer内存是1G,而Memstore默认占40%,即400M,实在是太小了,可以通过HBASE_HEAPSIZE参数修改(CDH界面也可以修改) 1)通用调整,同时调整MASTER Region Server vim $HBASE_HOME/conf/hbase-env.sh export HBASE_HEAPSIZE=8G   ===> 会生效HBASE的所有实例,MASTER和Region Server 2)P…
数据模型 Namespace 表命名空间: 多个表分到一个组进行统一的管理,需要用到表命名空间 表命名空间主要是对表分组,对不同组进行不同环境设定,如配额管理  安全管理 保留表空间: HBase中有2个保留表空间是预先定义 HBase 系统表空间,用于HBase内部表 default: 哪些没有定义表空间的表都被分配到这个下面 Table 表:由一个或多个列族组成 Row 行:一行包含多个列,这些列通过列族分类 ColumnFamily 列族:列族是多个列的集合 Column Qualifie…