自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(244)
  • 资源 (6)
  • 收藏
  • 关注

原创 模仿mnist数据集制作自己的数据集

模仿mnist数据集制作自己的数据集最近看深度学习,用TensorFlow跑教程里的模型,发现教程里大多都是用mnist和cifar这两个数据集来演示的。想测试自己的数据集看看初步效果,于是就想套用现有的模型,将自己的数据集做成和mnist或cifar数据集格式一模一样的格式。然后就发现Tensorflow里没有现成的方法可以将图片转换成类似于mnist和cifar数据集格式的方法。于是就百度

2017-08-05 20:18:28 44376 258

原创 (超详细)读取mnist数据集并保存成图片

mnist数据集介绍、读取、保存成图片1、mnist数据集介绍:MNIST数据集是一个手写体数据集,简单说就是一堆这样东西 MNIST的官网地址是 MNIST; 通过阅读官网我们可以知道,这个数据集由四部分组成,分别是 ;也就是一个训练图片集,一个训练标签集,一个测试图片集,一个测试标签集;我们可以看出这个其实并不是普通的文本文件或是图片文件,而是一个压缩文件,

2017-08-05 11:38:00 41313 34

原创 模仿CIFAR-10数据集制作自己的数据集(亲测有效)

模仿CIFAR-10数据集制作自己的数据集(亲测有效)

2017-07-20 22:21:18 7952 10

转载 GitHub下载慢?可以试试下面的方法提升速度

转载自:https://blog.csdn.net/hcy1026/article/details/107644836让你的GitHub下载飞速提升到2M/s以上2020年7月27日整理发布多种GitHub加速方式!转载自:https://seniortesting.club/blog/2020/How-To-Speed-Github.html1. GitHub 镜像访问这里提供两个最常用的镜像地址:https://github.com.cnpmjs.org https://h.

2020-12-14 15:09:32 741

原创 LeetCode——回文数

题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?题解解题思路一看到这个题目第..

2020-10-26 11:49:11 504

原创 LeetCode——查找常用字符

题目给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:["bella","label","roller"]输出:["e","l","l"]示例 2:输入:["cool","lock","cook"]输出:["c","o"]提示:1 <= A.length <=

2020-10-15 20:29:18 375

原创 LeetCode——两两交换链表中的节点

题目给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.题解根据题目信息“两两交换”我们知道,要有两个节点才能进行交换操作,如果链表只有一个节点或为空链表,则不需要进行交换。这是我们的终止条件。解题思路方法一:递归我们可以将链表两两一组进行拆分,每组内进行节点交换,交换后返回头节点(第一个..

2020-10-13 15:16:39 313

原创 LeetCode——二叉搜索树的最小绝对值

题目给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入:1\3/2输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。题解从题目中可以获得以下几条信息:二叉树,且为二叉搜索树,根据二叉搜索树的定义可知二叉树有序 节点为非负值解题思路中序遍历方法 首先我们先分析另外一个问题,如何求一个...

2020-10-12 18:40:53 409

原创 LeetCode——四数之和

题目给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1,0, 0, 1],[-2, -1, 1, 2],[-2,0,...

2020-10-12 08:20:14 507

原创 LeetCode——三数之和

题目给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]题解从题目中可以获取以下几条信息: 数组元素为int类型,无序,数组元素可重复 找到所有满...

2020-10-09 15:44:40 296

原创 LeetCode——两数之和

题目给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]题解从题目中可获取以下几条信息:数组元素为整数,即int类型,其范围为[-2^31, 2^31-1]...

2020-09-29 16:51:32 213

原创 一分钟了解什么是RPC

前言 在介绍RPC之前,先介绍另外一个概念:进程间通信(IPC,Inter-Process Communication)IPC:是指至少两个进程或线程间传送数据或信号的一些技术或方法。 我们知道进程是计算机系统分配资源的最小单位。每个进程都有自己独立的系统资源,彼此相互隔离。为了使不同的进程之间能够互相访问资源并进行协调工作,于是就有了进程间通信(IPC)。进程间通信技术包括:消息传递、同步、共享内存和远程过程调用。 由于进程可以运行在同一台机器上也可以运行在通过网络连接的...

