自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 线性回归测试案例

# -*- coding: utf-8 -*- from sklearn.linear_model import SGDRegressor,LinearRegression from sklearn.datasets import load_boston from sklearn.model_s...

2019-10-29 14:19:40

阅读数 39

评论数 0

原创 泰坦尼克号生死预测(决策树)

# -*- coding: utf-8 -*- from sklearn.naive_bayes import MultinomialNB from sklearn.datasets import fetch_20newsgroups from sklearn.model_selection i...

2019-10-29 08:58:49

阅读数 25

评论数 0

原创 knn算法案例

train.csv row_id,x,y,accuracy,time,place_id 0,0.7941,9.0809,54,470702,8523065625 1,5.9567,4.7968,13,186555,1757726713 2,8.3078,7.0407,74,322648,1137...

2019-10-28 16:34:48

阅读数 51

评论数 0

原创 numpy行列转换

a = np.arange(24).reshape((4, 6)) print(a) # 行交换 第1行与第3行交换 a[[1,3],:]=a[[3,1],:] print(a) #列交换,第1列与第3进行交换 a[:,[0,2]]=a[:,[2,0...

2019-10-25 15:13:23

阅读数 103

评论数 0

原创 matplot 标题、图例、设置中文显示

from matplotlib import pyplot as plt, font_manager # 字体实例对象 my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\simhei.ttf"...

2019-10-25 09:07:49

阅读数 214

评论数 0

原创 使用matplotlib库中文显示问题

from matplotlib import pyplot as plt, font_manager # 字体实例对象 my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\simhei.ttf"...

2019-10-24 17:59:45

阅读数 56

评论数 0

原创 Redis缓存穿透、缓存雪崩、缓存击穿

1)缓存穿透是指查询一个一定不存在的数据。由于缓存命不中时会去查询数据库,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决方案: 是将空对象也缓存起来,并给它设置一个很短的过期时间,最长不超过5分钟 ② 采用布隆过滤器,将所有可能存在的数据哈希到...

2019-07-06 17:41:50

阅读数 57

评论数 0

原创 Docker容器命令2

容器命令 线索Cues 笔记Notes 启动守护式容器 docker run -d 容器名 docker run -d centos /bin/sh -c "while true;do ec...

2019-06-19 08:49:40

阅读数 46

评论数 0

原创 Docker容器命令1

容器命令 线索Cues 笔记Notes 新建并启动容器: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明: OPTIONS说明(常用)...

2019-06-19 08:48:39

阅读数 49

评论数 0

原创 Docker常用命令

Docker常用命令 帮助命令 docker version:查看docker的版本 docker info:查看docker的相关信息 docker --help:查看docker相关的帮助信息 镜像命令docke...

2019-06-19 08:47:46

阅读数 39

评论数 0

原创 Docker镜像加速(阿里云)

什么是镜像加速?为什么要镜像加速? 外国的镜像地址,下载速度慢,使用加速器可以提升获取Docker官方镜像的速度 注册一个属于自己的阿里云账户(可复用淘宝账号) 1.获得加速器地址连接 2.配置本机Docker运行镜像加速器 鉴于国内网络问题,后续拉取 Docker 镜像十分...

2019-06-19 08:46:28

阅读数 413

评论数 0

原创 Docker底层原理

Docker是怎么工作的 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是我们前面说到的集装箱。 为什么Docker比...

2019-06-18 18:10:05

阅读数 86

评论数 0

原创 Docker能干嘛

1.之前的虚拟机技术 虚拟机(virtual machine)就是带环境安装的一种解决方案。 它可以在一种操作系统里面运行另一种操作系统,比如在Windows 系统里面运行Linux 系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件...

2019-06-18 18:00:34

阅读数 362

评论数 0

原创 docker理念

1.Docker是基于Go语言实现的云开源项目。 2.Docker的主要目标是“Build,Ship and Run AnyApp,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次...

2019-06-18 17:58:58

阅读数 67

评论数 0

原创 为什么会有docker出现

一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验 Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。 环境配...

2019-06-18 17:58:23

阅读数 135

评论数 0

原创 高并发的异常之ConcurrentModificationException

1 故障现象 java.util.ConcurrentModificationException 2 导致原因 线程不安全 3 解决方法 3.1 new Vector<>() 3.2 Collections.synchronizedList...

2019-06-12 20:15:13

阅读数 72

评论数 0

原创 spark之JVM调优二:调节Executor堆外内存

