欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何系统的学习大数据框架 hadoop 和spark?

程序员文章站 2022-06-18 15:43:13
hadoop和Spark是两种不同的大数据生态系统,Hadoop框架比较侧重离线大批量计算,而spark框架则侧重于内存和实时计算。 在这些基础上,衍生出了一些常用的附属组件,比如Hadoop生态下的HBASE、hive、HDFS等,HDFS可用于数据存储,MR可用于分布式计算框架。同样,在spar ......

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 和spark?

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年学习的大数据开发和零基础入门教程,欢迎初学和进阶中的小伙伴。