Apache HBase

新闻网大数据实时分析可视化系统项目——18、Spark SQL快速离线数据分析

。_饼干妹妹 提交于 2020-04-24 18:06:26
1.Spark SQL概述 1)Spark SQL是Spark核心功能的一部分,是在2014年4月份Spark1.0版本时发布的。 2)Spark SQL可以直接运行SQL或者HiveQL语句 3)BI工具通过JDBC连接SparkSQL查询数据 4)Spark SQL支持Python、Scala、Java和R语言 5)Spark SQL不仅仅是SQL 6)Spark SQL远远比SQL要强大 7)Spark SQL处理数据架构 8)Spark SQL简介 Spark SQL is a Spark module for structured data processing 9)Spark SQL的愿景 a)Write less code 对不同的数据类型使用统一的接口来读写。 b)Read less data 提升大数据处理速度最有效的方法就是忽略无关的数据。 (1)使用列式存储(columnar formats),比如Parquet、ORC、RCFile (2)使用分区裁剪(partitioningpruning),比如按天分区,按小时分区等 (3)利用数据文件中附带的统计信息进行剪枝:例如每段数据都带有最大值、最小值和NULL值等统计信息,当某一数据段肯定不包含查询条件的目标数据时,可以直接跳过这段数据。(例如字段age某段最大值为20,但查询条件是>50岁的人时

面试官问,你在开发中有用过什么设计模式吗?我懵了

﹥>﹥吖頭↗ 提交于 2020-04-24 17:55:00
设计模式不应该停留于理论,跟具体业务结合,它才会变得更香~ 1.前言 设计模式我们多少都有些了解,但是往往也只是知道是什么。 在真实的业务场景中,你有用过什么设计模式来编写更优雅的代码吗? 我们更多的是每天从产品经理那里接受到新需求后,就开始MVC一把梭,面向sql编程了。 我们习惯采用MVC架构,实时上是非常容易创建很多贫血对象模型,然后写出过程式代码。我们使用的对象,往往只是数据的载体,没有任何逻辑行为。我们的设计过程,也是从ER图开始,以数据为中心进行驱动设计。一个需求一个接口,从controller到service到dao,这样日复一日的CRUD。 什么设计模式?根本不存在的! 今天,我们尝试从常用设计模式(工厂模式、代理模式、模版模式)在CRUD中的可落地场景,希望能给大家带来一些启发。 2.理解设计模式 设计模式(Design pattern),不是前人凭空想象的,而是在长期的软件设计实践过程中,经过总结得到的。 使用设计模式是为了让代码具有可扩展性,实现高聚合、低耦合的特性。 世上本来没有设计模式,写代码的人多了,便有了设计模式。 面向对象的设计模式有七大基本原则: 开闭原则(首要原则):要对扩展开放,对修改关闭 单一职责原则:实现类要职责单一 里氏代换原则:不要破坏继承体系 依赖倒转原则:面向接口编程 接口隔离原则:设计接口要精简单一 合成/聚合复用原则

HBase BucketAllocatorException 异常剖析

早过忘川 提交于 2020-04-23 12:34:44
近日,观察到HBase集群出现如下WARN日志: 2020-04-18 16:17:03,081 WARN [regionserver/xxx-BucketCacheWriter-1] bucket.BucketCache:Failed allocation for 604acc82edd349ca906939af14464bcb_175674734; org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocatorException: Allocation too big size=1114202; adjust BucketCache sizes hbase.bucketcache.bucket.sizes to accomodate if size seems reasonable and you want it cached. 大概意思是说:由于block块太大(size=1114202)导致BucketAllocator无法为其分配空间,如果想要被缓存并且觉得这样做合理,可以调整参数hbase.bucketcache.bucket.sizes。 默认情况下,HBase BucketCache 能够缓存block的最大值为512KB,即hbase.bucketcache.bucket.sizes=5120,9216,17408

kafka消息分区机制原理

╄→гoц情女王★ 提交于 2020-04-23 10:57:53
背景 kafka如何支撑海量消息的集中写入? 答案就是消息分区。 核心思想是:负载均衡,采用合适的分区策略把消息写到不同的broker上的分区中; 其它的产品中有类似的思想。 比如monogodb, es 里面叫做 shard; hbase叫region, cassdra叫vnode; 消息的三层结构 如下图: 即 topic -> partition -> message ; topic是逻辑上的消息容器; partition实际承载消息,分布在不同的kafka的broke上; message即具体的消息。 分区策略 round-robin轮询 消息按照分区挨个的写。 randomness随机分区 随机的找一个分区写入,代码如下: List<PartitionInfo> partitions = cluster.partitionsForTopic(topic); return ThreadLocalRandom.current().nextInt(partitions.size()); key 相同的key的消息写到固定的分区中 自定义分区 必须完成两步: 1,自定义分区实现类,需要实现org.apache.kafka.clients.producer.Partitioner接口。 主要是实现下面的方法: int partition(String topic, Object

HBase BucketAllocatorException 异常剖析

拈花ヽ惹草 提交于 2020-04-23 10:56:40
近日,观察到HBase集群出现如下WARN日志: 2020-04-18 16:17:03,081 WARN [regionserver/xxx-BucketCacheWriter-1] bucket.BucketCache:Failed allocation for 604acc82edd349ca906939af14464bcb_175674734; org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocatorException: Allocation too big size=1114202; adjust BucketCache sizes hbase.bucketcache.bucket.sizes to accomodate if size seems reasonable and you want it cached. 大概意思是说:由于block块太大(size=1114202)导致BucketAllocator无法为其分配空间,如果想要被缓存并且觉得这样做合理,可以调整参数hbase.bucketcache.bucket.sizes。 默认情况下,HBase BucketCache 能够缓存block的最大值为512KB,即hbase.bucketcache.bucket.sizes=5120,9216,17408

大数据系列之再识Hadoop文件系统HDFS

蹲街弑〆低调 提交于 2020-04-23 06:00:06
CDA数据分析 出品 在搭建伪分布集群或者搭建分布式集群过程中经常提到HDFS,HDFS到底是什么东东呢?今天我们就给小伙伴们详细介绍一下。 1、 HDFS简介 HDFS(Hadoop Distributed File System)是hadoop项目的核心子项目,是分布式计算中数据存储管理的基础。是基于流数据模式访问和处理超大文件的需求而开发的, 可以运行于廉价的商用服务器上。 它所具有的高容错、 高可靠性、 高可扩展性、 高获得性、 高吞吐率等特征为海量数据提供了不怕故障的存储, 为超大数据集(Large Data Set) 的应用处理带来了很多便利。 HDFS是开源的,存储着Hadoop应用将要处理的数据,类似于普通的Unix和linux文件系统,不同的是它是实现了google的GFS文件系统的思想,是适用于大规模分布式数据处理相关应用的、可扩展的分布式文件系统。 2、 HDFS与Hadoop之间的关系 Hadoop是一个以一种可靠、高效、可伸缩的方式进行处理的,能够对大量数据进行分布式处理的系统框架。 HDFS是hadoop兼容最好的标准级文件系统。 所以可以理解为hadoop是一个框架, HDFS 是Hadoop中的一个部件。 3、 为什么需要HDFS 小量的数据,单机的磁盘是能够很好地处理面对的数据,但当数据量巨大(PB)时,磁盘开始纠结处理我们需要的海量信息

准备两个月,面试五分钟,Java岗面试为何越来越难?

不问归期 提交于 2020-04-22 01:05:03
如果你参加过一些大厂面试,肯定会遇到一些开放性的问题: 1、写一段程序,让其运行时的表现为触发了5次Young GC、3次Full GC、然后3次Young GC; 2、如果一个Java进程突然消失了,你会怎么去排查这种问题? 3、给了一段Spring加载Bean的代码片段,阐述一下具体的执行流程? 是不是看上去很难,是不是和自己准备的“题库”中的问题不一样?不知道从何处下手?如果你有这种感觉,那么说明你的技术还需要继续修炼。 面对如此多的技术面试,怎么样才能说自己的技术已经过关了呢? 一、开场白 (文末可领取) 简单的介绍一下自己的工作经历与职责,在校或者工作中主要的工作内容,主要负责的内容;(你的信息一清二白的写在简历上,这个主要为了缓解面试者的压力) 介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;(主要考察应聘者对自己做过的事情是否有清晰的描述,判断做的事情的复杂度) 二、Java多线程 线程池的原理,为什么要创建线程池?创建线程池的方式; 线程的生命周期,什么时候会出现僵死进程; 说说线程安全问题,什么实现线程安全,如何实现线程安全; 创建线程池有哪几个核心参数? 如何合理配置线程池的大小? volatile、ThreadLocal的使用场景和原理; ThreadLocal什么时候会出现OOM的情况?为什么? synchronized

aaaaa

独自空忆成欢 提交于 2020-04-21 02:52:00
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

揭秘MySQL生态重要功能,X-Engine引擎核心能力——OnlineDDL

拜拜、爱过 提交于 2020-04-18 15:29:24
概述 X-Engine是阿里自研的数据库存储引擎,以插件的方式接入到MySQL生态,支持行锁,事务,MVCC等OLTP场景的核心功能。 X-Engine的核心优势是低成本,高性价比,尤其适用于历史库场景,目前阿里巴巴内部的核心交易历史库(原来是Hbase),钉钉消息历史库(原来是MySQL(InnoDB)),淘宝商家的图片空间等业务均通过X-Engine解决了成本问题。 同时,X-Engine也赋能阿里云数据库服务,作为云上RDS-MySQL的存储引擎,对外售卖,让更多的用户享受到新技术带来的红利,有关X-Engine的详细介绍,请移步2019年10月的数据库内核月报。本文主要介绍X-Engine引擎的一个核心功能, OnlineDDL 。 OnlineDDL毫无疑问是MySQL生态的一个重要的功能,想当初MySQL 5.6以前,DBA执行D 来源: oschina 链接: https://my.oschina.net/u/4397965/blog/3274183

HBase-2.2.3源码编译-Windows版

你。 提交于 2020-04-18 09:29:23
源码环境一览 windows: 7 64Bit Java: 1.8.0_131 Maven:3.3.9 Git:2.24.0.windows.1 HBase:2.2.3 Hadoop:2.8.5 下载安装 1. Maven|Git|Java下载安装 Maven、Git 、Java 请先自行下载安装并配置环境变量。 Maven安装完毕后在Maven配置文件settings.xml中配置阿里云镜像。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> 2. HBase 源码下载 然后下载HBase-2.2.3源码到本地,建议使用方式二进行下载并解压至当前文件夹,任选一个磁盘,将解压后的文件夹移动至该磁盘根目录下。此时我的文件目录为:F:\hbase-2.2.3。 # 方式一 速度有点慢 git clone -b rel/2.2.3 --depth 1 https://github.com/apache/hbase.git # 方式二 迅雷下载并解压 速度很快 https://archive.apache.org/dist