自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

迎难而上

热爱技术的IT人

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

原创 设计模式_单例模式的几种实现方式

单例模式是一个老生常谈的问题,这里对单例模式的实现做一下总结分类懒汉模式 饿汉模式1.2.3.

2020-06-27 15:05:21 1147

原创 Zookeeper_Zookeeper客户端连接(含集群方式)

zookeeper 连接地址,zookeeper 的连接方式多种多样,这里展示3种连接方式1.命令行连接2.jar程序连接3.IDE 插件一、zkCli.sh / zookeeper-client 连接方式命令行连接zookeeper-client -server cdh-manager:2181,cdh-node1:2181,cdh-node2:2181连接后的信息[root@cdh-manager /]# zookeeper-client -serve...

2020-06-27 12:40:23 8384

原创 Kafka_ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1

报错信息详细报错信息ERROR admin.TopicCommand$: org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0.创建 Topic 的命令:kafka-topics --create --zookeeper cdh-manager:2181,cdh-node1:2181,cdh..

2020-06-25 12:18:12 6889

原创 Leetcode_NO215_数组中的第K个最大元素

题目描述:在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4 这道题,转化下思路,第K个最大的元素就是前K个元素中最小的元素。构建一个小根堆,堆的大小为K 1)当堆的大小小于K的时候,依次向其中加入新元素 2)当堆的大小=k 时,...

2020-06-22 11:16:33 585

原创 数据结构_堆_Java中的实现类

1.数据结构:堆(Heap)https://www.jianshu.com/p/6b526aa481b12.Java实现最大堆https://www.jianshu.com/p/257820688bf13.java借助PriorityQueue实现小根堆和大根堆https://blog.csdn.net/zcf1784266476/article/details/68961473我们先来了解下堆的基本概念:基本概念堆就是用数组实现的二叉树,所有它...

2020-06-21 16:52:58 2953

原创 数据结构_栈_Java中的实现类

相关文章:1.栈的特点https://www.php.cn/faq/421530.html 栈是日常常用的数据结构,栈(Stack)是一种线性存储结构,有如下特点: 栈中的数据元素遵守”后进先出”(First In Last Out)的原则,简称FILO结构,限定只能在栈顶进行插入和删除操作。栈的相关概念 :栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。压栈:push 栈的插入操作,叫做进栈,也称压栈、入栈。...

2020-06-21 16:11:35 3703

原创 数据结构_队列_Java中的实现类

我们对基础的数据结构队列都非常的熟悉,这里回顾下队列是一种先进先出(First in First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头它有两个基本操作:offer在队列尾部加人一个元素poll从队列头部移除一个元素Java 中的队列可以利用实现 Deque 接口的类作为实现类,Deque 的实现类主要分为两种场景:一般场景 LinkedList 大小可变的链表双端队列,允许元素为 nu...

2020-06-21 15:42:41 3140 1

转载 MySQL_MySQL引擎_MyISAM与InnoDB 的区别(9个不同点)

区别1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;3. InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构),必须要有主键,通过主键索引效...

2020-06-18 09:47:44 262

原创 MySQL_基础结构_B(B-)/B+ 树

参考文章:1.B+树总结https://www.jianshu.com/p/71700a464e972.B-Tree Hash b+Tree三种索引特点对比https://blog.csdn.net/weixin_42540340/article/details/888350233.MySQL索引的原理,B+树、聚集索引和二级索引的结构分析https://www.cnblogs.com/yuanrw/p/10225659.html4.MySQL数据库中索引...

2020-06-17 23:08:02 618

原创 MySQL_Innodb引擎_聚集索引,B+ 索引

1.mysql关于聚集索引、非聚集索引的总结http://blog.itpub.net/30126024/viewspace-2221485/2.mysql-聚集索引https://www.cnblogs.com/happyflyingpig/p/7652553.htmlB+ 索引MySQL 的 innodb 引擎使用的是 B+ 树作为索引的组织结构什么是B+树,B+树与B树之间有什么差异,请参考我的博文 :以上图片就是一颗B+树,通过以上B+树的截图...

2020-06-17 22:15:07 321

转载 Linux_Linux指令_lsof 指令

参考文章:1.Linux 命令神器:lsofhttps://www.jianshu.com/p/a3aa6b01b2e12.linux lsof 命令详解https://www.cnblogs.com/sparkbj/p/7161669.html lsof是系统管理/安全的尤伯工具。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。 有趣的是,lsof...

2020-06-17 17:23:55 1000

原创 Linux_Linux_uniq 指令

