美文网首页大数据我爱编程大数据应用
如何系统的学习大数据框架 hadoop 和spark?

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

作者: 嘿嘿海海 | 来源:发表于2018-08-01 15:00 被阅读18次

    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如何读如何写,之间如何协调通讯等等。

    相关文章

      网友评论

        本文标题:如何系统的学习大数据框架 hadoop 和spark?

        本文链接:https://www.haomeiwen.com/subject/mscrvftx.html