自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 VS实现Cuda/C++的远程编译运行

VS实现Cuda/C++的远程编译运行最近想做一些论文代码的复现,需要用到写一些Cuda程序,由于自己用的电脑没有N卡,只能用服务器上的GPU,但又不想在服务器上调试,就想通过本地编写代码,在服务器上编译运行。查了一些资料,发现C++的远程编译运行比较容易,但是Cuda程序却很少有资料,现有的资料都是用Nsight做远程的Debug,还需要安装Nsight客户端,端口转发什么的,比较麻烦。经过研究,成功实现需求。前提本地已经安装好Visual studio,并且通过Remote-ssh插件配置好远程连

2021-07-12 21:30:46 1412 1

转载 max-min fairness 最大最小公平算法

我们总会面临这样的问题,需要给一组用户分配一些稀缺资源,站在资源分配者的角度,他们具有等价的权利获取资源,但实际上,一些用户可能获取较少的资源就能够满足需要,这样看来,他们对资源的获取又不是完全等价的,似乎不适合去平分资源,因此就有了最大最小公平算法。最大最小公平算法定义如下(不带权):1、资源按照需求递增的顺序进行分配;2、不存在用户获得的资源超过自身的需求;3、对于未满足的用户,等价分享剩余资源;算法实现逻辑(不带权):首先假定用户集合有n个用户,1到n,他们对资源的需求已经排序完毕,满足s

2020-11-18 15:45:02 3975 1

转载 final、finally与finalize三者的区别

转自:final、finally与finalize三者的区别 摘要:final为常量关键字,而finally为异常关键字,finalize为object自带方法名。看到这个题目,感觉像是高中题目一样。出题者用心良苦啊,将这三个联系起来,考察java基本功。在实际中finalize这个用得最少,而其他两个都很熟悉了。但若想流畅的表达三者区别,还需自己好好理一理。 一、final这个关键字在Java中代表不可改变的,可用来修饰类,方法,变量。 对class来说,用法如:final class A{}代表类

2020-09-16 16:42:22 476

转载 23种设计模式详解(复习用)

设计模式(Design Patterns)——可复用面向对象软件的基础一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。用一个图片来整体描述

2020-09-02 10:58:53 952

原创 一篇读懂Hive优化

Hive优化一、hive参数优化1、map数优化2、reduce数优化3、Fetch抓取(Hive可以避免进行MapReduce)4 、模式选择 1)本地模式 ...

2020-09-01 14:27:09 228

转载 Kafka原理详解(复习用)

KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/S...

2020-08-26 10:04:18 646

原创 Mysql经典问题总结

Mysql经典100问索引1.什么是索引?先来个百度百科解释:在关系型数据库中,索引是一种单独的、物理的对数据库表中一列或者多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。这解释说的不是给人看的,说人话:索引是一种数据结构,就像一本书的目录,能够帮助我们快速的进行查找。2.索引是个什么样的数据结构?索引的数据结构和具体的存储引擎实现有关,在Mysql种使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储

2020-08-24 16:23:13 335

原创 count(distinct colA)与group by

