- 博客(79)
- 收藏
- 关注
原创 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 462
原创 Spark——Spark读写Greenplum/Greenplum-Spark Connector高速写Greenplum
通过数据平台上的DataX把Hive表数据同步至Greenplum(因为DataX原生不支持Greenplum Writer,只能采用PostgreSQL驱动的方式),但是同步速度太慢了,
2024-01-27 15:10:55 1210
原创 Flink CDC-SQL Server CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表
Flink CDC-SQL Server CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表
2023-09-13 22:25:50 559
原创 Flink CDC-Oracle CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表
Flink CDC-Oracle CDC配置及DataStream API实现代码...可实现监控采集一个数据库的多个表
2023-09-12 22:43:11 1900
原创 Flink CDC-MySQL CDC配置及DataStream API实现代码...可实现监控采集多个数据库的多个表
Flink CDC-MySQL CDC配置及DataStream API实现代码, 可实现监控采集多个数据库的多个表
2023-09-11 22:01:12 1534
原创 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 591
原创 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 1506
原创 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 4468 1
原创 Flink——Flink Checkpoint实现原理
文章目录CheckPoint概述Checkpoint BarrierCheckpoint执行过程不对齐的Checkpoint参考CheckPoint概述我们知道Flink是通过数据流的重放和Checkpoint机制来实现容错的。一个Checkpoint记录着数据流中某个时刻所有operators对应的状态。Flink的容错机制会对分布式的数据流连续的绘制快照,并将状态进行存储,当因为机器、网络或软件故障等原因导致Flink应用程序失败的时候,数据流可以从最近一次成功的Checkpoint进行恢复,同时通
2021-03-28 17:02:10 3606
原创 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 1542
原创 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 1013
原创 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 1984
原创 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 1568
原创 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 3266
原创 Spark——Spark覆盖分区表中指定的分区
文章目录项目场景问题描述解决方案参考项目场景我们现在有这样一个表,需要按月来记录用户的状态,当前月的状态数据是每天都要更新的,历史月的状态数据导入到表之后就不再更新了。那么这个业务场景就转换成了“如何向一个已存在的分区表写入并覆盖当前月份的状态数据,而又保留历史月份数据”的问题。问题描述Spark中向分区表写数据的时候,如果写入模式为“overwrite”,那会将整个表覆盖掉;如果写入模式为“append”,那么我们当前一个月的数据每天都会追加到当前月的分区内,那就会造成数据重复。所以不能直接使用
2021-03-08 19:56:56 4767
原创 Spark源码——Spark on YARN Container资源申请分配、Executor的启动
文章目录Container资源申请分配Executor的启动Container资源申请分配Executor的启动
2021-03-07 22:09:41 1583 4
原创 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 3328 3
原创 Spark源码——Spark on YARN SparkSubmit初始化、ApplicationMaster的启动注册
文章目录流程图我们知道,在YARN资源管理上提交Spark应用程序之后,首先会执行以下步骤:第一步,启动ApplicationMaster第二步,ApplicationMaster启动之后,向ResourceManager申请资源(也就是需要的Container)第三步,在申请的Container中启动真正执行Task的Executor流程图...
2021-01-02 17:53:20 424
原创 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 447
原创 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 2752
原创 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 749
原创 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 456
原创 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 348
原创 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 421
原创 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 627
原创 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 183
原创 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 1186
原创 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 5261
原创 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 561
原创 Spark——Spark on YARN应用程序debug、日志查看
https://spark.apache.org/docs/latest/running-on-yarn.html#debugging-your-application
2020-11-29 15:42:05 1233
原创 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 151
原创 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 130
原创 Kafka——Kafka高吞吐高性能原理解析
文章目录磁盘顺序访问内存数据的保存pagecachezero copy1. 传统的数据传输方式2. 零拷贝数据传输方式参考Kafka作为一个高吞吐、高可用、可伸缩并能提供数据持久化的发布订阅系统。那么其高吞吐的特性使如何做到的呢?答案就是磁盘顺访问和zero-copy零拷贝。Kafka架构图如下:磁盘顺序访问Kafka非常依赖于文件来存储和缓存消息,可是我们很多人会认为磁盘太慢了,但其实对于一个配置了6块7200rpm SATA RAID-5机械硬盘的JBOD,其线性写入速度可达600MB/s。甚
2020-11-25 00:01:35 566
原创 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 1672
原创 Spark——Spark/Hive向量化查询执行原理分析(Vectorization Query Execution)
https://towardsdatascience.com/apache-hive-optimization-techniques-2-e60b6200eeca
2020-11-21 18:50:17 4195
原创 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 889
原创 Hive——Hive/HiveSQL性能优化
文章目录分区partition1. 静态分区Static Partition2. 动态分区Dynamic Partition我们知道Hive是一个构建在MapReduce之上并提供了SQL语法的查询分析引擎。虽然Hive可以处理巨量的数据,但是不同的优化手段会在处理时间上产生很大的差异。在Hive中,可以从以下几个方面进行优化:分区partition分桶bucket使用Spark/Tez作为执行引擎使用压缩使用parquet/orc格式join优化基于CBO的优化分区partitio
2020-11-12 22:44:11 622
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人