![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据相关
MichaelZhu
这个作者很懒,什么都没留下…
展开
-
SparkSQL优化之输入小文件是否需要合并?
Note: spark版本2.3.1HiveSQL优化时, 输入分片需要开启参数进行合并, 否则会产生很多分片.那么SparkSQL是如何应对大量输入小文件的呢?本例以Hive表为例(大量parquet小文件, 可切分).首先我们Debug到这里(“package org.apache.spark.sql.execution.FileSourceScanExec”)这里有个模式匹配, 我们是非分区表, 走默认匹配.代码如下 private def createNonBucketedRead原创 2020-05-28 15:55:58 · 2485 阅读 · 0 评论 -
Using Catalyst in Spark SQL
在SparkSQL中, 把一条SQL语句转化成对应的RDD任务, 完成这一过程(后续用"解析SQL到RDD"过程代替这一过程)全部在Catalyst框架实现. "解析SQL到RDD"这一过程, 主要包含了4个组成部分, 如下图所示 analyzing a logical plan to resolve references(分析逻辑计划用于解析引用) SparkSQL开始是一个待计算的关系, 要么是被SQL parser返回的abstract syntax...原创 2020-05-18 20:51:16 · 214 阅读 · 0 评论 -
SparkSQL 如何把sqlText转化成RDD可以执行的tasks 系列
上图是一个通用的SparkSQL底层执行流程图.具体流程如下描述(上图是一个lazy函数, 遇到active函数才会执行):一、SparkSQL通过parser(解析器), 把sqlText转化成UnResolved Logical Plan.(这是一棵parsed Logical Plan AST语法树).二、SparkSQL通过Analyer(分析器), 借助Catalog中的元数据(schema), 把UnResolved Logical Plan转化成Res原创 2020-05-18 17:06:24 · 991 阅读 · 0 评论 -
[转]SparkSQL的自适应执行---Adaptive Execution
1 背景本文介绍的 Adaptive Execution 将可以根据执行过程中的中间数据优化后续执行,从而提高整体执行效率。核心在于两点 执行计划可动态调整 调整的依据是中间结果的精确统计信息 2 动态设置 Shuffle Partition2.1 Spark Shuffle 原理如上图所示,该 Shuffle 总共有 2 个 Mapper 与 5 ...转载 2020-03-09 11:15:53 · 1127 阅读 · 1 评论 -
ES(elasticsearch)安装教程
安装过程基本来自互联网, 有一个小问题需要解决.centos中ulimit -n (默认是1024), ES需要65536, 所以我们需要修改.修改的方法, 网上有很多, 大多都不可用.本人试坑后, 以下可用.vim /etc/security/limits.conf添加配置如下:es(网上大多是*, 导致不生效) soft nofile 65536es hard ...转载 2020-01-03 13:53:58 · 6133 阅读 · 0 评论 -
hive能够设置默认值吗?像mysql的default值
总结:不能直接设置, 需要通过其他方式才能得到同样的效果, 但是针对load来说不可用.基于业务, 需要给某列设置默认值.有一个表"test_default", 如下.ColName ColTYpe id int dt timestamp 关系型数据库建表:create table test_default(id int, dt times...原创 2019-11-04 13:11:09 · 20335 阅读 · 5 评论 -
Hive优化之小文件合并
问题背景:公司集群有个表, 执行一次insert overwrite table select * from table; 大概需要7000s.源表是从pgsql抽上来的, 用了500个maptasks.该表以月为分区, 每个分区文件夹下面产生了大量的小文件, 有的都不到1M.问题产生原因:输入表本身就有很多小文件,插入的时候没有限制reduce个数, 资源也没有限制,...原创 2019-10-22 11:13:18 · 5760 阅读 · 1 评论 -
Sqoop导入导出功能介绍
Sqoop是关系型数据库(MySQL/Postgresql)和HDFS(Hive/HDFS文件)进行交互的一个工具.Sqoop import 就是从关系型数据库导入到基于HDFS的数据库.Sqoop export 就是从基于HDFS的数据库导出到关系型数据库.Note: Sqoop export 是直接把导出HDFS文件.如果创建分区表, 那么每个分区表都有对应的HDFS文件, 每个...原创 2019-10-21 13:35:31 · 708 阅读 · 0 评论