大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

HDFS MapReduce

HDFS MapReduce hdfs的读写流程 hdfs写数据 1) 客户端通过DistributedFileSystem模块向namenode请求上传文件,namenode检查目标文件是否已存在,父目录是否存在。 2) namenode返回是否可以上传。 3) 客户端请求第一个block上传到哪几个datanode服务器上。 4) namenode返回3 个datanode节点,分别为dn1、dn2、dn3。 5) 客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2

.Net Core定时任务框架封装

Net Core定时任务框架封装   有段日子没有更新,写点东西冒个泡 。这篇文章过来讲个小东西,也是大家在日常开发中也经常需要面临的问题:后台定时任务处理。估计大家看到这句就已经联想到 QuartZ 等类似第三方类库了,不好意思,后边的事情和它们没有关系。这里要展开的是用. _jobExcutor = jobExcutor; else _timer.Change(_dueTime, _periodTime);Change(Timeout.Infinite, Timeout.Infinite);

6个Python性能优化技巧

6个Python性能优化技巧 Python是一门非常酷的语言,因为很少的Python代码可以在短时间内做很多事情,并且,Python很容易就能支持多任务和多重处理。 Python的批评者声称Python性能低效、执行缓慢,但实际上并非如此:尝试以下6个小技巧,可以加快Pytho应用程序。 1、关键代码可以依赖于扩展包 Python使许多编程任务变得简单,但是对于很关键的任务并不总是提供最好的性能。使用C

简单易懂的gulp入门配置

scss 匹配当前目录下所有scss文件 */.scss') // Gets all files ending with . 执行 gulp watch: gulp watch.png !!!但是改动文件之后,并没有实时刷新,终端也没有监听得到。找了很久没有找到方法解决,我最后把gulp的版本降回了3.9。 cnpm install gulp@3.9.1 然后改了gulpfile.js 文件的watch任务写法如下: gulp.task('watch', ['browserSync', 'sass'], function (){ gulp.watch('app/scss/**/*. var browserSync = require('browser-sync');

从入门到放弃的javaScrip——队列

// 声明了一个 WeakMap 类型的变量 items class Queue{ constructor(){ items.set(this, []) // 在 constructor 中,以this(Stack类自己引用)为键,把代表栈的数组存入 items } enqueue(element){ let q = items.get(this);added){ // 如果添加元素的 priority 值大于任何已有的元素,把它添加到队列的末尾就行了 items.push(queueElement); prorityQueue.enqueue('John',2); prorityQueue.enqueue('Mike',1); prorityQueue.enqueue('Jenny',1);

产品经理常用的用户研究方法

产品经理常用的用户研究方法 最近围绕交互设计和用户研究给小伙伴们做了几次分享,从写PPT到内部分享,我觉得收获最大的应该是我自己了。这就好像是:我从书上或者别人那里听到一个知识点,当时看懂了是一个层面,事后会用了又是一个层面,会用并把它写出来或者讲出来,又是一个层面,这其实就是一个刻意练习的过程。 产品经理为什么要掌握用户研究的技能 产品

Java线程入门第三篇

Java线程入门第三篇 Java内存模型(jmm) Why:保证多线程正确协同工作 看图说明: 文字解释:线程a和线程b通信过程,首先线程a把本地内存的共享变量更新到主内存中,然后线程b去读取主内存的共享变量,最后更新到自己的本地内存中 JMM涉及的特性以及规则 特性 1.原子性:操作不可中断,即一个线程操作不会被另一个线程影响 特例:在32的操作系统中,long型不是原子性 2.可见

