如何快速上手一款开源软件
最近一篇比较火的文章中提到,techcrunch上有一篇文章,列举了当前最火的开源软件列表https://techcrunch.com/2017/04/07/tracking-the-explosive-growth-of-open-source-software/THEBATTERYOPEN-SO
通俗说Spark
前面有一篇文章形象解析了Yarn的工作原理,这一篇文章通俗解析一下当前最火的大数据框架Spark。通俗说基于Yarn的Map-Reduce过程听说过Spark的人常听到他强于Hadoop的原因是他是基于内存的计算,因而比Hadoop快,可是数据量如此之大,怎么可能都放在内存里面呢?当然不是所有的都在
通俗说Spark
前面有一篇文章形象解析了Yarn的工作原理,这一篇文章通俗解析一下当前最火的大数据框架Spark。通俗说基于Yarn的Map-Reduce过程听说过Spark的人常听到他强于Hadoop的原因是他是基于内存的计算,因而比Hadoop快,可是数据量如此之大,怎么可能都放在内存里面呢?当然不是所有的都在
容器平台选型的十大模式:Docker、DC/OS、K8S谁与当先?
本文根据刘超在DBAplus社群第122期线上分享整理而成无论是在社区,还是在同客户交流的过程中,总被问到底什么时候该用Docker?什么时候用虚拟机?如果使用容器,应该使用哪个容器平台?显而易见,我不会直接给大家一个答案,而是希望从技术角度进行分析具体的场景,例如客户是大公司还是小公司,将部署小集
图解Linux系统调用
在Linux下面,我们经常调用系统API来完成内核的操作,例如调用open打开一个文件。这个过程看似简单,其实已经包括了一次从用户态到内核态,然后由内核态返回用户态的过程。当然用户不会直接调用系统调用,而是调用glibc中的函数open打开文件。在glibc中维护了一张表格,在syscalls.li
图解Linux的Socket
在Linux里面,可通过创建Socket,使得进程之间进行网络通信,可通过TCP或者UDP的方式进行交互。无论是面向连接的TCP,还是面向非连接的UDP,都要首先调用socket函数来创建一个套接字,对应的内核,也是一个文件。在用户态调用socket函数,调用的系统调用是:asmlinkagelon
通俗说基于Yarn的Map-Reduce过程
先看全图是基于Yarn的Map-Reduce运行过程,下面通俗的说一下这个过程。从前有一个老板ResourceManager,开了一家外包公司,这家公司有很多的团队Node,每个团队都有个经理NodeManager,每过一段时间,团队经理NodeManager都要到老板那里开会,向老板的人事部门Ma
图解Linux文件系统
在Linux中,文件是最重要的一部分,很多的接口都是通过文件的方式展现出来。文件有很多种:最常见的是普通文件,例如文本文件,二进制文件等。文件夹其实也是一种文件,你可以vim一个文件夹的内容,可以看到文件夹下面的。还有一种CharDev也是一种文件,例如从/dev/random里面,可以读取随机数。
为什么说游戏更应该用容器!
当前微服务架构如火如荼,首先选择使用微服务架构并且使用容器的是电商,由于游戏的运营花的钱太多,游戏的运营不愿意冒任何风险,因而导致游戏的运维相对保守,处于观望态度。其实游戏更应该使用容器,因为游戏的运维往往面临以下的问题。第一、游戏数目多,运维人员少很多非常火爆的游戏,你问他们每个月赚多少钱,发现赚
通俗说Openvswitch
Openvswitch,顾名思义,Open,开源的,v,virtual,虚拟的,switch交换机。通俗的讲就是一款开源的软件,可以创建虚拟的交换机。为啥需要个虚拟的交换机呢?这还要从一个概念SDN说起,全称SoftwareDefinedNetwork,软件定义网络。软件定义有啥好处呢?想象你有一个
为支撑高并发应用的 Kubernetes 的性能优化
这是一个在线分享,可打开下面的链接,或者点击原文链接https://k8smeetup.maodou.io/course/ZMwdAFuzBdXtNySiW
图说Linux进程之三
图说Linux进程图说Linux进程之二五、计算机体系结构相关数据在task_struct里面有一个thread_info为什么需要单独的这个数据结构呢?因为不同的体系结构可能会有不同的实现。从代码可以看出不同的体系结构有不同的实现。在thread_info里面有一个指针指向task_struct。
图说Linux进程之二
图说Linux进程三、进程的权限/*Objectiveandrealsubjectivetaskcredentials(COW):*/conststructcred__rcu*real_cred;/*Effective(overridable)subjectivetaskcredentials(CO
图说Linux进程
进程在Linux里面最普通不过了,可是你知道在内核里面都有哪些数据结构吗?一、进程链表每个进程在内核里面对应如下的数据结构structtask_struct{所有的进程是串在一个列表上的,structlist_headtasks;structlist_head{structlist_head*nex
容器化的本质?基于镜像的跨环境迁移
做了一个在线分享《为支撑高并发应用的Kubernetes性能优化》,在最后总结了这一点,其实这也是做了很多的容器化之后的一个总结。如图,左面是经常挂在嘴边的所谓容器的优势,但是虚拟机都能一一怼回去。如果部署的是一个传统的应用,这个应用启动速度慢,进程数量少,基本不更新,那么虚拟机完全能够满足需求。应
Linux的虚拟文件系统VFS
没想到VirtualFileSystemVFS还是比较受欢迎的,所以今天详细写一下这一部分。VFS是一个抽象层,对不同文件系统的实现屏蔽,对上提供统一的接口。这张图是Linux内核中对于VFS相关数据结构的描述。每一个进程在内核中,都对应一个task_struct结构include/linux/sc
Openssl如何生成并验证公秘钥对
在没有PKI,也即PublicKeyInstrastructure的时候,用的是对称加密,也即双方持有同一个秘钥,用同一个秘钥进行加密和解密。这种方式表面上看没有问题,但是仔细一想,共享的秘钥如何传给对方呢?如果从网络上传输,如果被截获了,那就惨了,有可能被仿冒。只好使用传统的手段,打个电话,写封信
从NFS看Linux的虚拟文件系统
最近接入kubernetes的volume的时候,有一个选项是NFS,由于需要调优性能,因而又重温了一些NFS的机制以及背后的Linux虚拟文件系统VFS马上过十二点了,先上几张图,以后的这个系列慢慢讲。NFSMount的过程VirtualFileSystem的原理VFS涉及到的数据结构时间来不及了
大数据方法论之优化Map-Reduce过程
大家在写Map-Reduce程序的时候,有时候会发现任务执行时间太长了,可通过下面的方法进行优化。在Map-Reduce过程中有Counter首先可以优化Map任务的个数:Map任务的个数是由InputSplits的个数确定的,每个InputSplit对应于一个HDFS文件块。可通过mapred.m
大数据方法论之网页消重的Map-Reduce算法
当你爬取了大量的网页,里面肯定有很多重复的内容,这些重复的内容需要去重来解决。一个著名的算法就是SimHash算法。通用的去重算法框架如图所示(图来自互联网)对于一篇文档,首先要抽取出能代表这篇文章内容的特征,当然特征数目肯定是很多的,如果比较两篇文章的所有特征,太费时间了,所以要对特征进行一定的运