在互联网大数据应用场景下,大部分情况下,数据量很大且数据字段数目很多,但每次查询数据只针对其中的少数几行,这时候列式存储是极佳的选择,目前在开源实现中,最有名的列式存储引擎是Parquet和ORC,在最近一年内,它们都晋升为Apache顶级项目,可见它们的重要性。本文尝试比较这两种存储引擎。

排序算法是计算机技术中最基本的算法,许多复杂算法都会用到排序。尽管各种排序算法都已被封装成库函数供程序员使用,但了解排序算法的思想和原理,对于编写高质量的软件,显得非常重要。本文介绍了常见的排序算法,从算法思想,复杂度和使用场景等方面做了总结。

LCA(Least Common Ancestors),即最近公共祖先,是指这样一个问题:在有根树中,找出某两个结点u和v最近的公共祖先。 RMQ即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,本文介绍了当前解决这两种问题的比较高效的算法。

本文将从用户伪装(impersonate,翻译成“模仿”也许更好些)角度介绍Hadoop安全机制,用户伪装机制使得Hadoop支持类似于linux “sudo”的功能,即用户A以用户B的身份执行功能。该机制属于Hadoop安全机制的一部分,因此适用于Hadoop 1.0之后的版本。

这是我在数盟上分享的一个topic,介绍了hadoop yarn的产生背景、基本架构、运行在yarn上的计算框架(包括MapReduce、Tez、Storm、Spark等)和发展趋势,该PPT可看做hadoop 2.0新书《Hadoop技术内幕:深入解析YARN架构设计与实现原理》的精简介绍。

本文将分析Hadoop MapReduce(包括MRv1和MRv2)的两种常见的容错场景,第一种是,作业的某个任务阻塞了,长时间占用资源不释放,如何处理?另外一种是,作业的Map Task全部运行完成后,在Reduce Task运行过程中,某个Map Task所在节点挂了,或者某个Map Task结果存放磁盘损坏了,该如何处理?