2020-09-16 17:51:26 2101

原创 MapReduce实现二次排序

默认情况下,Map输出的结果会按照key进行排序,但在实际的应用中,有时间我们不仅要对key进行排序,同时还要对value进行排序,这时候就要用到mapreduce中的二次排序。一、 二次排序原理分析 我们对二次排序分为以下几个阶段:(1)Map起始阶段 在Map阶段,通过job.setInputFormatClass()定义的InputFormat,将输入的数据集切分成小的split,同时InputFormat提供一个RecordRead...

2020-09-09 18:50:31 1387

原创 MapReduce中实现全局排序方法

实现MapReduce全局排序有三种方法:使用一个reduce实现全局排序 自定义分区函数实现全局排序 使用TotalOrderPartitoner进行全局排序使用一个reduce实现全局排序 我们知道,MapReduce默认情况下只保证同一个分区中的key是有序的,不能保证全局有序。如果我们将所有的数据都用一个reduce来处理,就可以实现全局有序。缺点:此方法的缺点也很明显,所有数据发送到一个reduce进行排序,不但不能充分利用集群的分布式资源,在数据量很大的情况...

2020-09-09 18:37:10 1893

原创 MapReduce中的排序

哪些阶段存在排序1. 在MapReduce的shuffle阶段共有三次排序,分别是:Map的溢写(spill)阶段:根据分区及key进行快速排序; Map合并溢写文件阶段:将同一个分区的多个溢写文件经过多轮归并排序最终合并为一个文件; Reduce输入阶段:将同一个分区,不同map task的数据文件进行归并排序2. 在MapReduce的整个过程中,默认对输出的KV键值对按照key进行快速排序 Map输出排序:即map溢写排序 reduce输出排序:reduce输出时会对KV

2020-09-09 18:33:58 3230

原创 Hadoop中的MapReduce的shuffle过程及调优

概述Shuffle,即混洗、洗牌,顾名思义就是对数据打乱重新分配。Shuffle发生在Map输出至Reduce的输入过程之间。主要分为两部分Map任务输出的数据进行分组、合并、排序,并写入本地磁盘 Reduce任务拉取数据进行合并、排序Shuffle过程Map端Map端输出时,会先将数据写入内存的环形缓冲区,默认大小100M,可通过参数设置 当缓冲区的内容大小达到阈值(默认0.8,可通过参数设置),便有一个后台线程将写入缓冲区的数据溢写到磁盘。溢写的过程中Map任务..

2020-09-09 11:48:41 422

原创 Hadoop中的ReduceTask工作机制

1.设置Reduce Task并行度(个数)与Map Task的并行度有切片决定不同,Reduce Task的并行度可手动设置job.setNumReduceTasks(20); // 默认是12.ReduceTask工作机制(1)Copy阶段:Reduce Task从各个Map Task上远程拷贝一片数据,并针对某一个片数据,如果其大小超过一定阈值,则写入磁盘中,否则直接放到内存中(2)Merge阶段:在远程拷贝数据的同时,Reduce Task启动两...

2020-09-09 11:45:16 330

原创 Hadoop中的MapTask工作机制

1.并行度决定机制2.MapTask工作机制(1)Read阶段:Map Task通过用户编写的RecordReader,从输入的inputSplit中解析出一个个的key/value(2)Map阶段:将解析出的key/value交给用户编写的map()函数处理,并产生一系列新的key/value(3)Collect阶段:在用户编写的map()函数处理完成后,通常会调用OutputCollector.collect()将结果输出。在该函数内部,会将生成的key/value进..

2020-09-09 11:40:30 799

原创 MapReduce中的Combiner

