Apache HBase

「从零单排HBase 10」HBase集群多租户实践

邮差的信 提交于 2020-08-10 18:42:43
在HBase1.1.0发布之前,HBase同一集群上的用户、表都是平等的,大家平等共用集群资源。容易碰到两个问题: 一是某些业务较其他业务重要,需要在资源有限的情况下优先保证核心重要业务的正常运行 二是有些业务QPS常常很高,占用大量系统资源,导致其他业务无法正常运转。 这是典型的多租户问题。因此,我们需要通过资源隔离来解决多租户问题,同时,需要考虑计算型业务与存储型业务混合部署来提高集群的资源利用率。 1.基本概念 1.1 namespace逻辑隔离 HBase命名空间 namespace 与关系数据库系统中的数据库database类似,方便对表在业务上进行划分,实现逻辑隔离。 Apache HBase从0.98.0, 0.95.2两个版本开始支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。 这种抽象为即将出现的多租户相关功能奠定了基础。 1.2. 配额管理(Quotas) 资源限制,主要针对用户、namespace以及表的QPS和请求大小进行限制。 相关jira见: https://issues.apache.org/jira/browse/HBASE-8410、https://issues.apache.org/jira/browse/HBASE-11598 一般可以对热点表进行限制,或者在高峰期,对非核心业务表进行限制

想了解大数据的鼻祖Hadoop技术栈,这里有一份优质书单推荐!

╄→гoц情女王★ 提交于 2020-08-10 12:52:37
​ 如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系?对于大部分人来说都是傻傻分不清楚。 今年来大数据、人工智能获得了IT界大量的关注。如果一个企业不玩大数据,都不好意思说自己是在IT圈混的。我敢打赌,你在中关村西二旗地铁站溜一圈,保准你会听到如下名词:Hadoop、Spark、MapReduce、NoSQL、离线计算、实时计算、实时推送等等一大串名称。 程序猿们就是有这么实在,坐在地铁上还能那么投入的讨论技术问题。那么,这些听起来高大上的技术,究竟都是干什么用的呢?他们之间的有什么区别和联系? 通常,一个技术的兴起,都是由现实需求驱动的。了解了我们面临的问题,就能更好的理解各个大数据技术的使用场景,各类大数据技术的区别也就显而易见了。 今天这一份书单,我们就将从Hadoop生态圈开始入手,推荐几本关于Hadoop生态圈的优质书籍! Hadoop技术栈系列书单 ​ Hadoop权威指南:大数据的存储与分析(第4版) 本书结合理论和实践,由浅入深,全方位介绍了Hadoop这一高性能的海量数据处理和分析平台。 全书5部分24章,第Ⅰ部分介绍Hadoop基础知识,主题涉及Hadoop、MapReduce、Hadoop分布式文件系统、YARN、Hadoop的I/O操作。第Ⅱ部分介绍MapReduce,主题包括MapReduce应用开发

内存总是不够?HBase&GeoMesa配置优化了解一下

寵の児 提交于 2020-08-10 12:29:53
概况: 生产环境HBase集群内存经常处于高位(90%),而且GC之后也是内存依然处于高位,经分析内存全部由集群的regionserver进程所持有,,经常重启之后,大概3-4天就会保持在高位。由上述症状,可以判断集群内存有泄露的嫌疑。 分析 1、 先熟悉一下HBase的内存模型 HBase系统中有两块大的内存管理模块,一块是 MemStore ,一块是 BlockCache,前置是用于集群写入所属内存,而后者用于缓存热数据,提供查询速度。 这两者均可以通过配置文件进行配置。当前集群均配置了0.4和0.4的比例。而考虑到HBase集群是多写少读的情景,为此而引入了 MSLAB机制来优化HBase的MemStore 负担。内存的使用率会呈现很优美的锯齿图形。 2、分析内存使用率和业务关系 起初认为是读写业务量已经超过了集群负载能力,但集群业务也不大,写和读的TPS,带宽吞吐量均未达到集群限定的能力,而且CPU利用率大多半都被GC占用,但内存就是持高不下,即使业务了停了一天,内存还是不怎么下降,很明显和业务量无关。 那么和compaction有关?经观察的确可以看compact时特别消耗时间。此时感觉看到了希望,调整各个参数,把compact操作提升了10+倍之后,内存还是持高不下 。剩下最根治的办法就是分析内存,看一下内存数据都是什么?有无内存泄露问题。 3、分析dunp文件

