• 等级
  • 4682630 访问
  • 304 原创
  • 8 转发
  • 250 排名
  • 815 评论
  • 1653 获赞

提升小规模HDP集群的作业并行度

对于团队使用的一些小型的Hadoop集群来说,由于资源有限,团队成员又多,并行开发和测试又密集,很容易出现资源紧张,作业被pending无法执行的情况,最大化的配置集群作业的并行度是开发环境的集群所必须的。1.YarnQueue的作业分配粗策略默认情况,Yarn作业的提交顺序使用FIFO策略,如果想要提升作业的并行度,可以改为FAIR2.YarnQueue的AM资源分配比一般情...

2019-01-30 18:18:54

Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法

HiveJDBC连接Tez(AM)容器长期不释放问题的解决方法问题有这样一个问题是很常见的:如果我们的Hive使用默认使用Tez作为执行引擎,当我们使用IDE通过HiveJDBC连接时,会出现在一个很“有趣”的想象:即如果我们不断开这个JDBC连接,则在Yarn上会持续有有一个Tez的AM容器持续存在,只有当端开JDBC连接时,这个容器才会被释放。关于Tez在Yarn的资源布局,可参考这篇...

2019-01-30 15:31:09

Spark SQL和Hive在处理日期/时间上的差异

注:本文使用的环境是:Spark:2.2,Hive:1.2.1最近在编写一个SQL的过程中遇到了这样一个陷阱:为了便于工作,SQL的编写是通过一个SQL的IDE环境以HiveJDBC驱动的方式连接到HIVE上去执行的,SQL在HIVE上执行正常,有结果数据返回。但是SQL开发好在程序执行时通过Spark-SQL来运行的,SQL可以成功执行,没有报出任何语法错误,但是没有任何结果数据!在经...

2018-12-27 12:05:22

Kerberos笔记

本文以《HadooopSecurity》等资料为基础,罗列关于Kerberos的一些重要内容的笔记。文章目录Kerberos的基本思想没有Kerberos时,Hadoop是如何工作的?Kerberos概述1.Principal2.Realm3.KDC3.1Kerberos数据库3.2认证服务(authenticationservice)3.3票据授予服务(ticket-gra...

2018-12-08 13:59:47

数仓CUBE操作术语备忘

SLICE(切片)将某一个(或多个)维度上的值锁定,只观察当这个维度取这个值时的情形,相当于将一个立方体做了一个切片。DICE(切块)将某一个(或多个)维度上的值固定在一个区间内,观察这个取值区间内cube的情形,相当于将一个立方体做了一个切块。ROLLUP(上卷)沿着某一个(或多个)维度进行聚合,观察聚合后其他维度上的汇总数据,相当于将一个立方体沿着某个维度压缩(聚合)在一起...

2018-11-06 17:23:23

Spark Structured Stream的流关联(Stream-Stream Joins)

自Spark2.3开始,SparkStructuredStreaming开始支持Stream-streamJoins。两个流之间的join与静态的数据集之间的join有一个很大的不同,那就是,对于流来说,在任意时刻,在join的两边(也就是两个流上),数据都是“不完全”的,当前流上的任何一行数据都可能会和被join的流上的未来某行数据匹配到,为此,Spark必须要缓存流上过去所有的输入,以...

2018-08-01 10:48:04

Spark报java.util.NoSuchElementException: head of empty list错误的解决方法

如果在SparkStructuredStreaming上使用了ArbitraryStatefulOperations,也就是使用了mapGroupsWithState或flatMapGroupsWithState方法,而其中GroupState[S]的S又偏偏是一个自定义的类型,那么你就会遇到这个错误!产生这个错误的原因是Spark找不到相应的Encoder,Encoder的作用是负责J...

2018-07-25 18:33:48

Spark Structured Streaming: 自维护(任意)状态流的“超时”(Timeout)问题

此“超时”非彼“超时”在我们开始这篇文章之前,我们必须要先弄清除一下问题:为什么流的上的状态会有“超时”问题?超时机制是为什么样的业务场景而设计的?通常情形下,人们一种直白的想法是:某种状态在长时间没有得到来自新数据的更新时,我们可以认为这个状态是“超时”了,它应该不复存在了,应该永远的被移除掉。然而遗憾的时是,Spark对于“状态”以及“超时”是另外一种理解:Spark认为既然流是没有边...

2018-06-28 15:42:41

Spark基于事件时间的“状态”流的深层分析 - withWatermark与mapGroupsWithState的关系

不管是基于watermark的窗口计算还是自维护的状态流,它们都是有状态的,watermark只是规定了数据进入“状态”(有资格参与状态计算)的条件,并没有(也不适合)声明状态的“退出”机制。对于watermark的窗口计算来说,它们的“退出”机制是:如果最近某个还处于active状态的窗口它的EndTime比当前批次中最新的一个事件时间减去watermark规定的阈值还要“早”,说明这个窗口所有...

2018-06-27 09:48:27

Spark性能调优系列二:Spark流计算重要性能参数测试与分析

参数介绍spark.scheduler.modespark.streaming.concurrentJobsscheduler线程池测试用例TestCaseGroup1:FIFOvs.FAIRTestCase1-1:FIFOTestCase1-2:FAIRTestCaseGroup2:FIFO1Slotvs.FIFO4Slo...

2018-06-21 09:39:41

Spark性能调优系列一:Spark的作业模型

JobSpark的整个作业体系中,处于顶层的是Job,Job和Spark中的Action是一一对应的,每一个Action都会触发一个Job的执行,这个Job包含的处理逻辑是Action以及Action之前的所有Transformation,所有这些逻辑会被Spark转换成一张关于RDD的DAG(有向无环图),这个DAG也就是实际意义上的Job的执行计划。StageJob的下一个...

2018-06-11 16:12:44

Spark Structured Streaming多流multiple streams)多查询(multiple queryies)问题