前言 MapReduce框架使用Mapper将数据处理成一个个的<key, value>键值对,然后在网络节点间对其进行整理(shuffle),最后使用Reducer处理数据并输出。分析 从上面的过程中,我们可以分析出两个性能瓶颈:网络传输压力:比如我们有100亿条数据,Mapper就会生成100亿条键值对在网络间传输。如果我们只是对数据求最大值,那么很明显每一个Mapper只需要输出它所处理的数据中的最大值即可。这样不仅能减少网络传输压力,同时也能提升程序处理...

2020-09-09 11:25:30 718

原创 FileInputFormat切片机制 VS CombineTextInputFormat切片机制

1.FileInputFormat切片机制默认切片机制按照文件内容长度进行切片 默认大小等于block大小 切片时不考虑数据集整体性,而是逐个针对每个文件单独切片举例:两个文件File1.txt 200Mfile2.txt 20M切片信息如下:File1.txt.split1—— 0~128File1.txt.split2—— 128-200File2.txt.split1—— 0-20切片参数配置切片的计算逻辑:Math.max(minSize, ...

2020-09-08 20:49:53 364

原创 Hadoop中的序列化Writable

什么是序列化序列化就是把内存中的对象转化成字节序列(或者其他传输协议)以便于存储(持久化)和网络传输 反序列化就是将字节序列(或者其他传输协议)转换成内存中的对象序列化的目的序列化是为了便于网络间的数据传输Java序列化 VS Hadoop序列化 Java序列化(Serializable)是一个重量级的序列化框架,对象被序列化后会附带很多额外的信息(各种校验信息、header、继承体系等),不便于在网络中高效传输。Hadoop序列化(Writable)具有如下...

2020-09-08 20:42:46 473

原创 Hadoop为MapReduce提供的分布式缓存机制

概述 Hadoop为MapReduce框架提供了一种分布式缓存机制,可用于Job、Map Task或Reduce Task之间的数据共享。分布式缓存机制会将需要缓存的文件分发到各个执行任务的子节点的机器中,这样各个节点就可以自动读取本地文件系统上的数据进行处理使用方式 添加分布式缓存文件 旧版本中DistributedCache已经被注解为过时,使用新版API方式如下// 不同文件类型的添加方法job.addArchiveToClassPath(archive)...

2020-09-07 20:43:51 718 1

原创 MapReduce的容错机制(二)

前言 现实中,用户代码错误、进程崩溃、机器故障等等都可能导致MapReduce程序失败,但是Hadoop最主要的好处之一就是它能处理此类故障并完成作业。失败 经典MapReduce中的失败 YARN中的失败 YARN中的失败主要考虑三种实体的失败:任务、application master、节点资源管理器和资源管理器(1)任务失败 任务运行失败类似于经典MapReduce中的运行任务失败。JVM的运行时异常和突然退出被反馈给applicati...

2020-09-07 20:36:05 427

原创 MapReduce的容错机制(一)

前言 现实中,用户代码错误、进程崩溃、机器故障等等都可能导致MapReduce程序失败,但是Hadoop最主要的好处之一就是它能处理此类故障并完成作业。失败经典MapReduce中的失败 YARN中的失败经典MapReduce中的失败主要考虑三种失败模式:运行任务失败、tasktracker失败以及jobtrack失败(1)运行任务失败 子任务失败:最常见的就是map或reduce中用户代码抛异常,此时子任务JVM进程会在退出前向其父tasktracke...

2020-09-07 20:34:12 1212

原创 Scala循环中的break和continue

一、停止循环方式一:使用returnfor ( i <- 1 to 10) { if (i == 5) { return // return终止循环并返回值,不建议在main方法中使用 } println(i)}方式二:使用Boolean类型变量实现// while 循环var flag = truevar n = 0while (flag) { println(n) n += 1 if (n == 6) { flag =.

2020-08-07 17:37:00 786

原创 spark SQL读取ORC文件从Driver启动到开始执行Task(或stage)间隔时间太长(计算Partition时间太长)且产出orc单个文件中stripe个数太多问题解决方案

具体请参考:https://blog.csdn.net/aijiudu/article/details/78616064补充:如果以上方式并不能大幅缩短时间,可确认下是否ORC文件个数过多,如果太多的话建议通过合并处理减少ORC文件个数,这样能大幅减少等待时间(可能跟spark读取ORC头文件信息有关,如果个数太多,时间肯定会长)...

2020-08-07 17:04:55 390

原创 Spark操作——行动操作(二)

集合标量行动操作 存储行动操作 存储行动操作 saveAsTextFile(path: String): Unit saveAsTextFile(path: String, codec: Class[_ <: CompresssionCodec]): Unit 将RDD以文本文件的格式保存到文件系统中,codec参数用于指定压缩类型 saveAsSequenceFile(path: String, codec: Option[Class[_ &...

2020-05-26 10:08:00 243

原创 Spark操作——行动操作(一)

集合标量行动操作 存储行动操作 集合标量行动操作 first(): T 返回RDD中的第一个元素,不进行排序 count(): Long 返回RDD中的元素个数 reduce(f:(T, T) => T): T 根据映射函数f,对元素进行二元计算 collect(): Array[T] 将RDD转换为数组 take(num: Int): Array[T] 获取RDD中下标从0—num-1的元素,不进行排序...

2020-05-23 22:29:52 768

原创 Spark操作——控制操作

cache(): RDD[T] persist(): RDD[T] persist(level: StorageLevel): RDD[T] cache和persist操作都是对RDD进行持久化,其中cache是persist采用MEMORY_ONLY存储级别时的一个特例,scala> var rdd = sc.textFile("/Users/lyf/Desktop/data.txt")rdd: org.apache.spark.rdd.RDD[String] =..

2020-05-23 16:05:17 230

原创 Spark学习笔记——转换操作(四)

基础转换操作 键值转换操作 键值转换操作 cogroup[W](other: RDD[(K, W)]): RDD[(K, (Iterable[V], Iterable[W]))] cogroup[W](other: RDD[(K, W)], numPartitions: Int): RDD[(K, (Iterable[V], Iterable[W]))] cogroup[W](other: RDD[(K, W)], partitioner: Partition...

2020-05-23 14:56:17 237

原创 Spark操作——转换操作(三)

基础转换操作 键值转换操作 键值转换操作 partitionBy(partitioner: Partitioner):RDD[(K,V)] 将原来的RDD根据给定的Partitioner函数进行重新分区。scala> val rdd = sc.makeRDD(Array((1,"A"),(2,"B"),(3,"C"),(4,"D")), 2)rdd: org.apache.spark.rdd.RDD[(Int, String)] = ParallelColle...

2020-05-23 10:47:54 456

原创 Spark操作——转换操作(二)

基础转换操作 键值转换操作 基础转换操作 mapPartitions[U](f:(Iterator[T]) => Iterator[U], preservesPartitioning: Boolean=false): RDD[U] mapPartitions操作和map操作类似,区别在于映射函数的参数由RDD中的每一个元素变成了RDD中的每一个分区的迭代器,可以理解为map操作中对RDD中的所有元素应用映射函数,mapPartitions操作是对RDD中每个分...

2020-05-15 18:48:54 429

原创 Spark操作——转换操作(一)

基础转换操作 键值转换操作 基础转换操作 map[U](f:(T)=>U):RDD[U] 对RDD中的每个元素都应用一个指定的函数,以此产生一个新的RDDscala> var rdd = sc.textFile("/Users/lyf/Desktop/test/data1.txt")rdd: org.apache.spark.rdd.RDD[String] = /Users/lyf/Desktop/test/data1.txt MapPartitions...

2020-05-15 16:59:35 715

原创 Spark操作——创建操作

并行化创建操作 外部存储创建操作 并行化创建操作 parallelize[T](seq: Seq[T], numSlices: Int=defaultParallelism):RDD[T] # 并行化操作1到10数据集,根据能启动的Executor数据来进行切分多个分区,每个分区启动一个任务来进行处理scala> var rdd = sc.parallelize(1 to 10)rdd: org.apache.spark.rdd.RDD[Int] = Par...

2020-05-15 16:51:45 356

原创 Filebeat安装部署教程

简介Filebeat是一个轻量级的日志收集工具,安装在客户端,资源消耗少。Filebeat监控并收集指定路径下的日志文件信息,并将收集到的日志数据发送到Elasticsearch或者Logstash。Filebeat工作示意图 Filebeat启动后会监控一个或多个目录下的日志文件 对于监控的每一个文件,都会启动一个Harvester进程 Harvester负责监控日志文件内容,收集新增的日志数据并将其发送到libbeat libbeat会将收到的所有数据进行

2020-05-14 15:15:21 2176

原创 Redis如何禁用高危命令

Redis如何禁用高危命令高危命令禁用或重命名对于生产环境中使用的Redis一定要禁用一些高危命令,避免因误操作而造成的巨大损失。高危命令1. KEYS # 虽然该命令的模糊匹配功能很强大,但只适用于小数据量,当数据量很大时会导致Redis锁住及CPU飙升,建议禁用或重命名 2. FLUSHDB # 删除Redis中当前所在数据库中的所有记录,并且此命令不会执行失败...

2020-03-25 17:07:33 1629

原创 Redis未授权访问漏洞介绍及修复方案

Redis 漏洞介绍1. 什么是Redis未授权访问漏洞Redis 暴露在公网(即绑定在0.0.0.0:6379,目标IP公网可访问),并且没有开启相关认证和添加相关安全策略情况下会被攻击者利用,比如未添加防火墙规则来避免其他非信任IP访问等。2.有哪些危害 攻击者利用 Redis 未授权访问漏洞读取 Redis 数据库中的数据,可能导致敏感信息泄露或恶意执行 flushall...

2020-03-25 16:55:55 2171

原创 Zookeeper quota管理

Zookeeper的quota机制可以设置节点个数及空间大小语法setquota -n|-b val path # 设置节点quota信息listquota path # 获取节点quota信息deletequota # 删除节点quota信息注:-n 表示最大子节点个数(包括节点本身) -b 表示该...

2019-10-14 19:00:40 743

原创 Zookeeper ACL机制

权限介绍Zookeeper权限管理(ACL)支持5种权限 CREATE:创建子节点 READ:获取本节点数据、节点信息及子节点列表 DELETE:删除子节点 WRITE:设置本节点数据 ADMIN:设置本节点权限 权限设置语法setAcl [-s] [-v version] [-R] path acl注:-s 表示节点为顺序...

2019-10-14 18:05:18 1086

原创 Supervisor配置文件浅析

官方文档:http://supervisord.org/configuration.htmlsupervisor的配置文件通常命名为supervisord.conf,启动时若没有使用参数-c指定参数文件,则会在本地按照一定的顺序查找名为supervisord.conf的文件,查找目录顺序:1. $CWD/supervisord.conf2. $CWD/etc/supervisord.c...

2019-10-14 17:47:11 414

word_count.avro

MapReduce读取Avro序列化文件测试数据,文件中存储了几个单词作为测试数据供读取

2018-11-17

读取自己的mnist数据集代码mnist.py

模仿mnist数据集制作自己的数据集,并读取自己的数据集

2017-11-27

读取mnist数据集并保存成图片代码

从二进制文件中读取mnist数据集并将其保存为图片格式

2017-08-05

模仿mnist数据集制作自己的数据集

模仿mnist数据集格式制作自己的数据集

2017-08-05

模仿CIFAR数据集格式制作自己的数据集代码(修改版)

模仿CIFAR数据集格式制作自己的数据集代码(修改版)

2017-07-21

模仿CIFAR数据集格式制作自己的数据集代码

模仿CIFAR数据集格式制作自己的数据集

2017-07-20

空空如也

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

TA关注的人

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