产生背景 自 1970 年以来,关系数据库用于数据存储和维护有关问题的解决方案.大数据的出现后, 好多公司实现处理大数据并从中受益,并开始选择像 Hadoop 的解决方案.Hadoop 使用分 布式文件系统,用于存储大数据,并使用 MapReduce 来处理.Hadoop 擅长于存储各种格式 的庞大的数据,任意的格式甚至非结构化的处理. Hadoop 的限制 Hadoop 只能执行批量处理,并且只以顺序方式访问数据.这意味着必须搜索整个数据集, 即使是最简单的搜索工作. 当处理结果在另一个庞大的…
一.前言 本文主要介绍Hbase常用的三种简单的容灾备份方案,即CopyTable.Export/Import.Snapshot.分别介绍如下: 二.CopyTable 2.1 简介 CopyTable可以将现有表的数据复制到新表中,具有以下特点: 支持时间区间 .row区间 .改变表名称 .改变列族名称 .以及是否Copy已被删除的数据等功能: 执行命令前,需先创建与原表结构相同的新表: CopyTable的操作是基于HBase Client API进行的,即采用scan进行查询, 采用put…
Hadoop之HBASE 一.HBASE简介 HBase是一个开源的.分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力.它可以直接使用本地文件系统,也可以使用Hadoop的HDFS文件存储系统.不过,为了提高数据的可靠性和系统的健壮性,并且发挥HBase处理大数据的能力,使用HDFS作为文件存储系统才更为稳妥. HBase存储的数据从逻辑上来看就像一张很大的表,并且它的数据列可以根据需要动态地增加.除此之外,每个单元(cell,由行和列所确定的位置)…
前提 1.HBase 依赖于 HDFS 做底层的数据存储 2.HBase 依赖于 MapReduce 做数据计算 3.HBase 依赖于 ZooKeeper 做服务协调 4.HBase源码是java编写的,安装需要依赖JDK 版本选择 打开官方的版本说明http://hbase.apache.org/1.2/book.html JDK的选择 Hadoop的选择 此处我们的hadoop版本用的的是2.7.5,HBase选择的版本是1.2.6 安装 1.zookeeper的安装 参考http://w…
协处理器—Coprocessor 1. 起源 Hbase 作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执 行求和.计数.排序等操作.比如,在旧版本的(<0.92)Hbase 中,统计数据表的总行数,需 要使用 Counter 方法,执行一次 MapReduce Job 才能得到.虽然 HBase 在数据存储层中集成 了 MapReduce,能够有效用于数据表的分布式计算.然而在很多情况下,做一些简单的相 加或者聚合计算的时候,如果直接将计算过程放置在 server 端,…
进入HBase命令行 在你安装的随意台服务器节点上,执行命令:hbase shell,会进入到你的 hbase shell 客 户端 [hadoop@hadoop1 ~]$ hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding /lib/slf4j-log4j12-.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found…
一.简述 在使用HBase时,如果你的数据量达到了数十亿行或数百万列,此时能否在查询中返回大量数据将受制于网络的带宽,即便网络状况允许,但是客户端的计算处理也未必能够满足要求.在这种情况下,协处理器(Coprocessors)应运而生.它允许你将业务计算代码放入在RegionServer的协处理器中,将处理好的数据再返回给客户端,这可以极大地降低需要传输的数据量,从而获得性能上的提升.同时协处理器也允许用户扩展实现HBase目前所不具备的功能,如权限校验.二级索引.完整性约束等. 二.协处理器类…
一.简述 截至到目前(2019.04),HBase 有两个主要的版本,分别是1.x 和 2.x ,两个版本的Java API有所不同,1.x 中某些方法在2.x中被标识为@deprecated过时.所以下面关于API的样例,我会分别给出1.x和2.x两个版本.完整的代码见本仓库: Java API 1.x Examples Java API 2.x Examples 同时你使用的客户端的版本必须与服务端版本保持一致,如果用2.x版本的客户端代码去连接1.x版本的服务端,会抛出NoSuchColu…
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 hbase-2.1.3 一.单机模式搭建 不依赖HDFS 使用本地文件系统. 1.解压HBase,配置HBase环境变量[root@PCS102 local]# tar -zxvf hbase-2.1.3-bin.tar.gz -C /usr/local/[root@PCS102 local]# vi /etc/profile[ro…
HBase Snapshots允许你对一个表进行快照(即可用副本),它不会对Region Servers产生很大的影响,它进行复制和 恢复操作的时候不包括数据拷贝.导出快照到另外的集群也不会对Region Servers产生影响. 下面告诉你如何使用Snapshots功能 1.开启快照支持功能,在0.95+之后的版本都是默认开启的,在0.94.6+是默认关闭 <property> <name>hbase.snapshot.enabled</name> <value…
hbase版本 2.0.4  与hadoop兼容表http://hbase.apache.org/book.html#hadoop  我的 hadoop版本是3.1   1.单机版hbase 1.1解压安装包 tar xf hbase-2.0.4-bin.tar.gz -C /opt/    1.2配置环境变量 编辑/etc/profile export HBASE_HOME=/opt/hbase- export PATH=$PATH:$HBASE_HOME/bin   生效环境变量 sourc…
一.Hadoop的局限 HBase是一个构建在Hadoop文件系统之上的面向列的数据库管理系统. 要想明白为什么产生HBase,就需要先了解一下Hadoop存在的限制?Hadoop可以通过HDFS来存储结构化.半结构甚至非结构化的数据,它是传统数据库的补充,是海量数据存储的最佳方法,它针对大文件的存储,批量访问和流式访问都做了优化,同时也通过多副本解决了容灾问题. 但是Hadoop的缺陷在于它只能执行批处理,并且只能以顺序方式访问数据,这意味着即使是最简单的工作,也必须搜索整个数据集,无法实现对…
1.hadoop生态系统 2.hbase简介 非关系型数据库知识面扩展 cassandra.hbase.mongodb.redis couchdb,文件存储数据库 Neo4j非关系型图数据库 3.hbase概念 hadoop Database,是一个高可靠性.高性能.面向列.可伸缩.实时读写的分布式数据库 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务 主要用来存储非结构化和半结构化的松散…
一.Phoenix简介 Phoenix是HBase的开源SQL中间层,它允许你使用标准JDBC的方式来操作HBase上的数据.在Phoenix之前,如果你要访问HBase,只能调用它的Java API,但相比于使用一行SQL就能实现数据查询,HBase的API还是过于复杂.Phoenix的理念是we put sql SQL back in NOSQL,即你可以使用标准的SQL就能完成对HBase上数据的操作.同时这也意味着你可以通过集成Spring Data JPA或Mybatis等常用的持久层…
一.HBase过滤器简介 Hbase提供了种类丰富的过滤器(filter)来提高数据处理的效率,用户可以通过内置或自定义的过滤器来对数据进行过滤,所有的过滤器都在服务端生效,即谓词下推(predicate push down).这样可以保证过滤掉的数据不会被传送到客户端,从而减轻网络传输和客户端处理的压力. 二.过滤器基础 2.1 Filter接口和FilterBase抽象类 Filter接口中定义了过滤器的基本方法,FilterBase抽象类实现了Filter接口.所有内置的过滤器则直接或者间…
建表高级属性 下面几个 shell 命令在 hbase 操作中可以起到很大的作用,且主要体现在建表的过程中,看 下面几个 create 属性 1. BLOOMFILTER 默认是 NONE 是否使用布隆过虑及使用何种方式,布隆过滤可以每列族单独启用 使用 HColumnDescriptor.setBloomFilterType(NONE | ROW | ROWCOL) 对列族单独启用布隆 Default = ROW 对行进行布隆过滤 对 ROW,行键的哈希在每次插入行时将被添加到布隆 对 ROW…
HBase phoenix的下载 下载地址http://mirror.bit.edu.cn/apache/phoenix/ 选择对应的hbase版本进行下载,测试使用的是hbase-1.2.6版本…
系统架构 错误图解 这张图是有一个错误点:应该是每一个 RegionServer 就只有一个 HLog,而不是一个 Region 有一个 HLog. 正确图解 从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemStore.StoreFile.HFile.HLog等,接下来介绍他们的作用. Client 1.HBase 有两张特殊表: .META.:记录了用户所有表拆分出来的的 Re…
过滤器(Filter) 基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter.Filter可以根据簇.列.版本等更多的条件来对数据进行过滤,基于Hbase本身提供的三维有序(主键有序.列有序.版本有序),这些Filter可以高效的完成查询过滤的任务.带有Filter条件的RPC查询请求会把Filter分发到各个RegionServer,是一个服务器端(Server-side)的过滤器,这样也可以降低网络传输的压力. 要完成一个过滤的操作,至少需…
MapReduce从HDFS读取数据存储到HBase中 现有HDFS中有一个student.txt文件,格式如下 95002,刘晨,女,19,IS 95017,王风娟,女,18,IS 95018,王一,女,19,IS 95013,冯伟,男,21,CS 95014,王小丽,女,19,CS 95019,邢小丽,女,19,IS 95020,赵钱,男,21,IS 95003,王敏,女,22,MA 95004,张立,男,19,IS 95012,孙花,女,20,CS 95010,孔小涛,男,19,CS 95…
Eclipse环境搭建 具体的jar的引入方式可以参考http://www.cnblogs.com/qingyunzong/p/8623309.html HBase API操作表和数据 import java.io.IOException; import java.util.Date; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org…
一.基本命令 打开Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 status 1.3 查看版本信息 version 二.关于表的操作 2.1 查看所有表 list 2.2 创建表 命令格式: create '表名称', '列族名称1','列族名称2','列名称N' # 创建一张名为Student的表,包含基本信息(baseInfo).学校信息(schoolInfo)两个列…
一.基本概念 一个典型的Hbase Table 表如下: 1.1 Row Key (行键) Row Key是用来检索记录的主键.想要访问HBase Table中的数据,只有以下三种方式: 通过指定的Row Key进行访问: 通过Row Key的range进行访问,即访问指定范围内的行: 进行全表扫描. Row Key可以是任意字符串,存储时数据按照Row Key的字典序进行排序.这里需要注意以下两点: 因为字典序对Int排序的结果是1,10,100,11,12,13,14,15,16,17,18…
一.集群规划 这里搭建一个3节点的HBase集群,其中三台主机上均为Regin Server.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002上部署备用的Master服务.Master服务由Zookeeper集群进行协调管理,如果主Master不可用,则备用Master会成为新的主Master. 二.前置条件 HBase的运行需要依赖Hadoop和JDK(HBase 2.0+对应JDK 1.8+) .同时为了保证高可用,这里我们不采用HBase内置的…
一.安装前置条件说明 1.1 JDK版本说明 HBase 需要依赖JDK环境,同时HBase 2.0+ 以上版本不再支持JDK 1.7 ,需要安装JDK 1.8+ .JDK 安装方式见本仓库: Linux环境下JDK安装 1.2 Standalone模式和伪集群模式的区别 在Standalone模式下,所有守护进程都运行在一个jvm进程/实例中: 在伪分布模式下,HBase仍然在单个主机上运行,但是每个守护进程(HMaster,HRegionServer 和 ZooKeeper)则分别作为一个单…
主要是记录一下链接 http://hbasefly.com…
一.前言 使用Spring+Mybatis操作Phoenix和操作其他的关系型数据库(如Mysql,Oracle)在配置上是基本相同的,下面会分别给出Spring/Spring Boot 整合步骤,完整代码见本仓库: Spring + Mybatis + Phoenix SpringBoot + Mybatis + Phoenix 二.Spring + Mybatis + Phoenix 2.1 项目结构 2.2 主要依赖 除了Spring相关依赖外,还需要导入phoenix-core和对应的M…
python简介 一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. 目前最新版本为3.5.1,发布于2015年12月07日. 语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. 具有丰富和强大的库,底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快. 极其容易上手,因为Python有极其简单的说明文档. 免费.开源,是FLOSS(自由/开放源码软件)之一.使用者可以…
我们在用hbase的api对hbase进行scan操作的时候,可以设置caching和batch来提交查询效率,那它们之间的关系是啥样的呢,我们又应该如何去设置? 首先是我们的客户端代码. 当caching和batch都为1的时候,我们要返回10行具有20列的记录,就要进行201次RPC,因为每一列都作为一个单独的Result来返回,这样是我们不可以接受的. 下面展示的是当batch=3,caching=6时候的图,是一次RPCs的传递的数据. 接着我们继续看下图 一次查询20条记录的话,只需要…
本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 那什么是版本控制系统? GIT安装 1.linux环境下的安装 首先尝试输入git,查看系统是否安装有git 如果是Debian或者是Ubuntu linux系统,一条命令: sudo apt-get install git 就可以直接完成git的安装. 2. Windows环境的安装 msysgit是Window…