Linux - 管道与重定向详解

在 Unix 系统中,任何程序都可以实现三个接口,即:标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr),你应该注意到,这三个东西前面都有标准两个字,是的,正是这种标准,使得 Unix 系统中的所有独立的程序可以相互传递数据而没有任何限制,这种机制给用户带来了极大的方便,这正是 Unix 哲学! 在 Unix/Linux 中,有一个常用的符号,叫做管道符,写做:"|",举个例子: ``` ls / | grep usr ```。

编写日期:2017-09-21
Bigdate on Docker

最近我们在把自己的大数据平台迁移到 Docker 上面来,最初的想法是用 Docker 技术代替我们现在的 Open Stack 平台,也就是把 Docker 容器当成虚拟来用,看到这里可能人要说了:这明显没有遵循 Docker 的佳实践啊!是的,但具我了解,很多大数据厂商都在想办法把自家的平台容器化,而且有不少厂商已经做到了,也许这就是趋势吧,尽管 Docker 的设计者并不建议这样做,到后面我们会把大数据平台中的每一个组件一个个的拆开,每一个组件都容器化。

编写日期:2017-09-16
Bigdate on Kubernetes

把大数据平台容器化,是我们的必经之路,一是因为容器化有诸多好处,比如:将每个组件标准化、易于管理、快速升级、快速部署等等,二是因为趋势,当其它人做了而你没做,就可能被客户抛弃,所以最好在所有人之前就开始做。 。

编写日期:2017-09-16
Kubernetes - 快速部署(v1.7)

最近(2017.07.30)k8s 又发布了新版本,这个版本中增加了两种持久化存储方案,StorygeOS 与 Local ,为了一探究竟,我部署了一套最新版的 k8s 集群,虽然我在半年前部署过一次,并写过一篇 k8s-v1.5 版本部署的文篇,但那次的经验已经不再适用于新版本,这让我又体验了一次 k8s 的部署过程,这简直是种折磨,我现在新重新整理出来,希望给读者带来帮助。 。

编写日期:2017-07-15
Java - NIO框架

为了弥补 Java IO 的不足,Java 从 1.4 版本开始引入了 NIO 框架,也就是说 NIO 是一套新的 IO 框架,一般解释为 Non-blocking IO,有时也解释为 New IO。它可以在实现高并发服务器的同时占用很少的资源。 对于传统的 IO 框架,NIO 的优势主要体现在对请求的处理上,下面我们先来看看用传统 IO 怎样建立一个 TCP 连接。 首先创建服务端,并等待新的连接,下面是伪代码: ``` 。

编写日期:2017-07-08
Java - Netty入门

Netty 是一个高性能高可用的 NIO 框架,并且使用简单,用它可以轻松地开发诸如协议服务器和客户端之类的网络应用程序。它大大简化了网络编程,如 TCP 和 UDP 套接字服务器开发。已经被其它很多项目使用,比如 Spark。 。

编写日期:2017-07-02
分类算法 - 朴素贝叶斯

朴素贝叶斯是种简单而有效的分类算法,被应用在很多二元分类器中,那什么叫二元分类?也就是非A即B,假设我现在用朴素贝叶斯算法写一个分类器,然后输入一封邮件,它可以根据特征库来判断这封邮件是不是垃圾邮件。当然,它还可以用来处理多元分类的问题,比如:文章分类、拼写纠正等等。 在网上已经有很多关于朴素贝叶斯的介绍了,其中不乏一些讲得深刻而又通俗易懂的文章,本文不准备长篇大论探讨它的数学原理及深层含义,不过基本原理还是得讲一下,先说一下条件概率模型,以下摘抄自wiki: > 公式:p(C|F1,...,Fn) 。

编写日期:2017-06-24
排序算法 - 快速排序

作为排序之王的快速排序法,要理解它很容易,但实现起来又是另外一回事,主要是因为快速排序在实现上是很苛刻的,差之毫厘,谬以千里,如果不是专业研究算法的话,突然哪天要用到还真不一定写的出来,主要是平时用的很少。。 1. 给定一个数据集,先从中选出一个元素作为枢钮元,选取枢钮元有多种策略,它对算法的性能影响颇大,目前效果最好的应该是三数中值分割法,三数指的是数组中第一个元素,最后一个元素,和中间那个元素,然后从这三个元素中找出中位数并作为枢钮元 。

编写日期:2017-06-24