StructuredStreaming作为Spark新一代的流计算编程模型,针对流计算提供了很多新的的高级的API进行支持,这使得它比DStream要好用的多,同时编码量也大幅度地减少,但是在当前版本V2.3下,StructuredStreaming无法支持多流(multiplestreams)多查询(multiplequeryies)是非常头痛的一个问题。在流计算中,一个非常...

2018-06-08 09:56:32

Flink初探

编程模型应该说Flink的编程编程模型和SparkStreaming的DStream还是非常相似的,也是抽象出了Stream概念也表示没有边界的数据流,针对Stream所施加操作是被称之为”transformation”,它会把一个流转换成另一个流作为转换的输出。与很多流计算模型一样,流的起点往往是数据的输入源,被称之为”source”,流的重点是数据的输出目的地,被成为“sink”。下图...

2018-05-25 10:05:25

《Spark Structured Streaming》 官方文档解读

模型思想从Spark2.0开始,SparkStreaming引入了一套新的流计算编程模型:StructuredStreaming,开发这套API的主要动因是自Spark2.0之后,以RDD为核心的API逐步升级到Dataset/DataFrame上,而另一方面,以RDD为基础的编程模型对开发人员的要求较高,需要有足够的编程背景才能胜任SparkStreaming的编程工作,而新引入的...

2018-05-23 17:33:16

应该广泛使用case语句简化函数字面量的实现

这篇文章很短,但足以单独作为一篇文章存在,因为这里介绍的这个Scala编程技巧非常的实用和高效。在Scala里我们需要大量地编写一些函数字面量作为参数传递给高阶函数,而很多时候,被要求提供的函数字面量的参数是一些复合类型,比如tuple,在函数字面量的实现体中,往往第一步就是通过模式匹配从复合类型中提取出嵌套的变量进行计算,例如下面计算元组两元素平方差的例子:scala>v...

2018-05-03 15:40:23

谨慎使用Scala Map的mapValues, 你需要的可能是transform

没有踩过mapValues的坑之前,我相信大多数人会认为mapValues和所有其他map类方法的逻辑是一样的:对Map里所有的value施加一个map函数,返回一个新的Map。但实际情况却并不这么简单,还是先看一段“诡异”的代码吧(本文原文出处:本文原文链接:http://blog.csdn.net/bluishglc/article/details/80156218转载请注明出处。):...

2018-05-01 14:07:48

MySQL常见问题与常用语句汇总

root用户初始登入与重置密码允许root用户远程登入为特定数据库创建特定用户并赋予权限导出完整的数据库到SQL脚本包含schema和insert语句执行SQl脚本把MySQL中的一些常见问题与常用语句汇总一下,以备后查。root用户初始登入与重置密码初次安装MySQL后,root用户的密码会存放于日志文件/var/log/mysqld.log,登入...

2018-02-24 11:18:59

时间序列大数据平台建设经验谈

版权声明:本文由本人撰写并发表于2018年1月刊的《程序员》杂志,本文版权归《程序员》杂志所有,未经许可不得转载。引言在大数据的生态系统里,时间序列数据(TimeSeriesData,简称TSD)是很常见也是所占比例最大的一类数据,几乎出现在科学和工程的各个领域,一些常见的时间序列数据有:描述服务器运行状况的Metrics数据、各种IoT系统的终端数据、脑电图、汇率、股价、气象和天

2018-02-07 10:37:25

命令模式:若只如“初见”

版权声明:本文由本人撰写并发表于InfoQ,原文链接:http://www.infoq.com/cn/news/2018/01/Command-mode-if-only-first-see似曾相识最近在InfoQ上看到一篇谈论命令模式与CQRS架构的译文《FromCQStoCQRS》(建议先阅读此文,本文会针对该文的一些观点进行探讨),文章从命令模式谈起,然后提出了命令模式的升级

2018-01-05 10:00:03

再谈Scala集合

集合!集合!一个现代语言平台上的程序员每天代码里用的最多的大概就是该语言上的集合类了,Scala的集合丰富而强大,至今无出其右者,所以这次再回过头再梳理一下。集合“族谱”还是先上张图吧,这是我找到的最好的一个关于Scala集合的图了,出自:http://lkumarjain.blogspot.co.id/2015/01/scala-collection-framework.html:一致的构建风格

2017-12-14 14:01:05

博客专家

bluishglc

架构师,CSDN博客专家,目前正从事大数据领域的研 究和开发工作,对企业级应用架构、SaaS、分布式存储和领域驱动设计有丰富的实践经验,喜欢摄影和旅行。 ...展开 收起
关注
奖章
  • 专栏达人
  • 持之以恒