首页 > 编程知识 正文

spark与hadoop集成详解

时间:2023-05-03 14:45:29 阅读:284460 作者:3047

我们经常被问到如何让spark集成到hadoop生态系统中,如何让spark在现有的hadoop集群中运行,本文的目的就是来回答上述问题。

1,spark主要用于提高而不是取代hadoop栈,从一开始spark就被设计从hdfs中读取存储数据,类似于其他的存储系统,例如Hbase, Amazon S3等,因此,hadoop用户可以通过结合spark来提高hadoop MR, Hbase 及其他大数据平台的处理能力。

2, 我们一直致力于为每个hadoop用户充分利用spark的性能,不论你是在用hadoop1.x还是hadoop2.x(Yarn), 也不论有没有hadoop集群的管理员权限,现在有三种方式把spark配置到hadoop集群中:

1) 独享(standalone)配置:

在独享模式下用户可以在hadoop集群一组或全部机器中静态分配资源,与hadoop MR同时运行,用户可以在hdfs上运行专属的spark任务,对hadoop 1.x用户这种模式配置较简单。

2)Hadoop Yarn配置:

hadoop用户可以简单的把spark运行在yarn中无需任何准备工作或者管理员权限,像其他运行在spark上层的模块一样充分利用spark的强大计算能力。

3)基于MR运行配置(SIMR):

如果Hadoop用户没有运行Yarn,除了standalone配置,还有一种就是SIMR,也就是spark运行在MapReduce之上。利用SIMR,用户仅需几分钟下载spark shell就消除配置障碍,spark就运行起来了。

 

3, 与其他系统互操作:

spark不仅能运行在hadoop上,而且还可以运行在其他主流大数据技术上面。

1) Apache Hive:

通过shark, spark可以让hive用户查询更加快速,hive是基于Hadoop上的数据仓库挖掘技术,而shark可以使用户让hive框架直接运行在spark上,无需hadoop。 以此使hive提高100倍以上的内存查询能力, 10倍以上的磁盘查询能力。 

2) AWS EC2:

用户可以使用脚本或者基于内嵌在amazon的弹性MapReduce上的shark, 容易得 把spark运行在EC2上面。

3) Apache Mesos:

当spark运行在Mesos上时,集群管理系统能通过分布式应用提供有效的资源隔离,包括MPI,hadoop等。 Mesos能充分利用spark任务运行中的闲置资源,最大限度的共享,从而使性能大幅提升,尤其是当运行时间较长的spark任务时。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。