Executor的堆外内存主要用于程序的共享库、Perm Space、 线程Stack和一些Memory mapping等, 或者类C方式allocate object。 有时,如果你的Spark作业处理的数据量非常大,达到几亿的数据量,此时运行Spark作业会时不时地报错,例如shuffle ...

2019-06-11 07:49:11

阅读数 279

评论数 0

原创 spark之JVM调优一:降低cache操作的内存占比

静态内存管理机制 根据Spark静态内存管理机制,堆内存被划分为了两块,Storage和Execution。Storage主要用于缓存RDD数据和broadcast数据,Execution主要用于缓存在shuffle过程中产生的中间数据,Storage占系统内存的60%,Execution占系统...

2019-06-11 07:46:42

阅读数 83

评论数 0

原创 spark算子调优三:filter与coalesce的配合使用

在Spark任务中我们经常会使用filter算子完成RDD中数据的过滤,在任务初始阶段,从各个分区中加载到的数据量是相近的,但是一旦进过filter过滤后,每个分区的数据量有可能会存在较大差异,如图所示: 1. 每个partition的数据量变小了,如果还按照之前与partition相等的t...

2019-06-11 00:01:40

阅读数 211

评论数 0

原创 spark算子调优二:foreachPartition优化数据库操作

在生产环境中,通常使用foreachPartition算子来完成数据库的写入,通过foreachPartition算子的特性,可以优化写数据库的性能。 如果使用foreach算子完成数据库的操作,由于foreach算子是遍历RDD的每条数据,因此,每条数据都会建立一个数据库连接,这是对资源的极大...

2019-06-11 00:01:32

阅读数 157

评论数 0

原创 spark算子调优四:repartition解决SparkSQL低并行度问题

在第一节的常规性能调优中我们讲解了并行度的调节策略,但是,并行度的设置对于Spark SQL是不生效的,用户设置的并行度只对于Spark SQL以外的所有Spark的stage生效。 Spark SQL的并行度不允许用户自己指定,Spark SQL自己会默认根据hive表对应的HDFS文件的sp...

2019-06-11 00:01:18

阅读数 171

评论数 0

原创 spark算子调优五:reduceByKey本地聚合

reduceByKey相较于普通的shuffle操作一个显著的特点就是会进行map端的本地聚合,map端会先对本地的数据进行combine操作,然后将数据写入给下个stage的每个task创建的文件中,也就是在map端,对每一个key对应的value,执行reduceByKey算子函数。reduc...

2019-06-11 00:01:10

阅读数 96

评论数 0

原创 Shuffle调优二:调节reduce端拉取数据缓冲区大小

Spark Shuffle过程中,shuffle reduce task的buffer缓冲区大小决定了reduce task每次能够缓冲的数据量,也就是每次能够拉取的数据量,如果内存资源较为充足,适当增加拉取数据缓冲区的大小,可以减少拉取数据的次数,也就可以减少网络传输的次数,进而提升性能。 r...

2019-06-11 00:01:02

阅读数 120

评论数 0

原创 Shuffle调优一:调节map端缓冲区大小

在Spark任务运行过程中,如果shuffle的map端处理的数据量比较大,但是map端缓冲的大小是固定的,可能会出现map端缓冲数据频繁spill溢写到磁盘文件中的情况,使得性能非常低下,通过调节map端缓冲的大小,可以避免频繁的磁盘IO操作,进而提升Spark任务的整体性能。 map端缓冲的...

2019-06-11 00:00:55

阅读数 153

评论数 0

原创 Shuffle调优三:调节reduce端拉取数据重试次数

Spark Shuffle过程中,reduce task拉取属于自己的数据时,如果因为网络异常等原因导致失败会自动进行重试。对于那些包含了特别耗时的shuffle操作的作业,建议增加重试最大次数(比如60次),以避免由于JVM的full gc或者网络不稳定等因素导致的数据拉取失败。在实践中发现,对...

2019-06-11 00:00:46

阅读数 75

评论数 0

原创 Shuffle调优四:调节reduce端拉取数据等待间隔

Spark Shuffle过程中,reduce task拉取属于自己的数据时,如果因为网络异常等原因导致失败会自动进行重试,在一次失败后,会等待一定的时间间隔再进行重试,可以通过加大间隔时长(比如60s),以增加shuffle操作的稳定性。 reduce端拉取数据等待间隔可以通过spark.sh...

2019-06-11 00:00:38

阅读数 58

评论数 0

原创 spark算子调优一:mapPartitions

普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作。如果是普通的map算子,假设一个partition有1万条数据,那么map算子中的function要执行1万次,也就是对每个元素进行操作。 如果是mapPartition算子,由于一...

2019-06-10 22:37:07

阅读数 219

