自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (3)
  • 收藏
  • 关注

原创 Spark-shuffle源码细读一:ShuffleManager

version:spark 3.0.1ShuffleManager目前只有一个实现SortShuffleManager。分析其源码。

2022-01-30 22:23:57 1486

原创 mmap原理-内存映射文件原理-linux内核学习

文章目录1.基础概念2.mmap原理vm_area_struct:内存映射文件的原理:1.基础概念mmap是一种内存映射文件的方式。即将一个文件或一块设备内存(如设备寄存器)映射到进程的地址空间,实现文件磁盘地址(or设备io地址)和进程虚拟地址空间(用户空间,非内核空间,ioremap函数才是向内核空间映射)中一段虚拟地址的一一对应的关系。进程就在读写操作这段内存时,系统会自动回写脏页面到对应的文件磁盘上(或写入到设备地址空间),就完成了对文件/设备的操作,而不需要再调用read,write等系统调

2021-12-18 15:32:31 917

原创 Git报错:fatal: unable to access xxx :OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.co

报错:Cloning into 'orc'...fatal: unable to access 'https://github.com/apache/orc.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443解决:git config --global http.sslVerify false,重新clone即可

2021-12-04 16:21:45 2109

原创 Orc源码在idea上编译的一些问题

1.OrcProto类找不到解决办法:先用命令行mvn compile,生成target:看到该类被exclude了,右键项目,选择maven,选择Generate Sources and Update Folders即可。修改后,generated-sources中的代码也可以导入了。...

2021-12-04 14:21:03 649

原创 Spark-nettyEnv

