导语:本文细致而全面地讲解使用flume输出数据到HBase的三种不同 Flume-Hbase-Sink 之间的差异性,以及技术细节。并且透彻而全面地总结了不同版本flume和HBase之间的兼容性问题。 为了更加详细说明三种不同hbasesink的差异性,本文在附录附上详细的源码解读。
HBase自带的Web UI上Region单位的 Read Request Count/Write Request Count,不过这只是个累计值。
本文作者将会详细描述这两大类HBaseSinks 对应的三种序列化模式的使用方法。
离线数据分析平台实战——090HBase shell客户端和Java Api介绍 HBase 命令介绍 HBase命令主要分为两大类, 第一类是指操作hbase表的相关的shell命令; 第二类是
–HBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库
package cn.hljmobile.tagcloud.service.data.repository; import java.util.ArrayList; import java.util
离线数据分析平台实战——260用户数据ETL ETL目标 解析我们收集的日志数据,将解析后的数据保存到hbase中。 这里选择hbase来存储数据的主要原因就是: hbase的宽表结构设计适合我们的这样多种数据格式的数据存储(不同event有不同的存储格式)。 在etl过程中,我们需要将我们收集得到的数据进行处理,包括ip地址解析、userAgent解析、服务器时间解析等。 ETL存储 etl的结果存储到hbase中, 由于考虑到不同事件有不同的数据格式, 所以我们将最终etl的结果保存到hbas
HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,为横向发展类型数据库,提供快速随机访问海量结构化数据,它是Hadoop生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的一部分,利用了Hadoop的文件系统(HDFS)提供的容错能力。
通信运营商每时每刻会产生大量的通信数据,例如:通话记录,短信记录,彩信记录,第三方服务资费等等繁多信息。数据量如此巨大,除了要满足用户的实时查询和展示之外,还需要定时定期的对已有数据进行离线的分析处理。例如:当日话单,月度话单,季度话单,年度话单,通话详情,通话记录等等。我们以此为背景,寻找一个切入点,学习其中的方法论。
日志中有sql提交用户:userName,还有提交主机:ipAddress,提交sql:insert overwrite into table XXXX select * from YYYYY,编译的时间等信息;
编写 mer_index.yml (注意:sql 语句中每张表的主键都要出现在查询中)
文章简介:Phoenix是一个开源的HBASE SQL层。它不仅可以使用标准的JDBC API替代HBASE client API创建表,插入和查询HBASE,也支持二级索引、事物以及多种SQL层优化。
在一些业务场景中需要将Hive的数据导入到HBase中,通过HBase服务为线上业务提供服务能力。本篇文章Fayson主要通过在Hive上创建整合HBase表的方式来实现Hive数据导入到HBase。
Hbase提供了跨集群的数据同步方式Replication,可通过自定义Replication Endpoint,把消息写入kafka,先来了解Hbase Replication集群之间进行复制同步的过程,整体数据复制流程如下图:
我们都知道一个系统最重要的是数据,数据是保存在数据库里。但是很多时候不单止要保存在数据库中,还要同步保存到Elastic Search、HBase、Redis等等。
之前学习 HBase 就有疑惑,HBase 虽然可以存储数亿或数十亿行数据,但是对于数据分析来说,不太友好,只提供了简单的基于 Key 值的快速查询能力,没法进行大量的条件查询。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在集群中使用HBase,默认是没有开启授权认证,任何用访问HBase集群都可以进行任何操作(如:disable table、drop table)等等。对于未启用Kerberos认证的集群,即使开启了HBase授权,用于也可以伪造身份访问集群服务。因此
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。 Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。 Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好:
默认情况下, 直接在 HBase 中创建的表通过 Phoenix 是查不到的.
前面Fayson讲过HDFS的快照,参考如何在CDH集群使用HDFS快照,那么HBase的快照呢?HBase快照功能丰富,有很多特征,并且创建时不需要关闭集群。快照可以在几秒内完成,对整个集群没有任何性能影响,另外快照只占用很小的空间。本篇文章主要讲述如何使用Cloudera Manager管理HBase的快照。
在 4.4-4.14 和5.0 releases 中 query server 及其 JDBC client 是内置的.
Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。Hive本身不存储数据,它完全依赖HDFS和MapReduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。而HBase表是物理表,适合存放非结构化的数据。
bin/sqlline.py数据库安装服务器ip或主机名:zookeeper的服务端口号
在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。Apache HBase从0.98.0, 0.95.2两个版本开始支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。
在前面的文章中,Fayson介绍了《如何使用Ranger 给HDFS 授权》,基于前面的集群环境和已有的用户信息,本篇文章Fayson主要介绍如何使用Ranger 给HBase 授权。
HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用;
ⅲ、重新创建表,在表创建时会自动挂载该协处理器(表在挂载协处理器的时候,回去HBase的根目录下的lib文件夹下面找到jar包)
有关HBase集群如何做不停服的数据迁移一直都是云HBase被问的比较多的一个问题,目前有许多开源的工具或者HBase本身集成的方案在性能、稳定性、使用体验上都不是很好,因此阿里云提供了BDS迁移服务,可以帮助云上客户实现TB级数据规模不停机迁移
HBase是基于HDFS之上的,也可以采用存储本地模式,HBase是分布式数据库,将数据分为多份,同时是面向列的数据库,是bigtable的实现。
本文主要介绍 Hbase 常用的三种简单的容灾备份方案,即CopyTable、Export/Import、Snapshot。分别介绍如下:
Hbase的访问方式 1、Native Java API:最常规和高效的访问方式; 2、HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用; 3、Thrift Gateway:利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据; 4、REST Gateway:支持REST 风格的Http API访问HBase, 解除了语言限制; 5、MapReduce:直接使用MapReduce作业处理Hbase数据; 6、使用Pig/hive处理Hbase数据。
一 安装部署 1, 下载 http://archive.apache.org/dist/phoenix/ 本文下载的是apache-phoenix-4.12.0-HBase-1.2-bin.tar.gz 2, 安装 解压之后将phoenix-4.12.0-HBase-1.2-server.jar复制到hbase/lib目录下。 在hbase-site.xml中,添加如下配置 <property> <name>hbase.regionserver.wal.codec</name> <value>or
注意:truncate,清空表数据,实际底层操作是先使表不可用(下线),然后删除表,最后根据表信息重新创建一张新表。
命名空间是表的逻辑分组,类似于关系数据库系统中的数据库。这种抽象为多租户相关功能奠定了基础:
Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询。
本文介绍了如何在Docker环境下极速体验HBase。通过运行CentOS 7虚拟机,并安装和配置HBase,然后使用Docker启动并运行HBase集群。最后,使用HBase Shell命令以及Java API进行HBase的增删改查操作。
特别说明:该专栏文章均来源自微信公众号《大数据实战演练》,欢迎关注!
通过HBase的相关JavaAPI,我们可以实现伴随HBase操作的MapReduce过程,比如使用MapReduce将数据从本地文件系统导入到HBase的表中,比如我们从HBase中读取一些原始数据后使用MapReduce做数据分析。
安装 HBase 这里简单搭建了一个单机的 HBase 环境: 安装 JDK 环境,如何安装jdk可以自己网上搜。 下载 HBase,https://hbase.apache.org/downloads.html,这里我们选择下载2.0.1版本,文件名为 hbase-2.0.1.tar.gz,解压到任意目录。 修改 conf/hbase-env.sh ,设置 JAVA_HOME,这个是 /bin/java 所在的目录,通过 which java 查看。 export JAVA_HOME=/java/jdk
HBase数据模型(1) HBase数据模型(2) 1.0 HBase的特性 Table HBase以表(Table)的方式组织数据,数据存储在表中。 Row/Column 行(Row)
azkaban airflow dolphinscheduler oozie 自研
在服务器(主机名为repo)的mysql数据库中的"test"库中有一张"student"表,其中内容如下:
CDP 使用 Apache Ranger 进行数据安全管理。如果您希望利用 Ranger 进行集中安全管理,则需要将 HBase ACL 迁移到Ranger策略。这可以通过从 Cloudera Manager 访问的 Ranger webUI 来完成。但首先,让我们快速了解用于访问控制的 HBase 方法。
内存和磁盘同时读取,但是将两个数据进行对比,返回时间戳大的数据,所以说HBase读取比写入要慢得多
HBase本身是一个没有单点故障的分布式系统,上层(HBase层)和底层(HDFS层)都通过一定的技术手段保障了服务的可用性,HMaster一般都是高可用部署,如果集群中RegionServer宕机,region的迁移代价并不大,一般在毫秒级就能完成,所以对应用造成的影响也很有限;底层存储依赖于HDFS,数据本身默认也有3副本,数据存储上做到了多副本冗余,而在当前方案中将HBase当做单机使用。
HBase ACL 可以实现不同的用户、Group与Namespace、Table、ColumnFamily层级的数据权限控制
一、业务背景: 业务方需要搭建一套hbase集群,数据来源是hive表。 集群数据规模:每天4.5kw个key,420亿条左右数据,平均每个key每天1000个记录。每天总数据量1.2T左右,3备份需要存储2年约2.5P。 为响应公司业务上云,通过腾讯云上EMR搭建hbase集群。hive集群是在IDC机房,和普通集群迁移相比,这涉及到跨机房、跨集群的数据迁移,以及hive表数据到hbase集群数据的转换。 二、技术方案步骤 1、IDC机房与EMR网络的联通性验证
从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类。下面分别介绍一下。
(1)使用HBase的API中的Put是最直接的方法,但是它并非都是最高效的方式(2)Bulk load是通过一个MapReduce Job来实现的,通过Job直接生成一个HBase的内部HFile格式文件来形成一个特殊的HBase数据表,然后直接将数据文件加载到运行的集群中。使用bulk load功能最简单的方式就是使用importtsv 工具。importtsv 是从TSV文件直接加载内容至HBase的一个内置工具。它通过运行一个MapReduce Job,将数据从TSV文件中直接写入HBase的表或者写入一个HBase的自有格式数据文件。(3)可以使用MapReduce向HBase导入数据,但海量的数据集会使得MapReduce Job也变得很繁重。推荐使用sqoop,它的底层实现是mapreduce,数据并行导入的,这样无须自己开发代码,过滤条件通过query参数可以实现。
上一篇文章,我们将用户的购物数据用Hive进行了非实时的大数据分析,并为他们打上了标签,某些同学喜欢衣服,某些同喜欢汽车。那这些标签数据究竟存到了哪里,标签数据是否永远保存,这些标签数据是否能够不断更新?
领取专属 10元无门槛券
手把手带您无忧上云