自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DeaSun

黑森林法则

  • 博客(77)
  • 资源 (15)
  • 收藏
  • 关注

原创 数仓知识点

比如说订单id,这种量级很大的维度,没必要用一张维度表来进行存储,而我们进行数据查询或者数据过滤的时候又非常需要,所以这种就冗余在事实表里面,这种就叫退化维度,业务过程,指标(包含指标名称,指标编码,业务口径,指标类型,责任人,创建时间,状态, sql),安全等级,计算逻辑等的规范化定义,用于更好地管理和使用数据;,同一事实表中不要混用多种不同的粒度,不同的粒度数据建立不同的事实表。事实表是用来度量的,基本上都以数量值表示,事实表中的每行对应一个度量,每行中的数据是一个特定级别的细节数据,称为粒度。

2023-07-20 21:18:10 161

原创 Flink复习笔记

均存在解析、校验、编译生成语法树、优化生成逻辑计划等步骤,都是将物理执行计划使用相应的引擎做计算。

2023-07-16 20:41:20 505

原创 Spark复习笔记

第二种:通过代码运行流程**总结:**任务向资源管理器注册,并启动,然后向资源管理器申请资源,资源管理器分配并启动,向注册。构建有向无环图,并将任务分解成,被发送到, 启动线程池来执行这些:管理集群和节点,不参与计算。:计算节点,进程本身不参与计算,和 汇报。:运行程序的 方法,创建 对象。:控制整个的生命周期,包括和等组件。:用户提交程序的入口。:负责在 作业中运行具体任务()分布式弹性数据集,是一种数据结构,是框架上的通用数据结构。所有的算子都是基于来执行的,不同的场景会有不同的实现类,

2023-07-16 18:27:18 562

原创 Hive 复习重点

小文件过多会导致。

2023-07-07 16:59:25 516

原创 hql 面试题

【代码】hql 面试题。

2023-07-06 10:04:49 210

原创 Hive & Spark & Flink 数据倾斜

综上所述,对数据倾斜的问题,首先要判断该 key 是否会对结果产生影响,对其进行过滤或者打上随机 key。然后还可以通过随机前缀的两阶段处理 和 增加 reduce, map,减少 shuffle次数,重分区(Flink)等。

2023-05-31 14:46:59 727

原创 Hive & Spark & Flink 调优

Hive(from -> on -> join -> where -> group by -> having -> select -> order by -> limit)Spark(Master,Driver,TaskManager)Flink语法优化 1. 列裁剪(只选择需要的列) 2. 行裁剪(只选取需要的行) 3. group by set hive.map.aggr = true set h

2023-05-31 12:55:09 771

原创 Spark 获取 Hbase 数据

<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0

2020-07-19 22:52:39 311

原创 笔记H《JVM&GC》

文章目录JVMJVM 内存结构垃圾回收算法GC RootJVM参数配置查看当前运行程序的配置查看JVM默认值参数常见参数GC日志JVMJVM 内存结构垃圾回收算法引用计数复制标记清除标记整理GC Root什么是垃圾:内存中已经不在被使用到的空间就是垃圾,要进行垃圾回收,首先需要判断一个对象是否可以被回收。如何判断一个对象是否可以被回收:引用计数;Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回

2020-07-04 15:04:00 336

原创 笔记G《线程池》

文章目录Callable 接口Callable 演示线程池示例ThreadPoolExecutor线程池的工作原理handler 拒绝策略死锁Callable 接口Java创建线程的4中方式:继承Thread类:浪费仅有的一次继承机会实现Runnable接口:无返回值实现Callable接口:可以有返回值,可抛出异常,可中断通过线程池创建:线程复用,但是实际开发中应该自己实现线程池相对于Runnable接口而言,Callable接口的优势在于:判断线程任务是否完成或者被取消能够中断任

2020-07-04 01:22:23 142

原创 笔记F《阻塞队列》

