网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
我们通常说到的hadoop包括两部分,一是Hadoop核心技术对应为apache开源社区的一个项目,主要包括三部分内容:hdfs,mapreduce,yarn。其中hdfs用来存储海量数据,mapreduce用来对海量数据进行计算,yarn是一个通用的资源调度框架
另一部分指广义的,广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如hbase、hive、spark、pig、zookeeper、kafka、flume、phoenix、sqoop等。
生态圈中的这些组件或产品相互之间会有依赖,但又各自独立。比如habse和kafka会依赖zookeeper,hive会依赖mapreduce。
Spark
生态圈:
Spark 生态圈是加州大学伯克利分校的 AMP 实验室打造的,是一个力图在算法、机器、人之间通过大规模集成来展现大数据应用的平台。
AMP 实验室运用大数据、云计算、通信等各种资源及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好地理解世界。该生态圈已经涉及机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域。
特点:
1、快速:逻辑回归算法一般需要多次迭代。
2、易用:Spark支持使用Scala、Python、Java、R等语言快速编写应用。Spark提供超过80个高阶算子,使得编写并行应用程序变得容易。并且Spark提供Scala、Python和R等语言的交互模式界面,使得Spark编程的学习更加简便。
3、通用:Spark可以与SQL语句、实时计算及其他复杂的分析计算进行良好的结合。Spark框架包含多个紧密集成的组件,包括Spark SQL(即席查询)、Spark Streaming(实时流处理)、Spark MLlib(机器学习库)、Spark GraphX(图计算)。并且Spark支持在一个应用中同时使用这些组件。
Spark SQL (即席查询) | Spark Streaming (实时流处理) | Spark MLlib (机器学习库) | Spark GraphX (图计算) |
Apache Spark |
4、随处运行:用户可以使用Spark的独立集群模式运行Spark,也可以在亚马逊弹性计算云、Hadoop YARN资源管理器或Apache Mesos上运行Spark。
5、代码简洁:Spark支持使用Scala、Python等语言编写代码。Scala和Python代码相对于Java的代码而言比较简洁,因此,在Spark中一般都使用Scala或Python编写应用程序,这也比在MapReduce中编写应用程序简单方便。
MapReduce的运行框架:
Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;
Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上;
Hadoop Mapreduce和Spark的区别:
1、Spark的速度比MapReduce快,Spark把运算的中间数据存放在内存,迭代计算效率更高;mapreduce数据需要保存到磁盘,比较影响性能;
2、spark容错性高,它通过弹性分布式数据集RDD来实现高效容错;mapreduce容错可能只能重新计算了,成本较高;
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**