uniq 在日常工作中也是非常常用的命令,这篇文章来看下 uniq 指令的作用。注意: uniq 主要是用来做去重,以及计数统计的,但是注意一点 ! uniq 的文件必须预先经过 sort 为有序的文件英文介绍[root@cdh-manager linux_cmd_test]# uniq --helpUsage: uniq [OPTION]... [INPUT [OUTPUT]]Filter adjacent matching lines from INPUT (or standar.

2020-06-17 15:13:53 274

原创 Linux_Linux_sort 命令

最近有被问到如何在Linux 中实现 2个可能重复文件的交集。下面,我们进行下梳理。函数介绍 英文首先,看下sort 的函数介绍 :可以使用的方法 man sort / sort -h[root@cdh-manager linux_cmd_test]# sort --helpUsage: sort [OPTION]... [FILE]... or: sort [OPTION]... --files0-from=FWrite sorted concatenation ...

2020-06-17 14:53:58 321

原创 Java_多线程_创建多线程的4种方式 与 线程状态

参考文章:1.创建多线程有四种方式https://blog.csdn.net/YTREE_BJ/article/details/92761104Java 创建线程的4种方式 :继承Thread类创建多线程 实现Runnable接口创建多线程 实现Callable接口通过FutureTask包装器来创建Thread多线程 使用ExecutorService、Callable、Future实现有返回结果的线程。继承Thread类创建多线程代码如下:继承Thre...

2020-06-15 13:15:56 359

原创 Java_JVM_Java的双亲委派模型 与 破坏双亲委派模型实例

参考文章:1.双亲委派模型的破坏(JDBC例子)https://blog.csdn.net/awake_lqh/article/details/1061712192.面试官:说说双亲委派模型?https://baijiahao.baidu.com/s?id=1633056679004596814&wfr=spider&for=pc3.【JVM】浅谈双亲委派和破坏双亲委派https://www.cnblogs.com/joemsu/p/9310226.html...

2020-06-15 01:27:17 1431

原创 Java_Java多线程_Java线程池核心参数 与 手动创建线程池

参考文章:1.浅谈线程池ThreadPoolExecutor核心参数https://www.cnblogs.com/stupid-chan/p/9991307.html2.Java线程池 ThreadPoolExecutor(一)线程池的核心方法以及原理https://blog.csdn.net/m0_37506254/article/details/905740383.Java 中的几种线程池,你之前用对了吗https://www.cnblogs.com/fengzhe...

2020-06-14 19:30:42 801

原创 Spark_Spark 中 checkpoint 的正确使用方式 以及 与 cache区别

1.Spark性能调优:checkPoint的使用https://blog.csdn.net/leen0304/article/details/78718346概述 checkpoint的意思就是建立检查点,类似于快照,例如在spark计算里面,计算流程DAG特别长,服务器需要将整个DAG计算完成得出结果,但是如果在这很长的计算流程中突然中间算出的数据丢失了,spark又会根据RDD的依赖关系从头到尾计算一遍,这样子就很费性能,当然我们可以将中间的计算结果通过cache或者persi...

2020-06-14 12:07:00 5066

原创 HIVE_HIVE函数_窗口函数_LAG()/LEAD() 详解

参考文章:1.ORALCE函数:LAG()和LEAD() 分析函数详解、https://blog.csdn.net/pelifymeng2/article/details/70313943LAG, LEAD 函数简单介绍Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列。 在实际应用当中,若要用到取今天和昨天的某字段差值时,Lag和Lead函数的应用就显得尤为重要。当然,这种操作可以用表的自连接实现,...

2020-06-13 23:21:58 11439

转载 Hive_HQL_复杂SQL_连续发单天数

原文地址:1.Hive SQL复杂场景实现(1) —— 连续发单天数https://blog.csdn.net/Adrian_Wang/article/details/89791948 至今在数据分析岗摸爬滚打已有一年,尚且不敢说自己挖掘洞见的本事提升多少。但实打实的与SQL打了一年的交道,接触过各种各样的业务场景,完成过各种千奇百怪的需求,自我感觉在sql编程上也颇有体会。 相信接触过SQL的人都明白知道其非常容易上手,作为一个结构化查询语言,其在数据提取上给人们提供了非常大...

2020-06-13 22:24:07 1283

转载 Hive_SQL_复杂SQL_计算最大在线人数

原文链接:1.Hive SQL复杂场景实现(2) —— 实时/最大在线人数https://blog.csdn.net/adrian_wang/article/details/89840671背景 之前遇到这个问题:,能不能用SQL求某一天哪个时刻进行中的订单量最多,这个数是多少?我寻思挺有意思,就细想了一下。其实思考下可以发现,如果要求一段时间内的同时处于服务过程中的最大订单量,相当于也要知道每个时刻的数量,所以求最大和求实时是等同的。 这个问题在不同的业务场景下有不同的...