Sqoop快速入门系列(2) | Sqoop数据导入与导出

只谈情不闲聊 提交于 2020-08-10 12:12:16
 此篇为大家带来的是Sqoop数据导入与导出。 目录 一. 导入数据 RDBMS到HDFS RDBMS到Hive RDBMS到Hbase 二. 导出数据 HIVE/HDFS到RDBMS 三. 脚本打包 一. 导入数据   在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用import关键字。 RDBMS到HDFS 确定Mysql服务开启正常 [bigdata@hadoop002 sqoop]$ mysql -uroot -p199712 1 在Mysql中新建一张表并插入一些数据 // 创建脚本 [bigdata@hadoop002 datas]$ vim company.sql create database company; use company; create table staff(id int(4) primary key not null auto_increment, name varchar(255), sex varchar(255)); insert into staff(name, sex) values('Thomas', 'Male'); insert into staff(name, sex) values('Catalina', 'FeMale'); insert

Presto on Spark:支持即时查询和批处理

假如想象 提交于 2020-08-10 08:39:31
文章目录 1 前言 2 Presto Unlimited 2.1 Grouped Execution 2.2 Exchange Materialization 2.3 Recoverable Grouped Execution 3 Presto on Spark 4 以 MR 的方式执行 ETL 前言 Facebook 的数据仓库构建在 HDFS 集群之上。在很早之前,为了能够方便分析存储在 Hadoop 上的数据,Facebook 开发了 Hive 系统,使得科学家和分析师可以使用 SQL 来方便的进行数据分析,但是 Hive 使用的是 MapReduce 作为底层的计算框架,随着数据分析的场景和数据量越来越大,Hive 的分析速度越来越慢,可能得花费数小时才能完成。而且 Facebook 也尝试使用外部的一些项目,但是都无法满足自己的需求,基于这些情况,Facebook 从 2012 年秋季开始开发一个新的计算引擎,这也就是我们熟悉的 Presto 。 Presto 的核心目标就是提供交互式查询,也就是我们常说的 Ad-Hoc Query,很多公司都使用它作为 OLAP 计算引擎。但是随着近年来业务场景越来越复杂,除了交互式查询场景,很多公司也需要批处理;但是 Presto 作为一个 MPP 计算引擎,将一个 MPP 体系结构的数据库来处理海量数据集的批处理是一个非常困难的问题

Spring Boot集成HBase

为君一笑 提交于 2020-08-10 03:13:34
Spring Boot版本v1.5.19.RELEASE 1、增加Jar <dependency> <groupId>com.spring4all</groupId> <artifactId>spring-boot-starter-hbase</artifactId> <version>1.0.0.RELEASE</version> </dependency>    2、创建表 创建命名空间pb create_namespace 'pb'    在pb命名空间下创建用户表 create 'pb:user', {NAME => 'b', VERSIONS => '3', TTL => '2147483647', 'BLOOMFILTER' => 'ROW'}, {NAME => 'o', VERSIONS => '3', TTL => '2147483647', 'BLOOMFILTER' => 'ROW'}  user表下有b和o列族 3、配置参数。 主要是hbase的配置。程序的部署环境和hbase的部署环境是同一台linux服务器。 spring: application: name: hbaseDemo kafka: bootstrap-servers: localhost:9092 consumer: group-id: mygroup listener:

Kettle最新版本8.X详解

