spark
A fast and general compute engine for Hadoop data. Spark provides a simple and expressive programming model that supports a wide range of applications, including machine learning, stream processing, and graph computation.
翻译:用于Hadoop数据的快速和通用的计算引擎。 Spark提供了一个简单而富有表现力的编程模型,支持广泛的应用,包括机器学习,流处理和图形计算。
Hadoop除了提供为大家所共识的HDFS分布式数据存储功能之外,还提供了叫做MapReduce的数据处理功能。所以这里我们完全可以抛开Spark,使用Hadoop自身的MapReduce来完成数据的处理。
相反,Spark也不是非要依附在Hadoop身上才能生存。但如上所述,毕竟它没有提供文件管理系统,所以,它必须和其他的分布式文件系统进行集 成才能运作。这里我们可以选择Hadoop的HDFS,也可以选择其他的基于云的数据系统平台。但Spark默认来说还是被用在Hadoop上面的,毕 竟,大家都认为它们的结合是最好的。
Spark数据处理速度秒杀MapReduce
Spark因为其处理数据的方式不一样,会比MapReduce快上很多。MapReduce是分步对数据进行处理的: ”从集群中读取数据,进行一次处理,将结果写到集群,从集群中读取更新后的数据,进行下一次的处理,将结果写到集群,等等…“ Booz Allen Hamilton的数据科学家Kirk Borne如此解析。
反观Spark,它会在内存中以接近“实时”的时间完成所有的数据分析:“从集群中读取数据,完成所有必须的分析处理,将结果写回集群,完成,” Born说道。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。
如果需要处理的数据和结果需求大部分情况下是静态的,且你也有耐心等待批处理的完成的话,MapReduce的处理方式也是完全可以接受的。
但如果你需要对流数据进行分析,比如那些来自于工厂的传感器收集回来的数据,又或者说你的应用是需要多重数据处理的,那么你也许更应该使用Spark进行处理。
大部分机器学习算法都是需要多重数据处理的。此外,通常会用到Spark的应用场景有以下方面:实时的市场活动,在线产品推荐,网络安全分析,机器日记监控等
我们现在常使用spark有两种模式:
- spark standalone
standalone模式,即独立模式,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。 - spark on yarn
这是一种最有前景的部署模式,spark 借助 yarn 的资源管理功能
sqoop
sqoop是一个SQL-to-HDFS数据库导入工具。
我们公司可能之前都是用的mysql数据库,现在发现hadoop这么牛逼,我们想换hadoop,那问题是我们怎么把之前mysql的结构化数据导入到HDFS中呢?
于是就有了sqoop,但是注意sqoop不是hadoop的组件,只是hadoop的一个工具。
Sqoop是双向的,可以从mysql中抽取出数据,转变格式,存放至HDFS中,也可以从HDFS中抽取数据转换格式放置在mysql中,是双向的
flume介绍:
flume是分布式的日志收集系统,它将各个服务器中的数据收集起来并送到指定的地方去,比如hadoop的HDFS,简单来说flume就是收集日志的。
本课程不做介绍
Mahout介绍:
Mahout 是 Apache SoftwareFoundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用Apache Hadoop 库,Mahout 可以有效地扩展到云中。
本课程不做介绍