spark工作负载需要hdfs吗?

93ze6v8z  于 2021-05-29  发布在  Hadoop
关注(0)|答案(4)|浏览(760)

hdfs是没有必要的,但建议出现在一些地方。
为了帮助评估运行hdfs所花费的精力:
将hdfs用于spark工作负载有什么好处?

mrzz3bfm

mrzz3bfm1#

最简短的回答是:“不,你不需要它”。即使不使用hdfs,您也可以分析数据,但您需要在所有节点上复制数据。
很长的答案是相当违反直觉的,我仍然试图在stackoverflow社区的帮助下理解它。
spark local与hdfs性能对比

pepwfjgg

pepwfjgg2#

因此,您可以使用cloudera或hortenworks发行版,非常轻松地加载整个堆栈。cdh将与Yarn一起使用,尽管我发现在cdh中配置mesos要困难得多。horten更容易定制。
hdfs非常好,因为datanodes=数据位置(数据所在的进程),因为洗牌/数据传输非常昂贵。hdfs还自然地阻塞文件,从而允许spark在这些块上进行分区(128mb块,您可以更改它)。
你可以用s3和红移。
请看这里:https://github.com/databricks/spark-redshift

1l5u6lss

1l5u6lss3#

spark是一个分布式处理引擎,hdfs是一个分布式存储系统。
如果hdfs不是一个选项,那么spark必须使用apachecassandra或amazons3的其他替代形式。
看看这个比较
s3–非紧急批处理作业。s3适合非常特定的用例,当数据局部性不重要时。
cassandra–非常适合流式数据分析和批处理作业。
hdfs–非常适合批量作业,而不影响数据位置。
何时使用hdfs作为spark分布式处理的存储引擎?
如果您已经有了大型hadoop集群,并且正在寻找数据的实时分析,那么spark可以使用现有的hadoop集群。它将缩短开发时间。
spark是内存计算引擎。由于数据不能总是放在内存中,一些操作必须将数据溢出到磁盘。在这种情况下,spark将从hdfs中受益。spark实现的teragen排序记录使用hdfs存储进行排序操作。
hdfs是可伸缩、可靠和容错的分布式文件系统(自Hadoop2.x发布以来)。利用数据局部性原理,提高了处理速度。
最适合批量处理作业。

uyto3xhc

uyto3xhc4#

hdfs(或任何分布式文件系统)使分发数据变得更加简单。使用本地文件系统,您必须手动将数据分区/复制到各个节点,并在运行作业时注意数据分布。此外,hdfs还处理失败的节点故障。通过spark和hdfs之间的集成,可以想象spark了解数据分布,因此它将尝试将任务调度到所需数据所在的相同节点。
第二:你在教学中到底遇到了哪些问题?
顺便说一句:如果你只是在aws上寻找一个简单的设置,dcos允许你用一个命令安装hdfs。。。

相关问题