导读 hadoop和Spark是两种不同的大数据生态系统,Hadoop框架比较侧重离线大批量计算,而spark框架则侧重于内存和实时计算。在这些基础上,衍生出了一些常用的附属组件,比如Hadoop生态下的HBASE、hive、HDFS等,HDFS可用于数据存储,MR可用于分布式计算框架。同样,在spark的基础上也衍生出了很多组件,比如spark streaming、spark SQL、mllib等。其中spark score完全可以代替MR,spark中不仅可以有reduce操作,同时也提供了其他诸如filter sortby等操作,要比MR方便很多,同时,spark SQL可以直接把hive上的文件映射成一张表,来进行表操作。

 

Hadoop

大数据是一个概念,hadoop是来实现这个概念的工具、技术,它们之间并没有绝对的联系。Hadoop作为一代分布式系统的基础,特别是第二代Hadoop YARN推出以后,这个位置更加牢固。目前在市面上并没有可以与之相匹敌的系统存在。

具体的学习

1.编程基础,比如Java,C,python,linux,有这些基础学起来就会很快上手。

2.详细研究,现在大型网站包括Sina,腾讯网(门户),Weibo(微博),天猫,京东(电商)的架构与实现,先从自己的角度去理解,然后去跟实际情况做比对,提升自己对数据和技术的敏感程度。

3.熟悉并理解,目前阿里,腾讯,百度内部的系统或多或少都是借鉴于Hadoop的。运用Hadoop对于你以后在大型计算机公司任职非常重要。

4.理解分布式系统设计中的原则以及方法,例如负载均衡,故障恢复,并发程序设计,并发数据结构,等等。理解这些设计原理,并走入底层读懂每一行Hadoop的源码更加的重要。

Spark

Spark只是分布式计算平台,而hadoop已经是分布式计算、存储、管理的生态系统。与Spark相对应的是Hadoop MapReduce。

Spark相对于Hadoop的优势,分布式计算仅仅是hadoop的一部分。从内容上来说,还是有些对比:

1、更快

2、更加容易使用

配置起来超级方便。除支持JAVA外,支持scala、python、R。特别是scala,简直是太适合写数据分析的程序了,mapreduce用JAVA实在是太蛋疼了。而且RDD自带的函数

3、巨好用的库能解决90%问题的四大组件,无论是SQL、还是流数据处理、机器学习库、图计算,相当好用。当然,hadoop相关的库也不少,不过spark是原生包含,用起来方便点。 4、运行方便

Spark是可以脱离hadoop运行的,比如数据可以从数据库或者本地文件里面抽取。不过毕竟大数据时代,大家都习惯于将Spark和hadoop通过mesos或者yarn结合起来用;主要用Hadoop的HDFS,当然HBASE或者HIVE这种HDFS之上的组件,Spark也支持。

具体的学习:

1、熟悉如何去写spark的程序;

2、实践到一定程度之后,逐渐的通过spark运行日志对spark的运行机制和原理有了解。

看架构、源码。试试看一些解读源码的图书, Spark的相关知识就已经开始沉淀了。

3、了解spark的各个调度器如何实现,之前总是出现在眼睛里的那个宽依赖窄依赖、和stage的切分,task首选位置的确定等。随着不断深入,尝试看底层的block如何读如何写,之间如何协调通讯等等。大数据学习资料分享群119599574 不管你是小白还是大牛,小编我都挺欢迎,今天的源码已经上传到群文件,不定期分享干货,包括我自己整理的一份最新的适合2018年学习的大数据开发和零基础入门教程,欢迎初学和进阶中的小伙伴。

原文来自:https://blog.csdn.net/qq_41800874/article/details/81297379

本文地址:https://www.linuxprobe.com/hadoop-spark.html编辑:朱培棋 , 审核员:逄增宝