Java并发编程:Java线程池核心ThreadPoolExecutor的使用和原理分析

} /* * 如果执行到这里,有两种情况: * 1. 线程池已经不是RUNNING状态; * 2. 线程池是RUNNING状态,但workerCount = corePoolSize并且workQueue已满。 * 这时,再次调用addWorker方法,但第二个参数传入为false,将线程池的有限线程数量的上限设置为maximumPoolSize; * 如果失败则拒绝该任务 */elseif(! Worker w = null; //r为null,说明time为true,超时了,把timedOut也设置为truetimedOut =true;

JMX的用处及用法

} 在使用 Standard Mbean 作为数据传输对象的情况下这个接口的定义是必须的, 并且接口名称必须以“MBean”这个单词结尾。 二、实现具体的MBean public class ServerInfo implements ServerInfoMBean { public int getExecutedSqlCmdCount() { return Dbutil.getExecutedSqlCmdCount(); ObjectName name = new ObjectName("serverInfoMBean:name=serverInfo"); void printString(String fromJConsole);

支付服务架构

支付服务架构 背景 目前我就职于大树网络科技,主要的产品是给信用优质都用户提供线上都信用贷款。而我所在的组是支付组,主要对接第三方支付。支付用于放款和还款两个操作,本次主要讲还款(其实两个都差不多)。目前还款主要有一下这几种方式: 用户通过APP主动还款 系统发起定时扣款任务 催收人员通过内部作业系统,发起扣款 大树没有支付牌照,只能通过第三

互联网分布式任务调度工具

互联网分布式任务调度工具 分布式调度在互联网企业中占据着十分重要的作用,尤其是电子商务领域,由于存在数据量大、高并发的特点,对数据处理的要求较高,既要保证高效性,也要保证准确性和安全性,相对比较耗时的业务逻辑往往会从中剥离开来进行异步处理。 接下来,推荐几款优秀和极具潜力的国产开源分布式任务调度系统,希望能对大家有所帮助。 1、opencron ope

如何建立产品需求池?

如何建立产品需求池? 作为产品汪,我们都会获取来自老板、用户、市场、竞品等方面源源不断的需求,如果我们把这些需求直接丢给开发,产品经理肯定会被包括开发的公司其他工种群殴,从此躲在角落瑟瑟发抖,没有了话语权。 所以,我们在工作中要建立自己的“需求池”,让需求宽进严出,以保证开发的需求都是有助于产品发展的。而如何有效利用需求池进行需求管

分布式异步任务队列神器-Celery

/redis-server . task events: OFF (enable -E to monitor tasks in this worker) --- ***** ----- -------------- [queues] .taskB.delay() #同时发起三个任务 #也可以使用下面的方法调用task from myCeleryProj.app import app app.send_task(myCeleryProj.tasks.add,args=(4,5) app.send_task(myCeleryProj.tasks.taskA) app.send_task(myCeleryProj.tasks.taskB) (完) 如有需要请关注微信公众号 somenzz,回复 celery 下载源码。 扫码关注

webmap搭建使用

webmap搭建使用 概述 webmap是一个使用django写的nmap的web控制面板,我觉得这东西没什么屌用就是很炫,唯一牛逼的东西就是可以把扫描结果导出成pdf还有计划任务扫描的功能,现在还是很不完善的,但是看好这东西哦 项目主页 https://github.com/Rev3rseSecurity/WebMap.git 安装使用 直接一个docker-compose文件搞定,废话不多说直接上 version: "3" services: webmap: image: "rev3rse/webmap" container_name: "webmap

ubuntu下redmine的安装

ubuntu下redmine的安装 Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理系统和BUG跟踪系统,例如Perforce、SVN、CVS、TD等等。这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档

TLDR 页:Linux 手册页的简化替代品

TLDR 页:Linux 手册页的简化替代品 tldr page ubuntu 在终端上使用各种命令执行重要任务是 Linux 桌面体验中不可或缺的一部分。Linux 这个开源操作系统拥有丰富的命令,任何用户都无法全部记住所有这些命令。而使事情变得更复杂的是,每个命令都有自己的一组带来丰富的功能的选项。 为了解决这个问题,人们创建了手册页(man page),(手册 —— man 是 manual 的缩写)。首先,它是

如何成为一名懒惰的系统管理员

如何成为一名懒惰的系统管理员 我们是聪明地工作,而不是刻苦工作,但仍能把工作做好。 Linux 的系统管理员的工作总是复杂的,并且总是伴随着各种陷阱和障碍。做每件事都没有足够时间,当你想完成那个半秃头老板(PHB)给的任务时,他(只会)不停在你的后面盯着,而最核心的服务器总是在最不合时宜的时间点崩溃,问题和挑战比比皆是。而我发现,成为一名懒惰的

为什么要使用操作系统

为什么要使用操作系统 为什么要使用操作系统 从51单片机开始使用简单的逻辑系统,慢慢的开始接触ucos、FreeRTOS这类小型的操作系统,到现在开始接触Linux这种大型的开源操作系统,是否有想过为什么要使用操作系统呢?以前简单的逻辑关系不是挺好的,为什么要搞定越来越复杂了。 引入例子 在博客上看到一个例子觉得很好,一步一步引导我们进行思考为什么药使用操作系

ELK定时删除30天前日志

ELK定时删除30天前日志 http://127.0.0.1:9200/_cat/indices?v| grep $DATE | awk -F '[ ]+' '{print $3}' /tmp/elk.log for elk in `cat /tmp/elk.log` do curl -XDELETE "http://127.0.0.1:9200/$elk" done 二:加入到定时任务 # crontab -e #每天凌晨1点定时清理elk索引 00 01 * * * bash /server/scripts/elk.sh /dev/null 注意:保证crond服务是启动的 [root@server scripts]# service crond status crond (pid 1999) is running...