在传统关系型数据库中,group by与count(distinct)都是很常见的操作。count(distinct colA)就是将colA中所有出现过的不同值取出来,相信只要接触过数据库的同学都能明白什么意思。count(distinct colA)的操作也可以用group by的方式完成,具体代码如下:select count(distinct colA) from table1;select count(1) from (select colA from table1 group by col

2020-08-19 13:34:33 163

原创 谈一谈抽象类和接口的区别

抽象类抽象类产生编写一个类时,会给该类定义一些方法,这些方法用来描述功能和具体的实现方式,但是分析事物时,发现共性,就会出现向上抽取,方法声明相同,但是方法功能主题不同,就可以向上抽取,之抽取方法名,不抽取方法主体,这个方法就是抽象方法。抽象方法必须被abstract关键字修饰,被abstract关键字修饰的类就是抽象类。抽象类&抽象方法的定义抽象方法格式定义:public abstract 返回值类型 方法名(参数);抽象类定义的格式:abstract class 类名{ 类体

2020-08-18 20:45:56 154

原创 Class.forName()可以没有返回值吗?

最近在看数据库连接池源码的时候遇到了一个问题: /*构造方法,做一些初始化工作*/ private ConnectionPool() { pool = new Vector<Connection>(poolSize); for (int i = 0; i < poolSize; i++) { try { Class.forName(driverClassName

2020-08-18 08:33:20 558 1

原创 搞清楚死锁

死锁定义一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象成为进程死锁。为何死锁资源数量有限、锁和信号量错误使用活锁和饥饿活锁:活锁区别与死锁,死锁是每个进程都得不到CPU时间片不能上CPU,而活锁是先加锁再轮询的,可以获取CPU时间片执行,但是由于不能获得到资源,等待CPU时间片用完后,就下CPU。整体来看,没有阻塞但是也没有实质性进展。饥饿:饥饿是由资源分配策略导致的某一进程长时间不能获取CPU时间片运行,这种现象叫做饥饿。死锁必要条件互斥

2020-08-16 21:58:16 182

原创 进程同步互斥以及通信机制

进程之所以会产生同步和互斥问题,一切源于进程的并发执行。如果是单个进程的话,是不可能产生互斥和同步问题的。一个最经典的例子就是ATM问题:进程互斥由于各个进程要求使用共享资源,而这些资源需要排他性使用,各个进程之间竞争使用这些资源,这一关系称为进程互斥。临界资源:系统中某些资源一次只允许一个进程使用临界区:各个进程中对某个临界资源实施操作的程序片段临界区使用原则:没有进程在临界区时,想进入临界区的进程可以进入不允许两个进程同时处于临界区临界区外运行的进程不得阻塞其他进程进入临界区不得

2020-08-16 20:37:50 936

原创 CPU调度算法

最近在看操作系统,总结一下CPU的调度算法。在介绍CPU调度算法之前,首先讨论设计调度算法是需要考虑的几个问题:1.进程控制块PCB中需要记录哪些信息2.进程优先级以及就绪队列的组织(动态优先级还是静态优先级)3.抢占式调度与非抢占式调度4.I/O密集型与CPU密集型进程5.时间片(时间片如何选择)批处理系统中的调度算法先来先服务(FCFS)方式:顾名思义,按照进程就绪的先后顺序使用CPU,不可抢占优点:公平,实现简单缺点:长进程后面的短进程需要等待很长时间,不利于用户体验改变调度

2020-08-16 19:03:01 1432

原创 进程与线程模型

最近在面试,进程与线程模型几乎必问,所以就想来整理整理。定义进程:具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位。线程:是进程中的一个运行实体,是CPU调度的单位。前几天面试的时候,面试官问我进程是资源调度的独立单位,线程是CPU调度的基本单位,难道CPU不属于资源吗?我当时就蒙了,好像是啊。后来我专门查了一下。注意:这两个说法都没有毛病,只是线程是后来引入的,线程继承了进程是CPU调度单位的属性,但是进程仍然是资源的拥有者,线程不拥有资源,而是和处于同一进

2020-08-16 18:10:53 939

原创 CDH环境下HDFS挂载多硬盘

最近在公司实习,使用CDH搭环境,添加HDFS服务发现没有挂载全部的硬盘,查看节点硬盘挂载情况发现:硬盘被挂载到了所以目录下,而CDH使用了root用户,所以挂载到/home目录下的硬盘就没有被hdfs检查到,无法挂载到HDFS上。HDFS可以挂载多目录,所以在hdfs目录下创建dfs目录:mkdir -p /home/dfs并将/home/dfs配置到dfs.datanode.data.dir中:注意,这里我是将之前的HDFS服务删除了,然后添加目录重新添加HDFS服务,启动服务的时候会格

2020-08-14 11:40:29 803

原创 TCP如何保证可靠性传输

TCP报文的格式TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接序号(4字节=32位):37 59 56 75用来标识TCP发端向TCP收端发送的数据字节流确认序号(4字节=32位):由于该报文为SYN报文,ACK标志为0,故没有确认序号(ACK标志为1时确认序号才有效)TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1一旦连接建立,该值将始终发送(同ACK标志)头部长度:该字段占用4位,用来表示报文首部的长度,单位

2020-08-13 14:48:13 1127

原创 Spark的shuffle机制

Spark的shuffle机制最近在面试大数据开发工程师,面某B公司的时候问到了Spark的shuffle机制,并且问和MR的shuffle有什么样的区别,当时答得不太好,决定好好研究这个玩意儿,网上讲的很多,下面我就把我的理解做一下总结。什么时候shuffle在解释shuffle机制之前,首先要搞明白什么时候shuffle,那就得讲讲什么是shuffle了,咱们先把英语直译一下:洗牌。玩过扑克的兄弟肯定都不陌生,或者讲得更通俗点,就是打乱顺序。但是在大数据计算里,好像和这个过程有点不太相同。废话不多

2020-08-08 11:29:00 575

原创 MR提交job到YARN的流程

MR提交job到YARN的流程(1)首先client里执行一个MapReduce程序,这个程序运行在client端的JVM里,在main方法中最后有一个job.waitForCompletion(true)方法,当执行这个方法后会触发job.submitJob方法,准备向RM提交一个application。(2)RM接受到请求后,会为这个application生成一个application +id编号,并且client会检查输出路径是否已存在,输入输出路径信息是否齐全。不管检查有问题与否,RM都会给c

2020-08-06 13:46:18 923

原创 大数据开发之路—3

大数据开发之路—3之前记录了大数据开发环境的部署过程,下面就可以介绍大数据开发工具的一些工作机制和工作原理。今天首先介绍大数据开发中大家耳熟能详的工具——Hadoop。Hadoop作为一个最早开始流行的大数据开发工具,它能够做些什么呢?当然要看大数据开发需要干什么,简单来讲大数据主要做两件事情,一是海量数据的存储,二是海量数据的运算。那么Hadoop恰好就能够做这两件事情。为了能够满足以上两种需求,Hadoop的开发者设计以下几个核心的组件:HDFS:分布式文件系统,实现将文件分布式地存储在多台物理分散

2020-06-06 01:12:45 224

原创 大数据开发之路--2

大数据开发之路–2第一篇博客简单记录了HDFS的搭建,有点划水了。因为Hadoop版本上到2.0以后加入了一个非常重要的工具–统一资源管理YARN。这也是我研究项目的最重要的一个工具之一。所以再简单补充一下YARN的配置并介绍Hadoop的其他相关组件。

2020-04-30 11:20:09 322

原创 大数据开发之路—1

研究生大部分时间都在搞分布式计算,最近开始准备秋招了,想找一找大数据开发试试水。那就开始从头捋一遍吧,把之前整的hadoop、spark、zookeeper等等全部重新整理一遍,顺便写个博客记录一下。

2020-04-26 22:20:00 236

空空如也

空空如也

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

TA关注的人

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