- 博客(12)
- 收藏
- 关注
原创 关于spark任务 资源分区优化经验
最近在进行集群任务的spark任务优化,记录下心得 首先优化的部分 大多是hive任务变成spark任务 原因基本都是因为spark任务容易进行资源管控 不会出现一个任务把资源占了大半的情况 接下来重点说的是有关于如何在资源方面提升任务效率的因素 主要是两个方面 一个是集群方面的物理资源 体现为 spark.instance * cores 另一个是spark任务的逻辑资源 体现为 spark.shuffle.partitions 如果把整个场景比喻为一个办公室 ,那 spark.shuffl
2022-04-28 11:15:46
457
原创 关于spark落盘到hdfs的文件分发规则及处理总结
近期又遇到了不少有关spark/hive表落盘到hdfs的问题,借此机会系统性的记录下学习过程。 此次记录的核心语句就是之前老生常谈的distribute by命令,其后跟的规则不同 会产生截然不同的效果 首先回顾下落盘的过程,每一个reducer都会往某一指定路径下写一个文件,有时候一个reducer只写一个路径,有时候会写多个路径,但核心点在于 每一个reducer只会在某一路径下写一个文件。 我们经常会遇到的小文件过多的问题,以及脚本运行很慢甚至卡死的情况(数据倾斜),其实大多数情况下都和落盘的
2022-02-21 17:42:28
1571
原创 HIVE表修改列名后 值全变为null
解决方法: ALTER TABLE XXX SET TBLPROPERTIES ('parquet.column.index.access'='true');
2021-12-21 11:21:23
1931
原创 数据倾斜处理case
跑批中某脚本一直卡死 排查原因是某一个reducer跑的很慢导致整个任务卡死 继续追踪 是因为groupby 的某个字段出现了数据倾斜 解决方案: 将group by a,b,c 改写成 group by concat(a,b,c) 再嵌套一层sql解析原有字段,成功解决了数据倾斜的问题 ...
2021-12-15 16:32:08
312
原创 SQL数据倾斜处理
调度中某跑批脚本出现问题 排查原因发现是某一个reducer卡死了 继续追踪 原因是group by 字段中有一个字段,出现了大量记录集中于一个值上,造成了数据倾斜 解决方案,将group by a,b,c 改写成group by concat(a,b,c) 再嵌套一层解析出原始的三个字段的sql 成功解决了数据倾斜的情况 ...
2021-12-15 16:28:40
1346
原创 hive推送数据到mysql/oracle等数据库问题
最近在从hive往o'racle推送数据的时候碰到一个问题 明明hive表结构中是bigint的字段 在推送到oracle表中对应的是number(18)的字段 报错 java.lang.ClassCastException: org.apache.hadoop.io.IntWritable cannot be cast to org.apache.hadoop.io.LongWritable 很奇怪 明明没有int的字段 为什么说检测到输入有int类型 最后排查出原因,是因为parquet文件中
2021-11-30 09:48:30
2613
原创 Datax抽取oracle大表问题
最近经常用到datax从oracle抽取大表到数仓hive 当表的数据量超过千万 很容易卡住 一直抽不过来 经过测试可以在querysql上加并行抽取 /*+ parallel(n) */ 基于并行查询要启动并行进程、分配任务与系统资源、合并结果集 一般而言主要在如下情况使用parallel 1.表的数据量很大,超过一千万; 2.数据库主机是多个CPU; 3.系统的当前负载较低; 但这个容易直接把资源占死 导致别人无法抽取业务数据库 需要做测试再正式上线 ...
2021-11-17 13:53:20
1917
原创 关于处理小文件数过多影响sql效率的调优问题
背景:sparksql执行过程中,发现task数目特别多,大大降低了执行的效率,经排查后发现是某张表的底层文件数过多,且每个文件大小都很小,也就是出现了小文件过多的情况 原理: 此处要区分spark任务和hive任务在落盘时候是不同的 spark任务可以直接通过设定repartition(N)的命令来设置每个分区下的文件数目,同时在sql查询末加上distribute by rand()来避免文件大小不均以及数据倾斜的问题,这里不多描述 hive任务略有不同 首先reducer数目直接影响到的
2021-08-05 13:51:35
487
原创 关于map-reduce涉及数据倾斜调优问题
今天在hive任务跑批碰到了失败的问题,报错基本都是container killed,进一步看了任务日志,发现是某一个reducer失败了 耗时特别长,继续看了是在distribute by 这个算子涉及的MR任务的原因 (一个脚本中会涉及到很多个MR任务) 首先回顾下 distribute by 算子 一般是放在最后写文件 ,比如insert overwrite 操作之后进行,大概有distribute by rand() 和 distribute by partitions,后者一般用于多级分区的.
2021-07-02 16:25:47
216
原创 linux运行sh脚本问题
在linux运行sh脚本 报错多处显示 $'\r': command not found 原因是因为脚本是用windows编写的 每行结尾是\r\n 的Unix 结果行是\n所以在Linux下运行脚本 会任务\r 是一个字符,所以运行错误 解决办法: sed -i 's/\r//'脚本名 进行转换就可以了 ...
2021-05-25 16:32:07
276
原创 hive导出csv文件,打开后出现乱码
经常遇见的一个问题 ,hive运行sql导出代码,结果查看出现中文乱码的问题 原因: hive导出csv默认为utf8的编码,但excel打开csv的格式默认为gbk 解决办法: 在导出文件后,运行如下语句 iconv -f UTF-8 -c -t GBK a.csv > b.csv a.csv为原来文件,b.csv为gbk编码后文件 ...
2021-05-20 10:37:37
996
原创 文本文件导入hive库出现问题总结
在跑数据时碰到,某个字段的值需要过滤,范围是大概几万个值,就不能直接用枚举了,需要将数据存到一个临时表 然后去读这个表 先建临时表 CREATE EXTERNAL TABLE XXXX( XX string COMMENT 'XX' ) COMMENT '' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS parquet LOCATION 'XXXXX' TBLPROPERTIES ( 'parquet.compress'='SNAPPY
2021-05-20 10:04:53
855
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