浅谈大数据和hadoop家族

按照时间的早晚从大数据出现之前的时代讲到现在。暂时按一个城市来比喻吧,反正Landscape的意思也大概是”风景“的意思。

早在大数据概念出现以前就存在了各种各样的关于数学、统计学、算法、编程语言的研究、讨论和实践。这个时代,算法以及各种数学知识作为建筑的原料(比如钢筋、砖块),编程语言作为粘合剂(比如水泥)构成了一座座小房子(比如一个应用程序),形成了一小片一小片的村庄(比如一台服务器)。这个时代村与村之间还没有高速公路(GFS, HDFS, Flume, Kafka等),只有一条泥泞不好走的土路(比如RPC),经济模式也是小作坊式的经济。一开始互联网并不发达,网速也不快,这种老土的方式完全应付得来,可是随着社交网络和智能手机的兴起,改变了这一切。网站流量成百上千倍的提高,数据变得更加多样化,计算机硬件性能无法按照摩尔定律稳定的提升,小村庄,小作坊生产的模式注定受到限制。人们需要更强大的模式...大数据应用领域总结来讲分为离线计算和实时计算。随着数据量的增加,OLTP模式已经难以胜任,于是OLAP逐渐成为主流。无论是实时计算还是离线计算,基本思想是相同的,即:分而治之。

起开始,人们以为只要有一个强大的中央数据库,也就是在所有的村庄之间建一座吞吐量巨大,并且兼容并蓄(非关系型,NoSQL)的仓库,用来中转每个村庄生产的大量异质货物就能够拉动经济的增长。可是没过多久,人们就意识到这是一个too young to simple的想法,因为这个仓库的大小也总是有上限的。

之后MapReduce的概念最早由google提出,用来解决大规模集群协同运算的问题,既然一台计算机性能有限,何不将他们联合起来?其野心勃勃,希望为每个村庄都建立一条”村村通“公路,也就是GFS了,就是Google分布式文件系统的意思,将不同服务器的硬盘连接起来,在外面看起来就好像一块巨大的硬盘。然后构建与其上的MapReduce就是一座工厂调度每个村庄的劳动力和物资,让这些村庄作为一个经济体运转起来。居民变得富裕起来了。
不过,富裕起来的只有”谷歌镇“,世界的其他村镇仍然过着原始的生活。这个时候雅虎和Apache的一帮人本着独乐乐不如众乐乐的精神,仿造google的思想,创建了HDFS(Hadoop 分布式文件系统,对应GFS)、Hadoop(对应google的MapReduce),并公开了全部的蓝图,供全世界免费使用。这样整个世界到处都建立起来了工厂,人们变得富裕起来了。这个时代,Hadoop叫做大数据基础设施。

俗话说:饱暖思淫欲,工厂的领导不满足于村镇工厂的粗放型生产,也不再想雇用那么多的劳动力,所以Mahout、HBase、Hive、Pig应运而生,他们都是数控机床,加工中心,只需要几名操作手就能够让整个工厂运转起来,自此人们安居乐业,丰衣足食。

当然,少数更有野心的资本家,不满足于现在的生产力,为了追求更高的利润(这是资本主义的本质),开发了效率更高的系统Spark,可以10倍于Hadoop的速度生产产品,新的时代才刚刚拉开序幕...

HBase:是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化数据集群。像Facebook,都拿它做大型实时应用 Facebook‘s New Realtime Analytics System: HBase to Process 20 Billion Events Per Day

Pig:Yahoo开发的,并行地执行数据流处理的引擎,它包含了一种脚本语言,称为Pig Latin,用来描述这些数据流。Pig Latin本身提供了许多传统的数据操作,同时允许用户自己开发一些自定义函数用来读取、处理和写数据。在LinkedIn也是大量使用。

Hive:Facebook领导的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计。像一些data scientist 就可以直接查询,不需要学习其他编程接口。

Cascading/Scalding:Cascading是Twitter收购的一个公司技术,主要是提供数据管道的一些抽象接口,然后又推出了基于Cascading的Scala版本就叫Scalding。Coursera是用Scalding作为MapReduce的编程接口放在Amazon的EMR运行。

Zookeeper:一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现。

Oozie:一个基于工作流引擎的开源框架。由Cloudera公司贡献给Apache的,它能够提供对Hadoop MapReduce和Pig Jobs的任务调度与协调。

Azkaban: 跟上面很像,Linkedin开源的面向Hadoop的开源工作流系统,提供了类似于cron 的管理任务。

Tez:Hortonworks主推的优化MapReduce执行引擎,与MapReduce相比较,Tez在性能方面更加出色。

hadoop vs spark Hadoop:

分布式批处理计算,强调批处理,常用于数据挖掘、分析 Spark:是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速, Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。 Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。

与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。

Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms,Machines,and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟.

在大数据处理方面相信大家对hadoop已经耳熟能详,基于GoogleMap/Reduce来实现的Hadoop为开发者提供了map、reduce原语,使并行批处理程序变得非常地简单和优美。

Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多种操作类型,他们把这些操作称为Transformations。同时还提供Count,collect, reduce, lookup, save等多种actions。

这些多种多样的数据集操作类型,给上层应用者提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的Data Shuffle一种模式。用户可以命名,物化,控制中间结果的分区。

引自于知乎

时间: 2024-10-26 10:12:10

浅谈大数据和hadoop家族的相关文章

浅谈大数据与hadoop家族