private[netty] class NettyRpcEndpointRef( @transient private val conf: SparkConf, private val endpointAddress: RpcEndpointAddress, @transient @volatile private var nettyEnv: NettyRpcEnv)override def send(message: Any): Unit = { require(m.

2021-08-22 17:22:15 129

原创 Spark3.0新特性-plugin源码详解与实战

目录@Author Jeffrey.miao转载请标明出处1.plugin介绍2.plugin初始化2.1 PluginContainer2.2 rpc通信2.3SparkPlugin初始化3.实战1.plugin介绍通过在submit作业时指定 --conf="spark.plugins=org.apache.spark.internal.plugin.TestSparkPlugin",加载自定义Plugin。2.plugin初始化2.1 PluginC.

2021-08-21 16:36:27 1408 2

转载 Shell set命令应用

目录set命令简介使用set命令1.不带选项执行set命令2.基本语法3.选项介绍-o+o-e or -o errexit-n or -o noexec-u or -o unset-x or -o xtrace-o pipefail例子set命令简介set命令是shell中初学者比较少接触,但是却很有用的一个命令(这里我们说的shell指的是bash)。set命令是shell解释器的一个内置命令,用来设置shell解释器的属性,从而能够控制shel

2021-08-14 13:19:35 1140

转载 Hadoop 3.0 EC技术应用

目录EC的设计目标EC背景EC在RAID应用EC与HDFSEC在Hadoop架构的调整NameNode元数据存储ClientDataNodeEC存储方案EC编码和解码容错性和存储效率连续存储还是条纹单元存储EC策略关键属性EC策略命名online-EC自定义EC策略XOR算法与RS算法部署HDFS EC集群配置要求EC配置EC命令验证测试新上传一个293M的文件到冷数据目录使用distcp迁移数据基于Hive

2021-08-08 17:19:48 1896

转载 深入理解 Hadoop Ec 原理

Hadoop EC的一个实现:https://sourceforge.net/projects/hadoop-ec/http://blog.cloudera.com/blog/2016/02/progress-report-bringing-erasure-coding-to-apache-hadoop/在学习Erasure Coding技术的过程中,查看了很多的资料,并且提交了一个Issue给社区,HDFS-9832.顺便说一句,我是去年9月开始接触Hadoop社区的,参与开源的过程使我对

2021-08-08 16:53:56 930

原创 spark源码编译-maven常见编译问题

spark版本3.0.1

2021-08-08 14:59:39 2833

原创 Shell体系性学习(精简速学)-从入门到入土

目录1.shell中的特殊符号2.1.shell中的特殊符号!执行历史命令,!!执行上一条命令& 后台执行* 默认是通配符,如果想作为乘号,需要转义,如 expr 3 \* 3` ` 反引号,用于在命令中执行命令,如 echo " Date: `date +%F` "' ' 单引号代表字符串,但不同于双引号的是,单引号不解释变量。 如 echo '$U...

2021-07-25 13:40:23 418

转载 Spark的Parquet向量化读取原理

Spark的Parquet向量化读取原理原文链接:https://www.dazhuanlan.com/2020/01/06/5e12b00b2bcf9/测试过程中,发现一个spark的一个参数设置可以带来5倍以上的性能差异参数: spark.sql.parquet.enableVectorizedReader一条SQL的运行结果对比:参数设置为true运行时间22s,设置为false运行时间5.4min。好奇什么样的差异能带来如此大的性能提升,因此接触到一个新的名词——向量化计算什么是向量化

2021-05-17 18:22:55 678

转载 数据库计算引擎的优化技术:向量化执行与代码生成

数据库计算引擎的优化技术:向量化执行与代码生成原文链接:https://zhuanlan.zhihu.com/p/100933389阿尔德里竹作者:徐飞,李德竹随着数据库软硬件技术的发展,经典的 SQL 计算引擎逐渐成为数据库系统的性能瓶颈,尤其是对于涉及到大量计算的 OLAP 场景。如何进一步提升 SQL 计算引擎的性能成为数据库从业者们的热门研究方向,无论是学术界还是工业界都对此作了大量的努力,而向量化执行与代码生成正是在这一过程中实践总结出来的两种有效方法,在新一代的数据库系统中,大多都能看

2021-05-17 17:00:42 796

原创 spark shuffle全过程源码梳理

理解宽窄依赖窄依赖(父RDD单个分区的计算不依赖于父RDD其他分区):父RDD的一个Partition只能对应子RDD的一个Partition。即父RDD的一个分区上的数据可以单独计算。换句话说,子RDD的某个分区在计算时可以单独计算而不会依赖于父RDD其他Partition上的数据。如Filter,map。宽依赖(父RDD单个分区的计算依赖于父RDD其他分区):父RDD的一个Partition无法单独计算,需要依赖于其他所有的Partition(依赖的不确定性)。表现为,shuffle read

2021-05-12 17:00:36 359

原创 Tungsten优化基础之BytesToBytesMap

BytesToBytesMap重要成员属性longArray是一个KV pair:存放key指针(K)和key的hashcode(V)。数据组织形式页内的数据组织形式BytesToBytesMap的内部类MapIterator实现了Iterator接口:next()方法中,先判断如果该页没有records,则跳转到下一页。如果当前页不为空,则返回Location对象。Location中记录了key和value的Offset和size等信息。@Override ..

2021-04-29 15:00:17 295

原创 Netty之EventLoop源码学习

Netty之EventLoop源码学习@Author Miaoxf转载请标明出处netty version 4.1.36一.主从reactor模型二.从继承树理解EventLoop尝试带着几个问题去看代码:1.eventloop如何实现单线程循环2.调度和执行队列解耦的意义1.父类SingleThreadEventExecutorSingleThreadEventExecutor中封装了一个本地Thread中封装了一个本地Thread而一个EventLoop在其生命周期中只跟该特定

2021-03-02 21:18:38 206

原创 maven的java-doc插件报Error injecting

问题描述:在用maven install项目时,发现如下报错:Error injecting: org.apache.maven.plugin.javadoc.JavadocJarjava.lang.ExceptionInInitializerErrorCaused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 2解决方案:本想通过maven命令,跳过javadoc插件,...

2021-01-01 11:39:45 1565

原创 改写SparkSql执行计划之sparksql开发新语法

改写SparkSql执行计划SparkSql开发新的语法支持:首先需要改动ANTLR4文件(在SqlBase.g4中添加文法),重新生成词法分析器(SqlBaseLexer)、语法分析器(SqlBaseParser)和访问者类(SqlBaseVisitor接口与SqlBaseBaseVisitor类),然后在AstBuilder一系列类中添加访问逻辑,最后添加执行逻辑。修改ANTLR4文件添加访问逻辑扩展包dsql下:DSQLAstBuilder继承了ANTLR4生成的默认SqlBaseBase

2020-05-17 18:32:32 579

原创 scala集合转java可变参数

今天遇到一个需求,在scala中调用es client的java api,需要在builder()中传一个可变参数RestClient.builder()public static RestClientBuilder builder(HttpHost... hosts) { return new RestClientBuilder(hosts); }解决:var set: Set[HttpHost] = Set()RestClient.builder(set.toArr

2020-05-13 19:22:12 308

转载 92、99表连接语法及底层原理

原文:https://blog.csdn.net/Lirx_Tech/article/details/51111662作者:Lirx_Tech\1. 连接查询:​ 1) 即查询的时候同时需要多张表(特别是存在外键关系的),此时需要多张表之间的值进行连接;​ 2) 目前SQL标准提出过两种连接查询,第一种是较早的SQL92标准,第二种是目前使用广泛的较新的SQL99标准;​ ...

2020-03-27 08:33:43 790

转载 mysql引擎与优化

Mysql数据库结构图原文链接:https://blog.csdn.net/Mirror_w/article/details/91354788作者:数据小二一,mysql数据库引擎介绍1,ISAM(Indexed Sequential Access Method):ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,I...

2020-03-21 21:54:43 303

转载 聚集索引与非聚集索引的总结

聚集索引与非聚集索引的总结作者:大傻逼出处:http://www.cnblogs.com/s-b-b/一.索引简介众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结SQL Server以及MySQL的InnoDB和MyISAM两种SQL的索引。SQL Sever索...

2020-03-21 21:48:41 197

转载 Mysql--InnoDB存储引擎详解

原文链接:https://www.jianshu.com/p/519fd7747137作者:小北觅从Mysql5.5版本开始,InnoDB是默认的表存储引擎。其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读、同时被设计用来最有效的利用以及使用内存和CPU。本文主要内容:InnoDB体系架构CheckPoint技术InnoDB关键特性一、InnoDB体系架构下图简单描...

2020-03-21 21:43:22 461

转载 浅谈mysql架构

浅谈Mysql架构一、一个查询流程图对于MySQL来说,虽然经历了多个版本迭代(MySQL5.5,MySQL 5.6,MySQL 5.7,MySQL 8),但每次的迭代,都是基于MySQL基架的,MySQL基架大致包括如下几大模块组件:​ (1)MySQL向外提供的交互接口(Connectors)​ (2)管理服务组件和工具组件(Management Service &a...

2020-03-21 15:13:41 164

原创 sparkstreaming数据丢失和重复消费问题

sparkstreaming优化总结一方面关于数据丢失和重复消费问题1.数据丢失问题receiver模式:(该部分比较简单,可以跳过)丢失原因:首先,receiver task 接收 kafka 中的数据,并备份到其他 executor 中的blockmanager里,然后将偏移量提交给 zookeeper ,接着 存在备份的 executor 将数据的地址封装并发送到 driver ...

2020-03-18 14:41:06 1383

原创 flink watermark原理总结

flink watermark学习总结flink如何处理乱序?通过窗口对input按照eventTime进行聚合,使得大体按照event time 发生的顺序去处理数据,同时利用watermark来触发窗口。(watermark + window机制)watermark原理及简介?Watermark是Flink为了处理EventTime时间类型的窗口计算提出的一种机制,本质上也是一种时间戳...

2020-01-26 21:08:26 895

转载 Spark Shuffle的基本原理与特性

通过文章“Spark Scheduler内部原理剖析”我们知道,Spark在DAG调度阶段会将一个Job划分为多个Stage,上游Stage做map工作,下游Stage做reduce工作,其本质上还是MapReduce计算框架。Shuffle是连接map和reduce之间的桥梁,它将map的输出对应到reduce输入中,这期间涉及到序列化反序列化、跨节点网络IO以及磁盘读写IO等,所以说Shuff...

2020-01-21 22:25:20 415

转载 Spark数据倾斜的解决方案

数据倾斜的解决方案解决方案一:使用Hive ETL预处理数据方案适用场景:导致数据倾斜的是Hive表。如果该Hive表中的数据本身很不均匀(比如某个key对应了100万数据,其他key才对应了10条数据),而且业务场景需要频繁使用Spark对Hive表执行某个分析操作,那么比较适合使用这种技术方案。方案实现思路:此时可以评估一下,是否可以通过Hive来进行数据预处理(即通过Hive ET...

2020-01-20 20:21:13 225

原创 hbase(coprocessor)-es构建二级索引(完整版)

hbase(coprocessor)整合es构建二级索引一.简介HBase包含两种协处理器:Observers和Endpoint1.RegionObserver:eg:可以在客户端进行get操作时,通过preGet进行权限控制//主要方法:preOpen, postOpen: Called before and after the region is reported as onlin...

2019-12-25 11:02:29 1232

原创 搭建Hadoop分布式集群、HA高可用集群

Hadoop分布式集群、高可用集群搭建一.搭建完全分布式(1.x版本)hdp-01hdp-02hdp-03hdp-04hdp-05namenode√secondarynamenode√datanode√√√√√Step1:主机相互免秘钥生成自己的秘钥对ssh-keygen -t rsa -P ‘’ -f ~/....

2019-11-20 22:53:38 277

转载 容器的默认容量以及扩容问题

在面试后台开发的过程中,集合是面试的热话题,不仅要知道各集合的区别用法,还要知道集合的扩容机制,今天我们就来谈下ArrayList 和 HashMap的默认大小以及扩容机制。在 Java 7 中,查看源码可以知道:ArrayList 的默认大小是 10 个元素,HashMap 的默认大小是16个元素(必须是2的幂,为什么呢???下文有解释)。这就是 Java 7 中 ArrayList 和 Ha...

2019-07-22 22:54:18 491

翻译 Java各个版本新特性

Java 各个版本中的新特性Java 8新特性:Lambda表达式Lambda 表达式允许将函数作为一个方法的参数,即把函数作为参数传递进方法中。接口增加默认方法等方法引用流StreamJava 7新特性:1.对Java集合(Collections)的增强支持,可直接采用[]、{}的形式存入对象,采用[]的形式按照索引、键值来获取集合中的对象。如:List list = [“it...

2019-06-28 23:03:47 166

settings.xml

maven通用配置模板

2021-08-08

elasticsearch多版本jar包(直接拷贝到maven仓库对应位置即可)

在“\repository\org”路径下解压该文件即可。由于直接下载可能比较慢,故分享该资源

2019-12-25

hbase-jar包(多版本)拷贝到maven仓库即可

解压后拷贝到maven仓库对应的位置即可。\repository\org\apache在该目录中解压hbase文件。

2019-12-25

空空如也

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

TA关注的人

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