Ⅰ hadoop和spark的都是并行计算,有什么相同和区别
相同点都是基于MR的原理来实现的。
不同点前者基于磁盘+内存,磁盘占得比重比较大,而后者侧重于内存+磁盘,内存占得比重比较大,这也是为什么Hadoop没spark速度快的根本原因,spark基于内存来做MR,而Hadoop侧重于落地到磁盘来做MR。
Ⅱ 大家对spark的源码了解多少,sparkshuffle,调度,sparkstreaming的源码
流(Streaming),在大数据时代为数据流处理,就像水流一样,是数据流;既然是数据流处理,就会想到数据的流入、数据的加工、数据的流出。
日常工作、生活中数据来源很多不同的地方。例如:工业时代的汽车制造、监控设备、工业设备会产生很多源数据;信息时代的电商网站、日志服务器、社交网络、金融交易系统、黑客攻击、垃圾邮件、交通监控等;通信时代的手机、平板、智能设备、物联网等会产生很多实时数据,数据流无处不在。
在大数据时代SparkStreaming能做什么?
平时用户都有网上购物的经历,用户在网站上进行的各种操作通过Spark Streaming流处理技术可以被监控,用户的购买爱好、关注度、交易等可以进行行为分析。在金融领域,通过Spark Streaming流处理技术可以对交易量很大的账号进行监控,防止罪犯洗钱、财产转移、防欺诈等。在网络安全性方面,黑客攻击时有发生,通过Spark Streaming流处理技术可以将某类可疑IP进行监控并结合机器学习训练模型匹配出当前请求是否属于黑客攻击。其他方面,如:垃圾邮件监控过滤、交通监控、网络监控、工业设备监控的背后都是Spark Streaming发挥强大流处理的地方。
大数据时代,数据价值一般怎么定义?
所有没经过流处理的数据都是无效数据或没有价值的数据;数据产生之后立即处理产生的价值是最大的,数据放置越久或越滞后其使用价值越低。以前绝大多数电商网站盈利走的是网络流量(即用户的访问量),如今,电商网站不仅仅需要关注流量、交易量,更重要的是要通过数据流技术让电商网站的各种数据流动起来,通过实时流动的数据及时分析、挖掘出各种有价值的数据;比如:对不同交易量的用户指定用户画像,从而提供不同服务质量;准对用户访问电商网站板块爱好及时推荐相关的信息。
SparkStreaming VSHadoopMR:
Spark Streaming是一个准实时流处理框架,而Hadoop MR是一个离线、批处理框架;很显然,在数据的价值性角度,Spark Streaming完胜于Hadoop MR。
SparkStreaming VS Storm:
Spark Streaming是一个准实时流处理框架,处理响应时间一般以分钟为单位,也就是说处理实时数据的延迟时间是秒级别的;Storm是一个实时流处理框架,处理响应是毫秒级的。所以在流框架选型方面要看具体业务场景。需要澄清的是现在很多人认为Spark Streaming流处理运行不稳定、数据丢失、事务性支持不好等等,那是因为很多人不会驾驭Spark Streaming及Spark本身。在Spark Streaming流处理的延迟时间方面,Spark定制版本,会将Spark Streaming的延迟从秒级别推进到100毫秒之内甚至更少。
SparkStreaming优点:
1、提供了丰富的API,企业中能快速实现各种复杂的业务逻辑。
2、流入Spark Streaming的数据流通过和机器学习算法结合,完成机器模拟和图计算。
3、Spark Streaming基于Spark优秀的血统。
SparkStreaming能不能像Storm一样,一条一条处理数据?
Storm处理数据的方式是以条为单位来一条一条处理的,而Spark Streaming基于单位时间处理数据的,SparkStreaming能不能像Storm一样呢?答案是:可以的。
业界一般的做法是Spark Streaming和Kafka搭档即可达到这种效果,入下图:
总结:
使用Spark Streaming可以处理各种数据来源类型,如:数据库、HDFS,服务器log日志、网络流,其强大超越了你想象不到的场景,只是很多时候大家不会用,其真正原因是对Spark、spark streaming本身不了解。
Ⅲ hadoop和maprece是一种什么关系
hadoop是依据maprece的原理,用Java语言实现的分布式处理机制。
Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapRece编程模型和框架,能够把应用程序分割成许多的小的工作单元,并把这些单元放到任何集群节点上执行。
MapRece是Hadoop中的一个数据运算核心模块,MapRece通过JobClient生成任务运行文件,并在JobTracker进行调度指派TaskTracker完成任务。
(3)mrshuffle原理源码扩展阅读
1、MapRece分布式计算框架原型:
MapRece分布式计算模型是由Google提出,主要用于搜索领域,解决海量数据的计算问题Apache对其做了开源实现,整合在hadoop中实现通用分布式数据计算。
MR由两个阶段组成:Map和Rece,用户只需要实现map()和rece()两个函数,即可实现分布式计算,非常简单。大大简化了分布式并发处理程序的开发。
Map阶段就是进行分段处理。
Rece阶段就是进行汇总处理。汇总之后还可以进行数据的一系列美化操作,然后再输出。
2、MapRece组件介绍:
JobClient:用于把用户的作业任务生成Job的运行包,并存放到HDFS中。
JobinProgress:把Job运行包分解成MapTask和ReceTask并存放于TaskTracker中。
JobTracker(Master):进行调度管理TaskTracker执行任务。
TaskTracker(Slave):执行分配下来的Map计算或Rece计算任务。