评论数 0

原创 spark常规性能调优六:调节本地化等待时长

Spark作业运行过程中,Driver会对每一个stage的task进行分配。根据Spark的task分配算法,Spark希望task能够运行在它要计算的数据算在的节点(数据本地化思想),这样就可以避免数据的网络传输。通常来说,task可能不会被分配到它处理的数据所在的节点,因为这些节点可用的资源...

2019-06-10 22:15:08

阅读数 26

评论数 0

原创 spark常规性能调优五:Kryo序列化

默认情况下,Spark使用Java的序列化机制。Java的序列化机制使用方便,不需要额外的配置,在算子中使用的变量实现Serializable接口即可,但是,Java序列化机制的效率不高,序列化速度慢并且序列化后的数据所占用的空间依然较大。 Kryo序列化机制比Java序列化机制性能提高10倍左...

2019-06-10 22:13:43

阅读数 83

评论数 0

原创 spark常规性能调优四:广播大变量

默认情况下,task中的算子中如果使用了外部的变量,每个task都会获取一份变量的复本,这就造成了内存的极大消耗。一方面,如果后续对RDD进行持久化,可能就无法将RDD数据存入内存,只能写入磁盘,磁盘IO将会严重消耗性能;另一方面,task在创建对象的时候,也许会发现堆内存无法存放新创建的对象,这...

2019-06-10 22:12:02

阅读数 34

评论数 0

原创 spark常规性能调优三:并行度调节

Spark作业中的并行度指各个stage的task的数量。 如果并行度设置不合理而导致并行度过低,会导致资源的极大浪费,例如,20个Executor,每个Executor分配3个CPU core,而Spark作业有40个task,这样每个Executor分配到的task个数是2个,这就使得每个E...

2019-06-10 22:10:58

阅读数 30

评论数 0

原创 spark常规性能调优二:RDD优化

1.RDD复用 在对RDD进行算子时,要避免相同的算子和计算逻辑之下对RDD进行重复的计算,如图2-1所示: 2.RDD的重复计算 对图中的RDD计算架构进行修改,得到如图所示的优化结果: RDD架构优化 3. RDD持久化 在Sp...

2019-06-10 22:08:19

阅读数 44

评论数 0

原创 spark常规性能调优一:最优资源配置

Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。 资源的分配在使用脚本提交Spark任务时进行指定,标准的Spark任务提交脚本如代码清单2-1所示: 标准Spark提...

2019-06-10 22:06:01

阅读数 104

评论数 0

原创 yarn源码分析之CoarseGrainedExecutorBackend

1. CoarseGrainedExecutorBackend -- main:启动当前类的main方法 -- run -- onStart:点击图片中红线部分进行入,找到onstar -- ref.ask[Boolean](RegisterExecutor) ...

2019-06-10 20:19:11

阅读数 46

评论数 0

原创 yarn源码分析之ApplicationMaster

1. ApplicationMaster // 启动进程 -- main -- new ApplicationMasterArguments(args):参数对象的封装 // 创建应用管理器对象 -- new ApplicationMaster(am...

2019-06-10 20:02:03

阅读数 61

评论数 0

原创 yarn源码分析之SparkSubmit

1. SparkSubmit // 启动进程 -- main // 封装参数 -- new SparkSubmitArguments // 提交 -- submit // 准备提交环境 -- prepareSubmitEnvironme...

2019-06-10 19:10:11

阅读数 60

评论数 0

原创 httpclient的方式发送信息给服务器

public static void sendLogStream(String log){ try{ //不同的日志类型对应不同的URL URL url =new URL("http://logserver/log&qu...

2019-06-04 17:03:15

阅读数 69

评论数 0

原创 kafka 工具类(scala版)

object MyKafkaUtil { private val properties: Properties = PropertiesUtil.load("config.properties") val broker_list = properties.getProp...

2019-06-04 16:55:21

阅读数 215

评论数 0

原创 redis工具类(scala)

object RedisUtil { var jedisPool:JedisPool=null def getJedisClient: Jedis = { if(jedisPool==null){ // println("开辟一个连接池"...

2019-06-04 16:51:45

阅读数 155

评论数 0

原创 JVM之GC算法

引用计数法 应用于:微软的COM/ActionScrip3/Python等 a)如果对象没有被引用,就会被回收,缺点:需要维护一个引用计算器 复制算法 年轻代中使用的是Minor GC,这种GC算法采用的是复制算法(Copying) a)效率高,缺点:需要内存容量大,比较耗内存 b)使用...

2019-05-28 21:15:17

阅读数 45

评论数 0

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