按照时间的早晚从大数据出现之前的时代讲到现在.暂时按一个城市来比喻吧,反正Landscape的意思也大概是”风景“的意思. 早在大数据概念出现以前就存在了各种各样的关于数学.统计学.算法.编程语言的研究.讨论和实践.这个时代,算法以及各种数学知识作为建筑的原料(比如钢筋.砖块),编程语言作为粘合剂(比如水泥)构成了一座座小房子(比如一个应用程序),形成了一小片一小片的村庄(比如一台服务器).这个时代村与村之间还没有高速公路(GFS, HDFS, Flume, Kafka等),只有一条泥泞不好走的

浅谈大数据技术

忽如一夜春风来,无人不谈大数据.大数据就像前两年的云计算一样,是一个时下被炒得很火的概念.那么什么是大数据,大数据是如何定义的,大数据处理技术有哪些,大数据能给我们带来什么益处?虽然我不知道现在这些概念是如何被炒作的,但是作为一名互联网行业的从业者,作为一个大数据技术的实践者,根据自己的理解和经验发表一点浅显的认识,理解肯定有不到位之处请大家批评指正. 无论是大数据技术还是云计算技术,其实这些技术都不是突然冒出来的,而是随着互联网技术的发展,人们把现有的技术加以整合,总结,概括出来并冠一个新名字

浅谈大数据

大数据概述 一.大数据是什么? 大数据目前没有一个严格的定义,但是我们可以举出很多具体的例子!例如:互联网上的网页数据.社交网站上的用户交互数据(如新浪微博).物联网中产生的活动数据(如智能家居).电话网络中的话单数据(如移动语音详单)等等都是大数据的具体表现. 二.大数据的三个特征 1.数据量大小–大容量 我们现在常说大数据,到底有多大呢?先看一组公式: 1024GB = 1TB;1024TB = 1PB;1024PB=1EB;1024EB=1ZB;1024ZB=1YB. 在淘宝上,每天新增的

浅谈大数据的发展:问题和挑战

  目前,几乎所有世界级的互联网企业,都将业务触角延伸至大数据产业. 无论社交平台逐鹿.电商价格大战还是门户网站竞争,都有它的影子.大数据,正由技术热词变成一股社会浪潮,影响社会生活的方方面面. 何谓大数据?大数据或称巨量资料,是指所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取.管理.处理.并整理成为帮助企业经营决策更积极目的的资讯.(在 维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的<大数据时代>中,大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据的方法)大

洞悉大数据:Hadoop和云分析七大误解

七大误解:大数据与hadoop 对于Hadoop技术而言,可以说是开源领域的传奇,然而如今业界还伴随着一些流言,这些流言可能会导致IT高管们带着“有色”的观点去制定策略. 从IDC分析师报告中2013年数据存储上的增长速度将达到53.4%,AT&T更是声称无线数据的流量在过去的5年内增长200倍,从互联网内容.电子邮件.应用通知.社交消息以及每天接收的消息都在显着的增长,这也是众多大企业都聚焦大数据的原因所在. 毫无疑问,Hadoop成为解决大数据需求的主要投资领域之一,而类似Facebook等

大数据云计算高级实战Hadoop,Flink,Spark,Kafka,Storm,Docker高级技术大数据和Hadoop技能

大数据和Hadoop技能可能意味着有你的梦想事业和被遗忘之间的差异.骰子引用:“技术专业人员应该志愿参与大数据项目,这使他们对目前的雇主更有价值,对其他雇主更有销路.” 1.与Hadoop的职业:根据福布斯2015年的一份报告,约有90%的全球性组织报告了中高级别的大数据分析投资,约三分之一的投资者称其投资“非常重要”.最重要的是,约三分之二的受访者表示,数据和分析计划对收入产生了重大的可衡量的影响. Hadoop技能是需求的 - 这是不可否认的事实!因此,IT专业人士迫切需要使用 Hadoop

大数据测试之hadoop命令大全

大数据测试之hadoop命令大全 1.列出所有Hadoop Shell支持的命令  $ bin/hadoop fs -help2.显示关于某个命令的详细信息  $ bin/hadoop fs -help command-name3.用户可使用以下命令在指定路径下查看历史日志汇总  $ bin/hadoop job -history output-dir这条命令会显示作业的细节信息,失败和终止的任务细节.4.关于作业的更多细节,比如成功的任务,以及对每个任务的所做的尝试次数等可以用下面的命令查看 

细细品味大数据--初识hadoop

初识hadoop 前言 之前在学校的时候一直就想学习大数据方面的技术,包括hadoop和机器学习啊什么的,但是归根结底就是因为自己太懒了,导致没有坚持多长时间,加上一直为offer做准备,所以当时重心放在C++上面了(虽然C++也没怎么学),计划在大四下有空余时间再来慢慢学习.现在实习了,需要这方面的知识,这对于我来说,除去校招时候投递C++职位有少许影响之外,无疑是有很多的好处. 所以,接下来的很长日子,我学习C++之外的很多时间都必须要花在大数据上面了. 那么首先呢,先来认识一下这处理大数据

大数据之hadoop,国内首部:Zookeeper从入门到精通课程分享

对这个课程感兴趣的朋友可以加我QQ2059055336和我联系. ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.命名服务.分布式同步.组服务等. Zookeeper的Fast Fail 和 Leader选举特性大大增强了分布式集群的稳定和健壮性,并且解决了Master/Slave模式的单点故障重大隐患,这是越来越多的分布式产品如HBase.Storm(流计算).S4(流计算)等强依赖Zoo