◇◆丶佛笑我妖孽 提交于 2020-08-09 15:55:51
该课程总共22讲,分为五个部分。第一部分是课程介绍,对该课程需要使用的工具和课程规划进行一个简单的介绍。第二部分主要介绍kettle工具的安装和相关概念的介绍,并通过一个kettle小案例带领大家入门。第三部分主要讲解kettle工具各种控件的使用。第四部分则讲解kettle工具的一些高阶应用功能。第五部分给大家讲解kettle的实战综合案例。每次课程都是通过案例进行讲解,并提供详细的教案文档。整个讲解深入浅出,通俗易懂。 第一章:kettle课程介绍 0、Kettle最新版本8.X课程整体介绍 第二章:kettle简单介绍和示例 1、Kettle安装及基本介绍 2、第一个Kettle小例子(oracle2oracle) 第三章:kettle简单案例分享 3、Kettle实现文本文件抽取及输出 4、Kettle实现Xml文件抽取及输出 5、Kettle实现Excel文件抽取及输出 6、Kettle实现Hadoop文件数据抽取及输出 7、Kettle实现Hive数据库抽取及输出 8、Kettle实现HBase数据库抽取及输出 9、Kettle实现调用WebService服务返回Json和xml数据 10、Kettle实现调用Restful服务返回Json和xml数据 第四章:kettle高阶应用讲解 11、Kettle参数、变量使用简介 12、Kettle排序、去重和分组 13

Flink在快手实时多维分析场景的应用

吃可爱长大的小学妹 提交于 2020-08-09 09:05:28
作者:董亭亭、徐明 摘要:作为短视频分享跟直播的平台,快手有诸多业务场景应用了 Flink,包括短视频、直播的质量监控、用户增长分析、实时数据处理、直播 CDN 调度等。此次主要介绍在快手使用 Flink 在实时多维分析场景的应用与优化。主要内容包括: Flink 在快手应用场景及规模 快手实时多维分析平台 SlimBase-更省 IO、嵌入式共享 state 存储 Tips:点击下方链接可查看作者原版PPT及分享视频~ https://ververica.cn/developers/flink-forward-asia-2019/ Flink 在快手应用场景及规模 首先看 Flink 在快手的应用场景和规模。 1. 快手应用场景 快手计算链路是从 DB/Binlog 以及 WebService Log 实时入到 Kafka 中,然后接入 Flink 做实时计算,其中包括实时数仓、实时分析以及实时训练,最后的结果存到 Druid、Kudu、HBase 或者 ClickHouse 里面;同时 Kafka 数据实时 Dump 一份到 Hadoop 集群,然后通过 Hive、MapReduce 或者 Spark 来做离线计算;最终实时计算和离线计算的结果数据会用内部自研 BI 工具 KwaiBI 来展现出来。 Flink 在快手典型的应用场景主要分为三大类: 80% 统计监控 :实时统计

Hbase源代码编译

烈酒焚心 提交于 2020-08-09 02:52:36
软件版本 hbase版本: 1.2.6 maven版本: 3.5.0 jdk版本: 1.8 编译步骤 1.下载并解压源代码包 tar xf hbase-1.2.6-src.tar.gz 2.将pom.xml中的hadoop-two.version属性值修改为要指定的hadoop版本(我这里选择2.7.7) < hadoop-two.version > 2.7.7 < /hadoop-two.version > 3.编译打包 mvn clean package -DskipTests assembly:single 打包完成后,hbase-assembly/target中会有目标tar包生成。 来源: oschina 链接: https://my.oschina.net/u/4270977/blog/4302776

kylin streaming原理介绍与特点浅析

ε祈祈猫儿з 提交于 2020-08-08 20:45:39
目录 前言 kylin streaming设计和原理 架构介绍 streaming coordinator streaming receiver cluster kylin streaming数据构建流程 kylin streaming查询流程 kylin streaming实现细节 kylin streaming segment存储实现 重平衡/重分配 故障恢复 kylin streaming优化 总结 前言 最近搭了Kylin Streaming并初步测试了下,觉得这个东西虽然有些限制,但还是蛮好用的,所以系统写篇文章总结下其原理和一些配置。 Kylin Streaming是Kylin3.0最新引入的一个功能,意为OLAP查询提供亚秒级的数据延迟,即在摄入数据后,立即可以在OLAP查询中体现出来。 用过Kylin应该都知道,它主要是通过预构建的方式,将数据从Hive预先计算然后存储到Hbase。查询的时候一些复杂操作直接转成Hbase的scan和filter操作,大大降低OLAP查询响应时间。 而在比较早版本的Kylin其实是有提供从kafka构建流式应用的,只是那时候走的还是预构建然后存到hbase的路子。这其实是微批的思路,缺点是延迟会比较高(十几分钟级别的延迟)。 这个延迟在某些场景下肯定是无法使用的,所以19年Kylin开始对实时计算这块进行开发