hadoop
文章平均质量分 69
Deegue
这个作者很懒,什么都没留下…
展开
-
YARN : FairScheduler深入解析(NodeUpdate、assignContainer)
一、概要首先,YARN FairScheduler主要做的事情:① 处理NM心跳NodeUpdate,分配container。② 树状维护队列和任务,定时计算fair share等信息,并进行排序。本文重点分析①二、代码1、流程框架① FairScheduler接收心跳 public void handle(SchedulerEvent event) { switch (event.getType()) { .... case NODE_UPDATE:原创 2020-12-08 21:40:38 · 767 阅读 · 3 评论 -
YARN : FairScheduler深入解析(队列维护,demand、fair share计算)
一、概要首先,YARN FairScheduler主要做的事情:① 处理NM心跳NodeUpdate,分配container。② 树状维护队列和任务,定时计算fair share等信息,并进行排序。二、代码1、初始化FairScheduler在RM启动时会初始化FairScheduler, private void initScheduler(Configuration conf) throws IOException { synchronized (this) { th原创 2020-12-03 16:47:41 · 1391 阅读 · 0 评论 -
Hadoop: Fair Scheduler
介绍Fair Scheduler是公平分配YARN资源的方法之一。默认情况下,Fair Scheduler只基于内存来保证公平分配,通过配置yarn.scheduler.fair.cpu-scheduling-enabled为true,可以基于内存+CPU来分配资源。当只有一个application在运行时,它可以使用整个集群资源。当其他app提交后,资源会被释放并分配给新来的app,这样就能保证大家拥有大致相同的资源。Fair Scheduler还可以根据每个app的权重、优先级来确定分配资源的比例。原创 2020-10-10 12:09:56 · 27289 阅读 · 1 评论 -
Hive2.3.6升级至Hive3.1.3踩坑
1、coalesce报错FAILED: SemanticException [Error 10014]: Line 197:4 Wrong arguments ''10'': Unsafe compares BETWEEN different types are disabled for safety reasons. If you know what you are doing, please SET hive.strict.checks.type.safety t原创 2020-07-28 10:02:36 · 5960 阅读 · 3 评论 -
Hadoop 2.6.0升级至Hadoop 3.2.1及回滚
1、背景计划升级Hadoop版本从2.6.0-cdh5.16.1升级至开源3.2.1。Hive版本为2.3.6,与Hadoop3.2.1不兼容,于是测试Hive3.1.3。2、问题① 启动报错Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V at org.原创 2020-07-20 14:21:13 · 2903 阅读 · 0 评论 -
Hadoop 3.2.1源码编译踩坑
编译环境和步骤可以参考这篇文章,这边主要记录一些遇到的坑。1、protobu只能用2.5.0版本2、jdk1.8,CMake3.1及以上3、用CentOS系统编译,不支持MacOS,会卡在CMake上。4、为了支持Snappy,需要去Github上下载,我用的是这个版本snappy-1.1.4.tar.gz执行./configure --prefix=/usr/local/libmake && make install随后下载hadoop-snappy支持源码并编译:gi原创 2020-06-09 16:25:45 · 583 阅读 · 0 评论 -
Spark 3.0 - AQE浅析 (Adaptive Query Execution)
1、前言近些年来,在对Spark SQL优化上,CBO是最成功的一个特性之一。CBO会计算一些和业务数据相关的统计数据,来优化查询,例如行数、去重后的行数、空值、最大最小值等。Spark根据这些数据,自动选择BHJ或者SMJ,对于多Join场景下的Cost-based Join Reorder(可以参考之前写的这篇文章),来达到优化执行计划的目的。但是,由于这些统计数据是需要预先处理的,会过时,所以我们在用过时的数据进行判断,在某些情况下反而会变成负面效果,拉低了SQL执行效率。AQE在执行过程中原创 2020-06-03 16:32:55 · 12670 阅读 · 0 评论 -
Flume采集HDFS audit log日志至HDFS
1、背景HDFS的audit log产生数据量很大,速度也很快,在机器系统盘上必须立即持久化到HDFS,否则数据会被覆盖或者磁盘会打满。用于数据治理-HDFS废弃文件、Hive废弃表检测与清理。2、实现① Apache Flume官网下载最新版本的Flume。② 配置audit_log_hdfs.conf# 一个channel一个source 配置3个sinka1.sources = r1a1.sinks = k1 k2 k3a1.channels = c1# 数据来源,给c1配置s原创 2020-05-19 18:04:05 · 1761 阅读 · 0 评论 -
数据治理-HDFS废弃文件、Hive废弃表检测与清理
1、背景废弃下线的业务,直接在调度系统下线了相应的调度任务,而大量历史数据仍然残留,需要清除。去年集群迁移,导致很多表有HDFS数据但Hive上没有元数据,需要清除。2、思路① 扫描HDFS目录,到分区深度(比如/user/hive/warehouse/test.db/hdfs_audit/pt=20200416,深度为6)② 采集HDFS audit log(注意过滤扫描HDFS目录时产生的脏日志)③ 给audit log和HDFS目录建外部表,互相关联去重,获得HDFS近期未访问的文件列表。原创 2020-05-19 18:01:04 · 20119 阅读 · 0 评论 -
HDFS目录扫描
1、背景为了分析HDFS文件生命周期,需要获取一定深度的HDFS目录。2、实现 static final String hdfsBaseDir = "hdfs://nameservice1:8020"; static final int depth = 6; static FileSystem fs = null; static BufferedWriter out原创 2020-05-17 17:33:48 · 627 阅读 · 0 评论 -
Hive权限认证模块详解
1、前言前段时间,在升级Hive版本(从Hive1.1.0升级至Hive2.3.6)的过程中,遇到了权限兼容问题。(升级相关请移步Hive1.1.0升级至2.3.6 踩坑记录)Hive1.1.0使用的是AuthorizerV1而Hive2.3.6默认是AuthorizerV2,两者相差极大。其中AuthorizerV2的权限验证极为严格,如果曾经使用V1鉴权想要使用V2的,需要修改部分代码...原创 2020-03-13 20:00:08 · 3192 阅读 · 0 评论 -
Hadoop ViewFs 官方文档解读
官方文档地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/ViewFs.html1、简介ViewFs是用来管理多个Hadoop namespace的一种方案。具体思路和一些Linux/Unix系统的挂载表十分相似。ViewFs可以生成某个namespace的视图,或者说某个集群的文件视图。简...原创 2020-02-27 16:58:46 · 2198 阅读 · 0 评论 -
Hive SQL执行全过程源码解析(Hive3.1)
Hive任务提交源码解析原创 2019-12-23 17:05:11 · 7994 阅读 · 4 评论 -
Hive1.1.0升级至2.3.6 踩坑记录
1、union all 左右字段类型不匹配Hive尝试跨Hive类型组执行隐式转换。隐式转换支持类型如下表:例:hive> select 1 as c2, 2 as c2 > union all > select 1.0 as c1, "2" as c1;FAILED: SemanticException Schema of both sides ...原创 2019-12-20 14:46:36 · 4094 阅读 · 2 评论 -
MapReduce框架源码解析
MapReduce框架源码解析原创 2019-11-11 11:08:14 · 21602 阅读 · 0 评论 -
MapReduce框架以及Hive任务提交详解
起因在切Hive任务到Spark的时候,发现Spark在处理只有Hive元数据而HDFS文件块丢失的任务时,会抛HDFS的异常InvalidInputException,而Hive在这种情况下不受影响。因此,就去找Hive在处理只有元数据的空表时做的优化。发现Hive会在读表前,setInputPaths时做一次判断,如果HDFS不存在对应的文件,则会生成一个DummyTable/DummyP...原创 2019-11-11 11:06:47 · 4752 阅读 · 0 评论 -
Spark Streaming 反压(Back Pressure)机制介绍
背景在默认情况下,Spark Streaming 通过 receivers (或者是 Direct 方式) 以生产者生产数据的速率接收数据。当 batch processing time > batch interval 的时候,也就是每个批次数据处理的时间要比Spark Streaming 批处理间隔时间长;越来越多的数据被接收,但是数据的处理速度没有跟上,导致系统开始出现数据堆积,可...转载 2018-09-04 16:38:00 · 5351 阅读 · 0 评论 -
spark 参数调优11-Spark Streaming
spark参数调优系列 目录地址:https://blog.csdn.net/zyzzxycj/article/details/81011540 11 Spark Streamingspark.streaming.backpressure.enabled反压,默认false,详细了解请移步https://blog.csdn.net/zyzzxycj/article/detai...原创 2018-09-05 17:50:32 · 7881 阅读 · 0 评论 -
Spark执行流程与原理
Spark执行计划分析:https://blog.csdn.net/zyzzxycj/article/details/82704713-----------先贴一张sql解析的总流程图:第一次看这图可能还不是很理解,先看一个简单sql:select * from heguozi.payinfo where pay = 0 limit 10当这个sqlText,到...原创 2018-11-06 16:36:12 · 7533 阅读 · 0 评论 -
Neo4j 从零开始搭建与使用
背景:做血缘分析,用来存储字段之间的血缘关系。源码:https://github.com/neo4j/neo4j1、下载源码并编译git clone https://github.com/neo4j/neo4j mvn clean package -DskipTests2、解压、启动服务复制文件,解压neo4j/packaging/standalone/...原创 2018-12-18 19:44:44 · 2068 阅读 · 0 评论 -
记一次Spark SQL问题排查的经历
起因分析师A:哇 你们这个数据查询平台查Spark ,同样的SQL结果每次都不同,这能用?我:???第一反应是你八成是在查一张,别人在更新数据的表吧。。(同个SQL也会去跑两遍 小声bb)排查过程过了一会儿,分析师A:看了半天了没人动数据啊,你这个Spark有问题吧?一脸蒙逼,开始排查问题。首先把SQL copy执行了下,果然每次都不一样,查了下源表 也没人在变更。SQL如下:se...原创 2019-06-19 17:50:33 · 1329 阅读 · 0 评论 -
记一次Spark ThriftServer Bug排查
问题描述我们在用Spark ThriftServer(以下简称STS)用在查询平台时,遇到了以下报错:ERROR SparkExecuteStatementOperation: Error executing query, currentState RUNNING,org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.q...原创 2019-07-01 15:22:08 · 2522 阅读 · 0 评论 -
Spark org.apache.spark.shuffle.FetchFailedException: Too large frame: xxxxxxxx
报错如下:FetchFailed(BlockManagerId(92, hadoop1136.prod.2dfire.info, 7337, None), shuffleId=4, mapId=42, reduceId=42, message=org.apache.spark.shuffle.FetchFailedException: Too large frame: 2292863140...原创 2018-08-24 19:19:15 · 10486 阅读 · 0 评论 -
spark 参数调优10-Dynamic Allocation动态分配
spark参数调优系列 目录地址:https://blog.csdn.net/zyzzxycj/article/details/81011540 ⑩ Dynamic Allocation 动态分配spark.dynamicAllocation.enabled是否开启动态资源配置,根据工作负载来衡量是否应该增加或减少executor,默认false以下相关参数:spar...原创 2018-08-31 15:19:48 · 32020 阅读 · 0 评论 -
Dremel made simple with Parquet (Parquet 原理分析)
原版地址:https://blog.twitter.com/engineering/en_us/a/2013/dremel-made-simple-with-parquet.html写在前面:本来想翻译一下的,结果发现已经有翻译的版本了,仔细看了一下,有些许地方说的不是很清楚。就同时参考了原文,补了一些个人的理解上去。。Google 对于传说中3秒查询 1 PB 数据的 Dremel,有一篇论文:...原创 2018-04-26 10:51:40 · 1236 阅读 · 0 评论 -
Hive on Spark 搭建&踩坑
背景:想通过jdbc连接hive的方式,用spark引擎,hive的数据,来处理业务需求。环境:一台1C2G的ECS,渣渣机器;需要搭建集群的只需要更改yarn、slaves的配置即可。接下来肯定会关注的问题就是版本了,版本的选择有千千万万种,这边的参考版本可在下面的参考配置中获得。最关键的就是版本的匹配了,之前瞎配,最后会导致各种无法解决的问题。所以还是在动手前,先好好看看官方文档吧。Hive和...原创 2018-05-10 15:40:27 · 9104 阅读 · 0 评论 -
Hadoop 过滤,映射,谓词下推基本概念
1. Filter(过滤) 和 Project(映射) 在传统的 OLAP 系统中,在进行 Join 的时候使用过滤和映射会极大的提高性能。同样的,在 Hadoop 中使用 Filter 和 Projection 同样可以提高效率,由于减少了一个管道需要处理的数据量。在Hadoop中减少处理的数据量是至关重要的,尤其当需要通过网络和本地磁盘进行处理的时候。我们都知道,MapReduce 的shuf...原创 2018-04-25 10:35:50 · 13678 阅读 · 0 评论 -
spark 持久化 cache和persist的区别
cache和persist都是用于将一个RDD进行缓存的,这样在之后使用的过程中就不需要重新计算了,可以大大节省程序运行时间。cache和persist的区别基于Spark 1.4.1 的源码,可以看到/** Persist this RDD with the default storage level (`MEMORY_ONLY`). */def cache(): this.type = pe...原创 2018-04-20 17:23:45 · 4361 阅读 · 0 评论 -
TiSpark 服务安装、部署、测试
最近比较忙,之后会整理一下TiDB&TiSpark的学习心得,以及经历过的坑。首先这边先贴2篇官方说明文档:- [TiSpark 快速入门指南](https://github.com/pingcap/docs-cn/blob/master/tispark/tispark-quick-start-guide.md) - [TiSpark 用户指南](https://github.com/pi...原创 2018-03-06 20:37:04 · 7306 阅读 · 4 评论 -
hive复制表 存储格式转换
在之前的博客中已经介绍过hive的四种存储格式:http://blog.csdn.net/zyzzxycj/article/details/79267635本文以ORCFile存储格式为例,详细介绍hive上转换表的存储格式的步骤和需要注意的地方。1、 查看需要转换的原表信息show create table 表名;这边的tmp_mf原创 2018-02-06 14:34:34 · 8841 阅读 · 0 评论 -
hive版本查看
由于hive并没有提供-version类似的命令去查看版本,本文提供了一种较为便捷的方法。具体思路是查看hive运行时,加载的jar的信息,来查看hive版本。1、先启动hive[root@hadoop1008 ~]# hive2、新建终端窗口,连接上服务器,并输入jps查看进程找到RunJar对应的id。3、原创 2018-02-06 11:32:16 · 11732 阅读 · 0 评论 -
hive四种存储格式介绍与分析比较
一、四种存储格式介绍1、TestFileTextFile文件不支持块压缩,默认格式,数据不做压缩,磁盘开销大,数据解析开销大。这边不做深入介绍。2、RCFileRecord Columnar的缩写。是Hadoop中第一个列文件格式。能够很好的压缩和快速的查询性能,但是不支持模式演进。通常写操作比较慢,比非列形式的文件格式需要更多的内存空间和计算量。原创 2018-02-06 10:29:35 · 31873 阅读 · 5 评论 -
CronExpression表达式详解和案例
控制任务定时执行的表达式1. cron表达式格式:{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}2. cron表达式各占位符解释:{秒数} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常"*" 代表每隔1秒钟触发;"," 代表在指转载 2018-01-29 15:17:02 · 990 阅读 · 0 评论 -
hive 表的复制
1、首先需要明确分区表和非分区表可以通过查看建表信息命令:show create table 表名;查看是否有partition 分区信息。2、非分区表的复制将表t_temp复制到新建表t_copy:create table t_copy as select * from t_temp;3、分区表的复制分区表如原创 2018-02-01 19:06:15 · 754 阅读 · 0 评论 -
实时数据Storm,Spark和Samza介绍和比较
本文转自:http://www.jdon.com/bigdata/streaming-big-data-storm-spark.html 当前有许多分布式计算系统能够实时处理大数据,这篇文章是对Apache的三个框架进行比较,试图提供一个快速的高屋建瓴地异同性总结。Apache Storm 在Storm中,你设计的实时计算图称为toplogy,将其以集群方式运行,原创 2018-01-30 20:19:27 · 662 阅读 · 0 评论 -
PostgreSQL ADHoc(任意字段组合)查询 与 字典化 (rum索引加速) - 实践与方案1
背景业务背景某系统数据量:20亿行左右,64个字段,原始数据多为字符串类型。(大多数字段的唯一值有限)需求:1. 查询,任意字段组合查询,求聚合值。2. 查询并发,1000左右查询并发,每次查询响应时间要求100ms以内。3. 写入、更新,要求延迟1秒内。高峰时写入、更新可达20万行/s。业务上允许批量写入。4. 要求加字段方便。5. 要求实时计算(无需建模),或者说要求加统计维度方便,不需要等建...转载 2018-05-07 17:21:21 · 1084 阅读 · 0 评论 -
spark 参数调优9-Scheduling调度
spark参数调优系列 目录地址:https://blog.csdn.net/zyzzxycj/article/details/81011540 ⑨ Schedulingspark.scheduler.maxRegisteredResourcesWaitingTime在执行前最大等待申请资源的时间,默认30s。spark.scheduler.minRegisteredRe...原创 2018-08-31 14:50:44 · 10851 阅读 · 0 评论 -
spark 参数调优8-Networking网络
spark参数调优系列 目录地址:https://blog.csdn.net/zyzzxycj/article/details/81011540 ⑧ Networkingspark.rpc.message.maxSizeexecutors和driver间消息传输、map输出的大小,默认128M。map多可以考虑增加。spark.driver.blockManager.po...原创 2018-08-31 14:48:59 · 13017 阅读 · 0 评论 -
spark 参数调优7-Executor behavior
spark参数调优系列 目录地址:https://blog.csdn.net/zyzzxycj/article/details/81011540 ⑦ Executor behaviorspark.broadcast.blockSizeTorrentBroadcastFactory中的每一个block大小,默认4m过大会减少广播时的并行度,过小会导致BlockManager...原创 2018-08-31 14:48:00 · 21086 阅读 · 0 评论 -
spark 参数调优6-Memory Management内存管理
spark参数调优系列 目录地址:https://blog.csdn.net/zyzzxycj/article/details/81011540 ⑥ Memory Managementspark.memory.fraction执行内存和缓存内存(堆)占jvm总内存的比例,剩余的部分是spark留给用户存储内部源数据、数据结构、异常大的结果数据。默认值0.6,调小会导致频繁...原创 2018-08-31 14:45:40 · 13021 阅读 · 0 评论