Sha*_*baz 27 hadoop cassandra apache-spark apache-spark-sql
我的理解是Spark是Hadoop的替代品.但是,在尝试安装Spark时,安装页面会要求安装现有的Hadoop.我无法找到任何澄清这种关系的东西.
其次,Spark显然与Cassandra和Hive有良好的连接.两者都有sql风格的界面.但是,Spark有自己的sql.为什么人们会使用Cassandra/Hive而不是Spark的原生sql?假设这是一个没有现有安装的全新项目?
Jim*_*yer 58
Spark是一种分布式内存处理引擎.它不需要与Hadoop配对,但由于Hadoop是最受欢迎的大数据处理工具之一,因此Spark可以在该环境中很好地工作.例如,Hadoop使用HDFS(Hadoop分布式文件系统)来存储其数据,因此Spark能够从HDFS读取数据,并将结果保存在HDFS中.
为了提高速度,Spark将其数据集保存在内存中.它通常通过从持久存储中加载数据来启动作业,例如HDFS,Hbase,Cassandra数据库等.一旦加载到内存中,Spark就可以在数据集上运行许多转换来计算所需的结果.然后通常将最终结果写回持久存储.
就它是Hadoop的替代品而言,它在某些操作上可能比Hadoop快得多.例如,由于避免了Hadoop的大多数磁盘I/O,因此Spark中的多次传递映射减少操作可以比Hadoop映射减少快得多.Spark可以读取为Apache Hive格式化的数据,因此Spark SQL比使用HQL(Hive查询语言)快得多.
Cassandra有自己的原生查询语言CQL(Cassandra查询语言),但它只是完整SQL的一小部分,对于聚合和即席查询等内容来说非常糟糕.因此,当Spark与Cassandra配对时,它提供了一种功能更丰富的查询语言,并允许您进行本机CQL无法提供的数据分析.
Spark的另一个用例是流处理.Spark可以设置为摄取传入的实时数据并以微批处理,然后将结果保存到持久存储,如HDFS,Cassandra等.
因此,spark实际上是一个独立的内存系统,可以与许多不同的分布式数据库和文件系统配对,以增加性能,更完整的SQL实现,以及他们可能缺乏这样的流处理的功能.
小智 5
我正在为大学写一篇关于 Hadoop 的论文。并偶然发现了你的问题。Spark 只是将 Hadoop 用于持久性,并且仅在您想使用它时才使用它。可以将其与 Amazon EC2 等其他持久层一起使用。
另一方面,spark 是在内存中运行的,它的构建主要不是用于像 Hadoop 过去/现在这样的 map reduce 用例。
我可以推荐这篇文章,如果你喜欢更详细的描述:https : //www.xpleenty.com/blog/2014/11/apache-spark-vs-hadoop-mapreduce/
归档时间: |
|
查看次数: |
12738 次 |
最近记录: |