Spark On Hive调优
文章平均质量分 75
关于spark on hive的参数配置以及性能调优专题
菜鸟Octopus
Never give up until the last seconds.
展开
-
LEFT ANTI JOIN的使用
【代码】LEFT ANTI JOIN的使用。原创 2023-08-21 22:45:00 · 775 阅读 · 0 评论 -
Spark SQL优化:NOT IN子查询优化解决
有如下的数据查询场景。原创 2023-08-16 17:11:33 · 1057 阅读 · 0 评论 -
hivesql-dayofweek 函数
返回日期或时间戳的星期几。此函数是的同义函数。原创 2023-08-16 14:22:47 · 801 阅读 · 0 评论 -
percentile_approx 聚合函数
返回组内expr的百分位近似值。此函数是的同义词。原创 2023-08-15 15:10:40 · 843 阅读 · 0 评论 -
Hive on Spark调优(大数据技术5)
优化思路为map-side聚合。所谓map-side聚合,就是在map端维护一个hash table,利用其完成分区内的、部分的聚合,然后将部分聚合的结果,发送至reduce端,完成最终的聚合。map-side聚合能有效减少shuffle的数据量,提高分组聚合运算的效率。原创 2023-05-19 07:45:00 · 174 阅读 · 0 评论 -
Hive on Spark调优(大数据技术3)
在将NodeManager的总内存平均分配给每个Executor,最后再将单个Executor的内存按照大约10:1的比例分配到spark.executor.memory和spark.executor.memoryOverhead。动态分配可根据一个Spark应用的工作负载,动态的调整其所占用的资源(Executor个数)。此处的Executor个数是指分配给一个Spark应用的Executor个数,Executor个数对于Spark应用的执行速度有很大的影响,所以Executor个数的确定十分重要。原创 2023-05-17 07:30:00 · 855 阅读 · 0 评论 -
Hive on Spark调优(大数据技术9)
合并Map端输入的小文件,是指将多个小文件划分到一个切片中,进而由一个Map Task去处理。目的是防止为单个小文件启动一个Map Task,浪费计算资源。小文件合并优化,分为两个方面,分别是Map端输入的小文件合并,和Reduce端输出的小文件合并。合并Reduce端输出的小文件,是指将多个小文件合并成大文件。目的是减少HDFS小文件数量。原创 2023-05-14 23:03:04 · 162 阅读 · 0 评论 -
Hive on Spark调优(大数据技术8)
在Hive中,无论其计算引擎是什么,所有的计算任务都可分为Map阶段和Reduce阶段。默认情况下,Hive会根据Reduce端输入数据的大小,估算一个Reduce并行度。但是在某些情况下,其估计值不一定是最合适的,故需要人为调整其并行度。Reduce端并行度的确定逻辑为,若指定参数mapreduce.job.reduces的值为一个非负整数,则Reduce并行度为指定值。其中,Reduce端输入的数据量大小,是从Reduce上游的Operator的Statistics(统计信息)中获取的。原创 2023-05-20 09:45:00 · 925 阅读 · 1 评论 -
Hive on Spark调优(大数据技术7)
数据倾斜问题,通常是指参与计算的数据分布不均,即某个key或者某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发往一个Reduce,进而导致该Reduce所需的时间远超其他Reduce,成为整个任务的瓶颈。其原理是启动两个MR任务,第一个MR按照随机数分区,将数据分散发送到Reduce,完成部分聚合,第二个MR按照分组字段分区,完成最终聚合。Hive中的数据倾斜常出现在分组聚合和join操作的场景中,下面分别介绍在上述两种场景下的优化思路。示例SQL语句如下。原创 2023-05-18 23:30:00 · 414 阅读 · 0 评论 -
Hive on Spark调优(大数据技术6)
若参与join的表均为分桶表,且关联字段为分桶字段,且分桶字段是有序的,且大表的分桶数量是小表分桶数量的整数倍。此时,就可以以分桶为单位,为每个Map分配任务了,Map端就无需再缓存小表的全表数据了,而只需缓存其所需的分桶。Map端负责读取参与join的表的数据,并按照关联字段进行分区,将其发送到Reduce端,Reduce端完成最终的关联操作。若参与join的表中,有n-1张表足够小,Map端就会缓存小表全部数据,然后扫描另外一张大表,在Map端完成关联操作。162900000000(约160g)原创 2023-05-19 23:30:00 · 883 阅读 · 0 评论 -
Hive on Spark调优(大数据技术4)
每个Stage由一系列的Operator组成,一个Operator代表一个逻辑操作,例如TableScan Operator,Select Operator,Join Operator等。Explain呈现的执行计划,由一系列Stage组成,这个Stage具有依赖关系,每个Stage对应一个MapReduce Job或者Spark Job,或者一个文件系统操作等。Hive SQL的执行计划,可由Explain查看。原创 2023-05-18 07:30:00 · 124 阅读 · 0 评论 -
Hive on Spark调优(大数据技术2)
该参数的含义是,单个Container能够使用的最大内存。该参数的含义是,一个NodeManager节点分配给Container使用的CPU核数。该参数的配置,同样取决于NodeManager所在节点的总CPU核数和该节点运行的其他服务。该参数的含义是,一个NodeManager节点分配给Container使用的内存。该参数的配置,取决于NodeManager所在节点的总内存容量和该节点运行的其他服务的数量。需要调整的Yarn参数均与CPU、内存等资源有关,核心配置参数如下。(3)分发该配置文件。原创 2023-05-14 22:29:18 · 518 阅读 · 0 评论 -
Hive on Spark调优(大数据技术1)
所用集群由5台节点构成,其中2台为master节点,用于部署HDFS的NameNode,Yarn的ResourceManager等角色,另外3台为worker节点,用于部署HDFS的DataNode、Yarn的NodeManager等角色。原创 2023-05-14 22:23:37 · 539 阅读 · 0 评论