关于Hadoop里面“批处理,实时,交互,流,NOSQL”等术语的解释

很多人会对Hadoop里面使用的一些专业术语而感到困惑,如Hadoop的术语,流输入(streaming),实时(real time)等等,这里会对这些术语简单介绍一下:

批处理(Batch)
批处理是指按照预定的方式运行数据查询。你应该已经知道问题是什么,可以用一个MapReduce的程序来处理数据,假设你的数据量非常大,并且再不断增长中,这样哪怕是最简单的查询也至少需要分钟,这些都是你要考虑的问题。

实时/交互(Real time/Interactive)
在这里把实时和互动整合来讲,当然他们也可以单独来解释。不同的人对实时的定义也是不同的。有人会认为每天更新一次网站的内容,或者让Hadoop每小时跑一次job都是实时的。而对于银行工作者,实时意味着毫秒级的误差。

交互则意味着事先你并不知道你的问题是什么,你提问然后根据答案再提出下一个问题,这样迅速做出决定,给出一个合理的答案便成了一个挑战,因为提问者并没有足够的耐心去等待你的反馈。这里同样可以采用一个MapReduce作业来运行,这些都是最新的技术,比如Apache Drill,Cloudera Impala(基于谷歌的dremel)等技术可以填补这一空白。

流(Streaming)
Streaming意味着当数据到来时的各种操作,因为数据会源源不断进来,你必须知道和了解并处理好它们,Twitter storm工具是这方面非常领先的。

NOSQL
在一些博文中,我看到有人用“在线”来描述NOSQL,我对这个持保留态度,因为它已经有一个非常明确的特点:即从大数据集,非关系型数据,没有 schema,可以在任何时候向一条记录添加新字段。

总结:
在不同数据规模上会对Hadoop概念的理解产生一定的差异。
批量通常是针对大量已经存在的数据,很少变化。
交互反映的是提出问题的速度
流表示数据移动的速度
NoSQL主要与大数据中的数据类型相关

原文:infoobjects.com