2020-06-13 21:53:15 5406

原创 Spark_Spark 中Cache的作用 以及 具体的案例

今天模拟实现 broadcastJoin 的时候突然意识到了这个点,对 Spark 的 Cache 做个总结。问题 在Spark中有时候我们很多地方都会用到同一个RDD, 按照常规的做法的话,那么每个地方遇到Action操作的时候都会对同一个算子计算多次。这样会造成效率低下的问题 !!!!常见 transform , action 算子 =>https://blog.csdn.net/u010003835/article/details/10...

2020-06-13 01:09:11 6756

转载 Kafka_Kafka 中 zookeeper 具体是做什么的?

参考文章1.kafka 中 zookeeper 具体是做什么的?https://www.cnblogs.com/yogoup/p/12000545.html最近回顾了下 kafka 的相关部分的知识,既然 kafka 并不是依赖于 zookeeper 进行 AR 进行 Topic 的Leader选举的,那么 zookeeper 到底完成了那些工作呢 ?zookeeper 是 kafka 不可分割的一部分,可见其重要程度,所以我们有必要了解一下 zookeeper 在 kaf...

2020-06-11 16:30:13 825 1

转载 Kafka_Kafka速度为什么那么快

原文地址 :https://www.cnblogs.com/binyue/p/10308754.html 好久没有用Kafka了,对知识梳理一下: Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。 即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。 针对Kaf...

2020-06-11 14:08:28 379

原创 Kafka_Kafka中的Zero Copy

1.Kafka “高吞吐” 之顺序访问与零拷贝https://cloud.tencent.com/developer/article/14766492.kafka通过零拷贝实现高效的数据传输https://blog.csdn.net/lxlmycsdnfree/article/details/789738643.Kafka的零拷贝技术https://www.jianshu.com/p/835ec2d4c1704.什么是“零拷贝”技术https://baijiahao.baidu.

2020-06-11 13:52:36 1178

原创 Spark_Spark分区相关的几个算子_partitionBy, coalesce, repartition

