1、Explain查看执行计划

  • Spark3.0大版本发布,Spark SQL的优化占比将近50%。SparkSQL取代SparkCore,成为新一代的引擎内核,所有其他子框架如Mllib、Streaming和Graph,都可以共享Spark SQL的性能优化,都能从Spark社区对于SparkSQL的投入中受益。
  • 要优化Spark SQL应用时,一定是要了解SparkSQL执行计划的。发现SQL执行慢的根本原因,才能知道应该在哪儿进行优化,是调整SQL的编写方式、还是用Hint、还是调参,而不是把优化方案拿来试一遍。
Read more »

1、Spark SQL概述

1.1 什么是Spark SQL

  • Spark SQL是用于结构化数据处理的Spark模块。与基本的Spark RDD API不同,Spark SQL提供的接口为Spark提供了有关数据结构和正在执行的计算的更多信息。在内部,Spark SQL使用这些额外的信息来执行额外的优化。与Spark SQL交互的方式有多种,包括SQL和Dataset API。计算结果时,使用相同的执行引擎,与您用于表达计算的API/语言无关。
Read more »

1、RDD概述

1.1 什么是RDD

  • RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。

  • 代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。

  • RDD类比工厂生产。

Read more »

1、Spark概述

1.1 什么是Spark

  • 回顾:Hadoop主要解决,海量数据的存储和海量数据的分析计算
  • Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎
Read more »

1、基础语法

1.1 字面量

  • 字面量:在代码中,被写下来的的固定的,称之为字面量。

  • Python中常用的有6种值(数据)的类型:

Read more »

1、概述

1.1 生产环境中的问题

  • 生产环境发生了内存溢出该如何处理?
  • 生产环境应该给服务器分配多少内存合适?
  • 如何对垃圾回收器的性能进行调优?
  • 生产环境CPU负载飙高该如何处理?
  • 生产环境应该给应用分配多少线程合适?
  • 不加log,如何确定请求是否执行了某一行代码?
  • 不加log,如何实时查看某个方法的入参与返回值?
Read more »

1、JVM监控及诊断工具-命令行

1.1 概述

  • 性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。

  • Java 作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注。可能造成 Java 应用出现性能问题的因素非常多,例如线程控制、磁盘读写、数据库访问、网络I/O、垃圾收集等。想要定位这些问题,一款优秀的性能诊断工具必不可少。

    Read more »

1、Hive简介

1.1 Hive定义

  • Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

  • Hive是一个Hadoop客户端,用于将HQL(Hive SQL)转化成MapReduce程序

    • Hive中每张表的数据存储在HDFS。
    • Hive分析数据底层的实现是MapReduce(也可配置为Spark或者Tez)。
    • 执行程序运行在Yarn上。
Read more »

1、Explain查看执行计划

  • 在clickhouse20.6版本之前要查看SQL语句的执行计划需要设置日志级别为trace才能可以看到,并且只能真正执行sql,在执行日志里面查看。在20.6版本引入了原生的执行计划的语法。在20.6.3版本成为正式版本的功能。
Read more »

1、HDFS概述

1.1 HDFS产出背景及定义

  • HDFS产生背景:
    • 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种
  • HDFS定义:
    • HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
    • HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。
      Read more »