文章目录阻塞队列BlockingQueue阻塞队列阻塞队列,首先是一个队列,而一个阻塞队列在数据结构中所起的作用大致如图:当阻塞队列是空,从队列中获取元素的操作将会被阻塞;当阻塞队列为满,往队列中添加元素的操作将会被阻塞。阻塞,在多线程环境中会挂起线程(线程阻塞),一旦条件满足,被挂起的线程会被自动唤醒。BlockingQueueBlockingQueue让我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程:继承树:ArrayBlockingQueue由数

2020-07-03 22:49:03 136

原创 笔记E《CountDownLatch/CyclicBarrier/Semaphore》

文章目录CountDownLatchCyclicBarrierSemaphoreCountDownLatch让一些线程阻塞直到另外一些完成后才被唤醒。CountDownLatch 主要有两个方法,当一个或多个线程调用 await方法时,调用线程会被阻塞.其他线程调用 countDown 方法计数器减1(调用 countDown 方法时线程不会阻塞),当计数器的值变为0,因调用await方法被阻塞的线程会被唤醒,继续执行。public class CountDownLatchDemo { pu

2020-07-03 20:16:45 135

原创 笔记D《公平锁/非公平锁/可重入锁/递归锁/自旋锁》

文章目录公平锁 & 非公平锁可重入锁(递归锁)自旋锁独占锁 & 共享锁公平锁 & 非公平锁公平锁公平锁是指多个线程按照申请所的顺序来获取,先来先得。在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列。如果为空,或者当前线程是等待队列的第一个,就占有锁,佛则就加入到等待队列中,按照 FIFO 的规则取出。非公平锁非公平锁是指在多线程获取锁的顺序并不是按照申请锁的顺序,而是一种抢占式的方式来获取锁。synchronized,ReentrantLock 都

2020-07-03 19:25:30 100

原创 笔记C《ArrayList线程安全》

ArrayList 线程安全ArrayList 是非线程安全的,如果强制在多进程中使用 ,将会报 ConcurrentModificationException 并发修改异常。使用 Vector,效率低下;使用 Collections.synchronizedList,实际返回了 SynchronizedList。在进行数据操作是,都加了 synchronized 锁来进行控制。使用 CopyOnWriteArrayList,该类会进行写时复制操作。CopyOnWrite容器即写时复制的容器。往一

2020-07-03 18:24:58 141

原创 笔记B《CAS》

文章目录CAS缺点ABA 问题CASCAS: compare and swap,比较并交换。先来看如下代码,原子类的写操作是先比较在设置。当且仅当对象偏移量V上的值和预期值A相等时,才会用更新值B更新V内存上的值,否则不执行更新。但是无论是否更新了V内存上的值,最终都会返回V内存上的旧值。public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = n

2020-07-03 17:20:33 186

原创 笔记A《volatile 的理解》

volatile 关键字

2020-07-03 16:22:44 520

原创 SparkSQL学习笔记

简介SparkSQL 是 Spark 计算框架的一个主要模块,与基本的 Spark RDD API 不同,SparkSQL 为 Spark 提供了更多的

2020-07-02 23:24:40 428

原创 Kafka学习笔记

简介Kafka 简介Apache Kafka 是一个发布/订阅消息系统。kafka官方定位是:一个分布式流处理处理。Kafka 分布式流处理平台,包括 Kafka Core、Kafka connect、Kafka REST Proxy、KafKa Stream 四大模块,提供了 Producer API、Consumer API、Stream API、Connector API。Kafk...

2020-07-02 00:06:03 276

原创 Spark学习笔记

简介Spark是专为大规模数据处理而设计的快速通用的计算引擎,其是由scala语言编写而成。如下图所示,这是显示了Spark standalone应用程序上下文中所有的Spark组件。Spark应用程序是由一个Driver(驱动程序)和一组Executor进程组成。Driver进程负责运行main函数,其进程位于集群的一个节点上。其主要:维护有关Spark应用程序的信息;响应用户的...

2020-06-20 13:51:24 322

原创 hive数据仓库之笔记

简介Hive 是一个离线数据数据仓库工具,用于解决海量结构化数据的日志的数据统计,其作用将结构化的数据文件映射成一张数据库表,并能提供简单的 SQL 的查询功能。Hive 的本质是将 HQL 语句转化为 MapReduce,所以其依赖于 HDFS,但是计算处理却依赖于 MapReduce。HQL 与 SQL 的区别HQLSQL数据存储HDFS,HbaseLocal ...

2020-06-10 21:59:04 592

原创 MYSQL 知识点汇总

查询命令优先级顺序临时表fromwheregroup byhavingorder bylimit查询命令优先级顺序SQL的优先级顺序是SELECT 字段名,聚合函数 FROM 表名 WHERE 对数据行进行定位判断条件 GROUP BY 分组字段1,分组字段2.。。。 HAVING 使用 聚合函数 统计当前临时表是否可以被删除 ORDER BY 根据select提供的临时表字段进行排序 .

2020-06-10 00:01:32 274

原创 createOrReplaceGlobalTempView 运行时找不到表

SparkConf conf = new SparkConf().setAppName("AppTest");conf.setMaster("local");SparkSession spark = SparkSession.builder().config(conf).getOrCreate();spark.sparkContext().setLogLevel("ERROR");Da...

2020-06-09 14:43:40 1153

原创 RDD to DataFrame

将 RDD 转化成 DF,有两种方式:利用 schema 来从 RDD<String>\,转化为 RDD<Row>\,再转化成 DataFrame。构造 bean 对象来从 RDD 转化成 Dataset,再转化成 DataFrame。以 schema 来构建 DataFrame//1. 将 JavaRDD<String> 转换为 JavaRDD<Row>JavaRDD<Row> inRDD = jsc.textFile("in/1.

2020-06-08 11:35:35 216

原创 git -- 根据时间查看提交的代码量

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2020-4-1 --until=2020-4-17 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed l

2020-06-08 11:19:41 1605

原创 Json 解析学习

数据:{“name”:“userGroup”, “users”: [{“password”:“123123”,“username”:“zhangsan”}, {“password”:“321321”,“username”:“lisi”}]}需要创建两个 JavaBean,第一个 JavaBean 包括 String 类型的 name,和 List 类型 的 users。因为 users 有中括号...

2020-06-08 11:18:02 309

原创 冒泡、插入、选择、归并、快速、希尔、堆、基数排序总结

冒泡排序插入排序选择排序归并排序快速排序希尔排序堆排序基数排序

2020-06-08 11:04:00 407

原创 多线程复习归纳

并行:多个任务可以同时执行;并发:多个任务在一个极短的时间间隔交替执行,但是这依然给人一种多个任务同时执行的感觉。并行一定是并发的,但是并发不是并行。并行基本可以看作是一种理想情况下的操作。线程创建线程创建实际上有三种方式:继承 Thread 类实现 Runnable 接口实现 Callable 接口public static void main(String[] args) ...

2019-09-29 10:16:21 153

原创 HashMap 分析

HashMap 在 JDK1.8 之前使用了 “数据 + 链表” 的结构,数组是 HashMap 的主体,链表主要是解决 哈希冲突而处在的。在 JDK 1.8 以后采用了 “数组+链表+红黑树” 的结构,当链表长度大于阈值,就可以将链表转化成红黑树。如果所示这是 JDK1.7 基于 “数据+链表” 的 HashMap 结构。在 JDK 1.8 中,当链表长度大于阈值时,就会将 “链表” 转化...

2019-09-27 23:56:55 135

原创 二叉树

文章目录二叉树完全二叉树满二叉树平衡二叉树红黑树B-tree(B tree)二叉树二叉树是节点最多有两个子树(左子树,右子树)的树结构。完全二叉树设二叉树的深度为 h,其它(1 ~ h-1)各层的节点数都达到了最大(两个子树),同时第 h 层的所有节点都连续集中在最左侧。即为 完全二叉树。叶子节点只能出现在 h 层和 (h-1)层;h 层的节点都集中在改层的最左侧;(h-1)层的部...

2019-09-20 16:05:43 197

原创 JVM 总结

Java 虚拟机在执行 java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。可以分为:线程私有,线程共享两个区域。线程私有的数据区域的生命周期与线程生命周期相同,依赖于用户线程的“启动、结束”而“创建、销毁”。因此线程私有内存与线程紧密相关。程序计数器一块较小的内存空间,是当前线程所执行的字节码的行号指示器。 每个线程都有一个单独,独立的程序计数器。程序计数器是唯一一个...

2019-08-16 02:35:46 80

原创 分布式协作框架 Zookeeper

简介Zookeeper 是一个分布式协调服务框架,可用于服务发现,分布式领导选举,配置管理等。Zookeeper 提供了一个类似于 Linux 文件系统的树形结构(存放了少量信息的内存文件系统,不适合存储大量文件或大文件),同时提供了对每个分布式节点的监控与通知机制。优点:可靠性: 2n+1可扩展性:需要增加机器时,少许修改即可,且不用冷启动(停机)同步: 服务器进程之间的像话排斥和协...

2019-08-14 21:46:25 514

原创 大数据 WEB 工具 Hue

简介使用浏览器进行查询,浏览和展示数据。下载地址:http://gethue.com/category/release/文档地址:http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-cdh5.3.6/manual.html#_install_hue配置预安装软件yum install ant asciidoc cyrus-sasl-d...

2019-08-13 23:06:29 292

原创 任务调度框架 Oozie

简介

2019-08-13 22:43:34 513

原创 文件收集框架 Flume

Flume 是一种分布式的,可靠且高效地收集、聚集和移动大量数据的工具。它具有基于流数据的简单灵活的体系结构。并且具有健壮性和容错性,可调整的可靠性机制和许多故障转移和恢复机制。它使用了一个简单的可扩展的数据模型,允许在线分析应用程序。官网地址:http://flume.apache.org/用户手册地址:http://flume.apache.org/FlumeUserGuide.html...

2019-08-12 22:56:55 175

原创 数据转换工具 Sqoop

Apache Sqoop 是一种被设计用于 Apache Hadoop 和结构化数据库之间进行数据转移的工具。其可以将数据从 Hadoop 导出到关系型数据库,也可以将数据从关系型数据库导入到 Hadoop 中。官方网址:http://sqoop.apache.org/。如图所示,Sqoop 的核心作用是 导入/导出。导入数据:MySql,Oracle 等关系型数据库导入数据到 Hadoop...

2019-08-12 21:12:43 138

原创 window 安装 mysql

下载下载路径:https://dev.mysql.com/downloads/mysql/下载之后是一个压缩文件,可以在任何地方进行解压操作。安装在 mysql 的解压后的目录,创建 data 目录(我在本地将 mysql 的解压目录名重新命名为 mysql,所以 data 目录的路径为 mysql\data)。在 bin 目录中创建 my.ini,并将下列内容写入到 my.ini ...

2019-07-14 19:43:54 105

原创 Android RRO动态加载资源

在 Android 8.0 的时候,Android 项目可以动态的加载资源而可以不用再overlay 中去静态处理,这样就可以方便的对 Android 资源进行处理了。例如:1. -- Android.mkLOCAL_PATH := $(call my-dir)$(warning mike LOCAL_PATH = $(LOCAL_PATH))include $(CLEAR_VARS...

2019-07-04 14:36:54 2352

原创 MR 矩阵相乘

矩阵乘法:A 矩阵B 矩阵1, 2, 37, 94, 5, 64, 67, 8, 91, 310, 11, 12一般矩阵乘法为:MR 实现分析因为分布式计算的特点,需要找到相互独立的计算过程,以便能够在不同的节点上进行计算而不会彼此影响。根据矩阵乘法的公式 C 中各个元素的计算都是相互独立的,即各个cij在计算过程中彼此不影响。这样的话...

2019-06-28 16:35:06 1375 1

原创 MR 表连接

Reduce 端 join 相较于 Map 端 join 更为普遍,因为输入的数据不需要特定的结构,弊端则是效率比较低,因为数据都须经过Shuffle过程。MapReduce 表连接操作Map 端 join:Map 端 join 是指数据到达 map 处理函数之前进行合并, 效率要远远高于 Reduce 端 join, 因为 Reduce 端 join 是把所有数据都经过 Shuffle,...

2019-06-28 01:09:52 335

原创 MR 二次排序

二次排序 eg: 对左侧序列进行排序, 需要先对字母排序, 然后在对数字进行排序. 得到右侧的序列. a 2 a 2 c 4 a 4 b 3 b 1 c 1 => b 3 a...

2019-06-26 15:44:11 469

spark笔记.zip

spark 学习笔记

2020-04-23

spring.zip

Spring的一个最大的目的就是使JAVA EE开发更加容易。同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Plain Ordinary Java Object)对象提供企业级的服务。

2020-02-12

LauncherOverlay.zip

https://blog.csdn.net/dec_sun/article/details/94603034, Android rro 动态加载的实例。

2019-07-04

Spark应用程序WebUI详解.docx

这是 Spark 关于 WEBUI 的详细讲解,对 Spark WEBUI 可以有一定的认识。

2019-06-18

Linux下CTS&GTS;的搭建与测试指导V2.0.pdf

这是 Android 系统开发需要过 GMS 认证时的环境配置指导。

2019-06-18

Linux命令大全完整版.pdf

本文档主要是 linux 操作命令大全,可以当做词典来查找命令的操作。相对而言,比较齐全。

2019-06-18

android真正入门不坑的教程-基础的基础.pdf

Android 入门的 pdf 文档。讲的比较基本,适合入门。但是不适合深入学习。

2019-06-18

JAVA_IO详解_包括讲解IO中各种流及其用法.pdf

java IO流总结文档。总要总结了 java IO 流的主要基本操作和使用到的类及方法。对于入门比较有用,如果对 IO 流比较了解,就没必要看了。

2019-06-18

9_辅助框架.docx

这是大数据用到的 sqoop+flume +hue 的入门学习笔记,有需要的可以下载。

2019-06-18

7_mongoDB.docx

这是 MongoDB 的入门笔记,如有需要,可以尝试下载。如需要深入了解 MongoDB,请勿下载之。

2019-06-18

5_redis.docx

这是 redis 的基础入门学习笔记,上传之。如果需要入门或需要学习如何搭建 redis,可以考虑看看。如果对 redis 很了解,就没必要了。

2019-06-18

4_HBase.docx

这是 Hbase 的入门基础学习笔记。对入门了解有一定的帮助,如果需要深入学习或已经对 hbase 有比较深入的了解,可以不用考虑这个文档。

2019-06-18

03_Hive.docx

本文档是 hive 的入门学习笔记,其已经被在 https://blog.csdn.net/dec_sun/article/category/8872967 上被上传,这是本地文档。如有需要,可以下载。

2019-06-18

11_Kafka.docx

Kakka 入门学习笔记。这个整体上是一个基础的入门笔记。其基本被裁剪到 https://blog.csdn.net/dec_sun/article/category/8872963 这个模块中。如果在晚上观看不便,可以下载看之。

2019-06-18

8_storm.docx

storm 入门学习笔记。主要包括 storm概念,storm架构。能很好的对 storm 基础有一个入门。

2019-06-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除