Base Spark 2.2.0首先,我们看下 coalesce 与 repartition 的主要区别:这两个算子主要区别,在于是否有shuffle 流程的发生。其中 coalesce 没有 shuffle 流程的发生,而 repartition 存在 shuffle。coalescerdd 的 coalesce实现/** * Return a new RDD that is reduced into `numPartitions` partitions. ...

2020-06-10 23:48:14 829

转载 Spark_Spark_ERROR关于spark.sql.autoBroadcastJoinThreshold设置

SparkSQL 相关文档 :http://spark.apache.org/docs/2.4.4/sql-performance-tuning.html 今天使用spark对一组大数据进行合并作join操作,一直都报下面的错:Exception in thread “broadcast-exchange-0” java.lang.OutOfMemoryError: Not enough memory to build and broadcast the table to all w...

2020-06-10 16:30:18 4387

原创 Spark_Spark中的几种Shuffle 以及工作原理, 含HashShuffle

一 概述 Shuffle就是对数据进行重组,由于分布式计算的特性和要求,在实现细节上更加繁琐和复杂 Hadoop Shuffle 在MapReduce框架,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中,往往伴随着大量的磁盘和网络I/O。所以shuffle性能的高低也直接决定了整个程序的性能高低。Spark Shu...

2020-06-10 10:38:41 5117

原创 Spark_Spark_RDD等_Shuffle调优_相关参数

之前一直没有出相关的文章,这次整理一下。希望你看了这篇文章,作业的 task 不是200 个!!! 首先 Shuffle 相关的参数与理解整个Shuffle 流程是密不可分的,建议在看这篇文章,如果你对整个Shuffle 流程还没有一个直观的认识,可以看下这篇文章。首先 ,Spark Shuffle 调优只是 Spark 中的一部分。并不是说通过调优,Spark 任务就会如何的快。重要的是资源!!!Spark 的资源在于以下几个参数, 提交作业申请的 executor-num , e...

2020-06-09 15:47:37 438

原创 HIVE_HIVE中的内置UDTF_EXPLODE 和 LATERAL VIEW

参考文章:1.【学习笔记】hive 之行拆列explodehttps://yq.aliyun.com/articles/654743 HIVE 中内置了 EXPLODE 和LATERAL VIEW,这两个 Function 非常的有用。尤其是在行转列的情形下。2.hive中的lateral view 与 explode函数的使用https://blog.csdn.net/guodong2k/article/details/79459282本篇文章我们也是用了 ...

2020-06-09 09:11:05 1142

原创 HIVE_Hive Function_STR_TO_MAP 函数详解

参考文章 :https://blog.csdn.net/yuanyangsdo/article/details/64441165本文主要讲解下 HIVE 中 str_to_map 如何使用函数介绍我们先看下函数介绍: map<string,string> str_to_map(text[, delimiter1, delimiter2]) Splits text into key-value pairs us...

2020-06-09 00:53:20 3335

原创 Linux_Linux查看某个进程下面的线程

线程基本概念 线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发执行时成为一个高效的机制。 在Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然后,各个线程会获得其自身的线程ID(TID)。对于Linux内...

2020-06-08 21:59:17 3594

转载 Spark_Spark中RDD介绍

今天面试被问到了这个问题,感觉自己回答的并不好。写一下这篇文章记录一下:https://www.jianshu.com/p/6411fff954cfSpark基本概念RDD:弹性分布式数据集 (Resilient Distributed DataSet)。Spark 是数据不动,代码动的架构!!!!RDD 的基本特性RDD 有三个基本特性 : 分区,不可变,并行操作分区 每一个 RDD 包含的数据被存储在系统的不同节点上。逻辑上我们可以将 RDD ...

2020-06-08 20:47:24 441

原创 Leetcode_NO199_二叉树的左视图,右视图

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入:[1,2,3,null,5,null,4]输出:[1, 3, 4]解释: 1 <---/ \2 3 <---\ \ 5 4 <---想法与思路:1.因为右视图是同一层最右边的节点1.构建Map Key 层高 , Value 节点值2.想象中序遍历,右边的...

2020-06-08 18:02:21 838

原创 Spark_Spark JOIN的种类 以及选择依据

参考文章 :1.Spark join种类(>3种)及join选择依据https://blog.csdn.net/rlnLo2pNEfx9c/article/details/106066081Spark 内部JOIN 大致分为以下3种实现方式 :1.BroadCastHashJoin2.ShuffledHashJoin3.SortMergeJoin1.BroadCastHashJoin 翻过源码之后你就会发现,Spark 1.6之前实...

2020-06-07 23:15:20 2896

原创 Spark_Map与MapPartition 的区别_未完待续

参考文章 :https://www.cnblogs.com/schoolbag/p/9640990.html在Spark中有map和mapPartitions算子,处理数据上,有一些区别主要区别:map是对rdd中的每一个元素进行操作;mapPartitions则是对rdd中的每个分区的迭代器进行操作MapPartitions的优点:如果是普通的map,比如一个partition中有1万条数据。ok,那么你的function要执行和计算1万次。使用MapPartiti...

2020-06-07 22:02:50 851

原创 Hive_HQL_行转列与列转行

参考文章:1.HIVE行转列和列转行https://www.cnblogs.com/blogyuhan/p/9274784.html2.HIVE行转列和列转行https://blog.csdn.net/jiantianming2/article/details/79189672列转行方式一 : 通过 GROUP BY + CASE WHEN + 聚合函数需求如下1.有用户学习情况的 uid, 科目,分数 多行数据。已知每个人所学分为英语,数学,...

2020-06-07 21:52:37 14808 3

原创 Sqoop_Sqoop 并行度调整 -m 以及 --split-by

参考https://blog.csdn.net/duyuanhai/article/details/103066861Sqoop 并行化原理 Sqoop并行化是启多个map task实现的,-m(或--num-mappers)参数指定map task数,默认是四个。 当指定为1时,可以不用设置split-by参数,不指定num-mappers时,默认为4,当不指定或者num-mappers大于1时,需要指定split-by参数。并行度不是设置的越大越好,map task的启...

2020-06-07 17:13:28 5042

原创 Leetocde_NO31_下一个排列

链接:https://leetcode-cn.com/problems/next-permutation题目实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1参考文章:https://...

2020-06-07 16:59:36 215

转载 SparkSQL_Spark2+ 的SparkSQL 性能调优

参考文章:1.Spark2+的sql 性能调优https://www.cnblogs.com/yyy-blog/p/10260988.html重要的要点在内存中缓存数据 性能优化相关参数 广播 分区数据的调控 文件与分区 文件格式1、在内存中缓存数据性能调优主要是将数据放入内存中操作,spark缓存注册表的方法版本 缓存 释放缓存 spark2.+ spark.catalog.cacheTable("tableName")缓存表 ...

2020-06-06 15:37:00 516

转载 数仓设计_维度建模的三种模式

https://blog.csdn.net/weixin_42464054/article/details/92804678维度建模的三种方式,基本概念记录一下。主要是记下这几张图片!1.1  星型模式。1.2  雪花模式。1.3  星座模式记忆词:  星型模式、星座模式一、维度建模三种模式、1.1 ~星型模式。星型模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。...

2020-06-06 15:14:11 2637

空空如也

空空如也

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

TA关注的人

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