自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aof

  • 博客(80)
  • 收藏
  • 关注

原创 Spark源码——Spark Task执行内存获取(Execution Memory)

文章目录

2020-12-20 22:42:35 968

原创 Spark源码——Spark内存模型分析(静态内存管理和统一内存管理)

Spark在1.6.0版本之前提供的是静态内存管理,实现类StaticMemoryManager;在1.6.0版本即之后默认的是统一内存管理,实现类是UnifiedMemoryManager。不管是静态内存管理还是统一内存管理,Spark内存都是被划分为执行内存区域(execution)和存储内存区域(storage)。execution内存主要用在shuffle、join、sort和aggre...

2020-04-15 22:11:57 570

原创 Hive——UDF函数:高德地图API逆地理编码,实现离线解析经纬度转换省市区(离线地址库,非调用高德API)

因为历史数据量较大,如果通过调用高德API把所有历史数据中的经纬度对应的省市区请求回来,会面临一个个问题:在查看公司的高德API账户后,发现每天提供的最大调用量是300W次,那么要把历史3亿数据初始化调用完,需要30000W/300w=100天,要3个多月,这完全是不可接受的。这个第三方库的作者提供了一个2019年9月份的离线地址库文件,考虑到这个文件的数据已经比较旧了,然后去翻看作者的源码文件,发现提供了爬取地址库的源码,直接拿来改改就可以用了(但前提是你要有请求高德API的API Key)。

2024-07-28 14:41:18 749

原创 Spark——Spark读写Greenplum/Greenplum-Spark Connector高速写Greenplum

通过数据平台上的DataX把Hive表数据同步至Greenplum(因为DataX原生不支持Greenplum Writer,只能采用PostgreSQL驱动的方式),但是同步速度太慢了,

2024-01-27 15:10:55 1558

原创 Flink CDC-SQL Server CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表

Flink CDC-SQL Server CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表

2023-09-13 22:25:50 1004

原创 Flink CDC-Oracle CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表

Flink CDC-Oracle CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表

2023-09-12 22:43:11 2898

原创 Flink CDC-MySQL CDC配置及DataStream API实现代码...可实现监控采集多个数据库的多个表

Flink CDC-MySQL CDC配置及DataStream API实现代码, 可实现监控采集多个数据库的多个表

2023-09-11 22:01:12 3147

原创 Spark——Spark读Elasticsearch Index索引报错存在重复列名

