没有必要使用HDFS,但某些地方会出现建议。
帮助评估HDFS运行所花费的精力:
将HDFS用于Spark工作负载有什么好处?
答案 0 :(得分:3)
Spark 是一个分布式处理引擎, HDFS 是一个分布式存储系统。
如果 HDFS 不是一个选项,那么Spark必须使用Apache Cassandra或Amazon S3形式的其他替代方案。
看看这个comparision
S3 - 非紧急批处理作业。当数据位置不重要时,S3适合非常具体的用例。
Cassandra - 非常适合流式数据分析和批处理作业的过度使用。
HDFS - 非常适合批处理作业,而不会影响数据的位置。
何时使用HDFS作为Spark分布式处理的存储引擎?
如果您已经拥有大型 Hadoop集群,并且正在寻找数据的实时分析,那么Spark可以使用现有的Hadoop集群。这将缩短开发时间。
Spark是内存计算引擎。由于数据始终无法适应内存,因此某些操作必须将数据溢出到磁盘。在这种情况下,Spark将有利于HDFS。 Spark实现的Teragen分类记录使用HDFS存储进行分类操作。
HDFS 是可扩展,可靠且容错的分布式文件系统(自Hadoop 2.x发布以来)。利用数据局部性原理,提高了处理速度。
最适合批处理作业。
答案 1 :(得分:2)
最短的答案是:"不,你不需要它"。即使没有HDFS,您也可以分析数据,但当然您需要在所有节点上复制数据。
冗长的答案非常违反直觉,我仍然试图通过帮助stackoverflow社区来理解它。
答案 2 :(得分:0)
HDFS(或任何分布式文件系统)使您的数据分发更加简单。使用本地文件系统,您必须手动将数据分区/复制到各个节点,并在运行作业时了解数据分布。此外,HDFS还可以处理故障节点故障。 通过Spark和HDFS之间的集成,您可以想象得知数据分布的火花,因此它会尝试将任务安排到所需数据所在的相同节点。
第二:你在指令中遇到了哪些问题?
BTW:如果您只是想在AWS上轻松设置,DCOS允许您使用单个命令安装HDFS ......
答案 3 :(得分:-1)
因此,您可以使用Cloudera或Hortenworks发行版并轻松加载整个堆栈。 CDH将与YARN一起使用,但我发现在CDH中配置mesos要困难得多。 Horten更容易定制。
HDFS非常棒,因为数据节点=数据位置(数据处理的过程),因为混洗/数据传输非常昂贵。 HDFS还自然地阻止允许Spark在块上进行分区的文件。 (128mb块,你可以改变这个)。
您可以使用S3和Redshift。