val spark = SparkSession .builder() .appName("es index") .config("hive.metastore.uris", "thrift://master-1:9083") .config("es.nodes", "node-1,node-2,node-3,node-4,node-5") .config("es.port", "...

2021-08-28 16:08:12 729

原创 Spark——Spark读写Oracle

<dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>12.2.0.1</version></dependency> def readOracle(spark: SparkSession): Unit = { val prop = new

2021-04-29 19:16:02 1657

原创 Flink——Flink CheckPoint之两阶段提交协议(Two-Phase Commit Protocol)

参考https://courses.cs.vt.edu/the-two-phase-commit-protocolhttps://www.geeksforgeeks.org/two-phase-commit-protocol-distributed-transaction-management/

2021-03-29 23:27:55 6054 1

原创 Flink——Flink Checkpoint实现原理

文章目录CheckPoint概述Checkpoint BarrierCheckpoint执行过程不对齐的Checkpoint参考CheckPoint概述我们知道Flink是通过数据流的重放和Checkpoint机制来实现容错的。一个Checkpoint记录着数据流中某个时刻所有operators对应的状态。Flink的容错机制会对分布式的数据流连续的绘制快照,并将状态进行存储,当因为机器、网络或软件故障等原因导致Flink应用程序失败的时候,数据流可以从最近一次成功的Checkpoint进行恢复,同时通

2021-03-28 17:02:10 3749

原创 Spark——Parquet格式 vs ORC格式

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC#:~:text=The%20Optimized%20Row%20Columnar%20(ORC,%2C%20writing%2C%20and%20processing%20data.https://orc.apache.org/docs/

2021-03-21 20:02:07 2230

原创 Spark——Spark/Hive SQL计算获取连续登陆N天及以上的用户

100 2021-03-01 1 0 1100 2021-03-02 2 0 2100 2021-03-03 3 0 3100 2021-03-09 4 5 1100 2021-03-10 5 5 2100 2021-03-11 6 5 3100 2021-03-12 7 5 4100 2021-03-13 8 5 5100 2021-03-14 9 5 6

2021-03-19 19:46:40 1217

原创 Python——Python项目找不到根目录:ModuleNotFoundError: No module named ‘xxx‘

文章目录问题场景原因分析解决方法问题场景一个部署在Linux上的Python项目一直都是可以正常运行的(最开始部署的时候,我是打了个zip的包、上传,然后解压执行的)。Python项目根目录为bank_stm,根据下的.py文件中所有要导入本项目中其他module的地方,都是以绝对路径的形式导入的:from bank_stm.xxx import xxx由于一些需求的变动,需要修改代码,等我在本地电脑修改好代码,并测试通过,然后上传并替换(rz -y)Linux主机上对应的文件再执行的时候,一直给

2021-03-18 22:15:00 2408

原创 Spark——Spark 3.0自适应查询执行(Adaptive Query Execution)

参考https://databricks.com/blog/2020/10/21/faster-sql-adaptive-query-execution-in-databricks.html

2021-03-14 14:32:58 2023

原创 Spark——Spark SQL逻辑计划(Logical Plan)、物理计划(Physical Plan)和Catalyst优化器(Catalyst Optimizer)

文章目录参考参考https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.htmlhttps://blog.knoldus.com/understanding-sparks-logical-and-physical-plan-in-laymans-term/https://data-flair.training/blogs/spark-sql-optimization/...

2021-03-13 22:24:18 4101

原创 Spark——Spark覆盖分区表中指定的分区

文章目录项目场景问题描述解决方案参考项目场景我们现在有这样一个表,需要按月来记录用户的状态,当前月的状态数据是每天都要更新的,历史月的状态数据导入到表之后就不再更新了。那么这个业务场景就转换成了“如何向一个已存在的分区表写入并覆盖当前月份的状态数据,而又保留历史月份数据”的问题。问题描述Spark中向分区表写数据的时候,如果写入模式为“overwrite”,那会将整个表覆盖掉;如果写入模式为“append”,那么我们当前一个月的数据每天都会追加到当前月的分区内,那就会造成数据重复。所以不能直接使用

2021-03-08 19:56:56 5988

原创 Spark源码——Spark on YARN Container资源申请分配、Executor的启动

文章目录Container资源申请分配Executor的启动Container资源申请分配Executor的启动

2021-03-07 22:09:41 2037 4

原创 Flink——Flink状态与容错恢复

文章目录

2021-01-16 17:17:00 628

原创 Spark——Spark写MySQL太慢、很慢、非常慢的原因分析及优化方法

文章目录参考JdbcRelationProviderJdbcUtils.saveTable() ——> savePartition() ——> stmt.executeBatch() ——> Statement ——> StatementImpl参考http://wesmelton.com/tweet/twitter-if-youre-sending-any-volume-to-mysql-from-spark-at-all-add-rewritebatchedstateme

2021-01-14 23:34:16 3755 3

原创 Spark源码——Spark on YARN SparkSubmit初始化、ApplicationMaster的启动注册

文章目录流程图我们知道,在YARN资源管理上提交Spark应用程序之后,首先会执行以下步骤:第一步,启动ApplicationMaster第二步,ApplicationMaster启动之后,向ResourceManager申请资源(也就是需要的Container)第三步,在申请的Container中启动真正执行Task的Executor流程图...

2021-01-02 17:53:20 539

原创 Spark——大数据生态组件(Spark、Flink、YARN等)WEB UI地址汇总

文章目录Spark Web UIFlink Web UIKafka MangerYARN应用Web UIElasticsearch-headCloudera MangerHue Web UIZeppelin NotebookSpark Web UIhttp://master-1:18089/Flink Web UIhttp://master-1:8081/Kafka Mangerhttp://master-1:9001/YARN应用Web UIhttp://master-1:8088/

2020-12-31 20:08:46 561

原创 Spark——Spark缓存临时视图(View)

文章目录RDD/Dataset缓存复用纯SQL结果缓存复用RDD/Dataset缓存复用我们知道在使用RDD和Dataset API开发Spark应用程序的时候,如果要缓存某个RDD或Dataset来进行复用,减少重复计算提升计算效率的时候,我们可以在RDD或Dataset上调用persist()方法并传入缓存级别参数进行缓存。val df: Dataset[Row] = ...df.persist(StorageLevel.MEMORY_AND_DISK)纯SQL结果缓存复用但是当我们以纯S

2020-12-31 19:10:02 3090

原创 Spark——Spark Project Tungsten深入解析

文章目录https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.htmlhttp://www.slideshare.net/SparkSummit/deep-dive-into-project-tungsten-josh-rosenhttps://medium.com/@goyalsaurabh66/project-tungsten-and-catalyst-sql-opti

2020-12-27 21:29:52 972

原创 Spark——Spark RDD、Dataset、DataFrame及区别

文章目录RDD1. 不可变性2. 分区性3. 并行操作4. RDD内部结构5. RDD宽依赖、窄依赖1. 窄依赖2. 宽依赖6. RDD的重用DatasetDataFrame参考RDDRDD(Resilient Distributed Dataset,弹性分布式数据集)是Spark中的基本抽象。RDD代表一种可并行操作的不可变的分区元素集合,它有3个特性:RDD是不可变的RDD是分区的RDD是可以并行操作的1. 不可变性RDD是不可变的,只能在其他的RDD上通过Transformation

2020-12-27 14:19:40 637

原创 Kafka——Kafka常用脚本命令

文章目录Kafka Server启动生产、消费消息1. 生产消息2. 消费消息主题管理创建topic删除主题查看所有主题查看主题信息修改主题分区修改主题参数分区重分配修改主题限速消费者信息查看消费者位移查看消费者组提交的位移数据查看消费者组的状态信息参考Kafka Server启动$ bin/kafka-server-start.sh config/server.properties生产、消费消息1. 生产消息$ bin/kafka-console-producer.sh --broker-li

2020-12-21 23:55:57 402

原创 Flink——Flink 时间(Time)、水印(Watermark)、窗口(Window)

aa

2020-12-20 13:21:08 1069

原创 Flink——Flink读写MySQL

package flink.batch;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.typeinfo.BasicTypeInfo;import org.apache.flink.api.common.typeinfo

2020-12-13 22:04:17 496

原创 Linux——Linux常用命令(CPU、进程线程、端口、连接数)

文章目录查看版本查看CPU信息查看进程查看端口关闭进程关机/重启任务后台运行内存CPU消耗find查找命令文件/目录统计du命令连接数线程数crontab查看版本# 查看当前操作系统内核信息cat /etc/redhat-release或uname -a# 查看当前操作系统版本信息cat /proc/version# 查看Linux版本lsb_release -a查看CPU信息cat /proc/cpuinfo查看进程# 查看进程打开的文件lsof -p pid# 查看进

2020-12-13 21:40:32 908

原创 Spark——spark-submit提交应用程序的注意事项

文章目录配置加载优先级指定多个依赖jar包配置加载优先级我们知道Spark应用程序在提交的时候会加载多个地方的配置信息:通过配置文件conf/spark-defaults.conf...# Default system properties included when running spark-submit.# This is useful for setting default environmental settings.# Example:# spark.master

2020-12-12 18:01:16 243

原创 Spark——DataFrame/Hive表导出为Excel、CSV之逆向思维

文章目录Hive表数据/Spark DataFrame导出为ExcelHive表数据/Spark DataFrame导出为CSVHive表数据/Spark DataFrame导出为Excelprivate void checkLength(String value) { if(value.length() > getSpreadsheetVersion().getMaxTextLength()){ final String message = String.format(L

2020-12-10 22:36:40 1335

原创 Java——Java 时间秒数/毫秒数与标准日期时间的相互转换

文章目录row.getTimestamp(index).toLocalDateTime.format(DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”))println(System.currentTimeMillis())println(LocalDateTime.now())println(new Timestamp(1507309800001L).toString)println(Instant.ofEpochMilli(1507309800

2020-12-07 20:30:44 6297

原创 Spark源码——Spark on YARN Executor执行Task的过程

文章目录入口点第一步:CoarseGrainedExecutorBackend main()和run()我们知道Spark中的Task是由Executor进程中执行的,那么Executor启动之后,具体是如何执行Task的呢?Executor执行Task的入口为object CoarseGrainedExecutorBackend。CoarseGrainedExecutorBackend是一个管理单个Executor的ExecutorBackend,它是在分配好的Container中其启动Executo

2020-12-06 17:33:04 720

原创 Spark——Spark on YARN应用程序debug、日志查看

https://spark.apache.org/docs/latest/running-on-yarn.html#debugging-your-application

2020-11-29 15:42:05 1589

原创 Hive——Hive中行转列、列转行

文章目录1. 行转列2. 列转行1. 行转列原始数据如下图:转换SQL:select name, collect_list(score) from db.grade group by name;结果:2. 列转行原始数据:转换SQL:select name, score from db.grade lateral view explode (scores) tmp as score结果:...

2020-11-27 21:25:43 206

原创 Hive——Hive窗口分析函数总结

文章目录窗口分析函数1. 分析函数2. 聚合函数3. 窗口函数窗口分析函数函数中用到的表数据如下图:1. 分析函数row_number()rank()dense_rank()这3个函数通常用在组内排序中,但实现的效果却不相同,用法如下:select name,subject,score, row_number() over(partition by name order by score) rn, rank() over(partition by name

2020-11-27 21:22:58 190

原创 Kafka——Kafka高吞吐高性能原理解析

文章目录磁盘顺序访问内存数据的保存pagecachezero copy1. 传统的数据传输方式2. 零拷贝数据传输方式参考Kafka作为一个高吞吐、高可用、可伸缩并能提供数据持久化的发布订阅系统。那么其高吞吐的特性使如何做到的呢?答案就是磁盘顺访问和zero-copy零拷贝。Kafka架构图如下:磁盘顺序访问Kafka非常依赖于文件来存储和缓存消息,可是我们很多人会认为磁盘太慢了,但其实对于一个配置了6块7200rpm SATA RAID-5机械硬盘的JBOD,其线性写入速度可达600MB/s。甚

2020-11-25 00:01:35 683

原创 Spark——Spark OOM Error问题汇总分析

文章目录Driver端OOM Error1. 在大数据集上调用了不适合的API2. 广播了大变量Executor端OOM Error1. 低效的查询2. 不合适的配置3. 并行任务较多参考Spark之所以能进行高性能的查询计算,主要得益于其基于内存的计算模型,那么在讨论Spark 中的一系列OOM error之前,我们应该对Spark的内存模型有一个充分的了解(请参考:Spark内存模型),才能分析定位OOM出现的原因。了解了Spark的内存模型之后,我们回到Spark OOM error上。当Spa

2020-11-22 13:18:49 2260

原创 Spark——Spark/Hive向量化查询执行原理分析(Vectorization Query Execution)

https://towardsdatascience.com/apache-hive-optimization-techniques-2-e60b6200eeca

2020-11-21 18:50:17 5181

原创 Flink——Flink集群架构及应用程序执行模式

文章目录Flink集群架构图1. JobManager2. TaskManagerTask和Operator ChainsTask slot和资源Flink Application Execution1. Flink Session集群2. Flink Job集群3. Flink Application集群三种集群模式优劣Flink Session集群优劣Flink Job集群Flink Application集群参考这篇文章概述了Flink的体系结构,并描述其主要组件是如何交互以执行应用程序,并从故障中

2020-11-16 00:37:30 1093

空空如也

空空如也

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

TA关注的人

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