大数据篇 | Hadoop、HDFS、HIVE、HBase、Spark之间的联系与区别

1、Hadoop

  • Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。它提供了一个可扩展的分布式文件系统(HDFS)和一个分布式计算框架(MapReduce),可以在大量廉价硬件上进行并行计算。

2、HDFS

  • HDFS(Hadoop Distributed File System)是Hadoop的分布式文件系统。它被设计用于在集群中存储和管理大规模数据集。HDFS将数据分割成块,并将这些块复制到不同的计算节点上,以提供容错性和高可用性。
  • 据我了解,大部分公司一般将模型需要的数据例如csv/libsvm格式的文件都会保存成Hive表并存放在HDFS上。

3、HIVE

  • HIVE是基于Hadoop的数据仓库基础设施,提供了一种类似于SQL的查询语言(HiveQL),用于查询和分析存储在Hadoop上的数据。Hive可以将结构化数据映射到Hadoop的分布式文件系统上HDSF上,并提供高层抽象,使用户能够使用类SQL语法进行查询和分析。
  • Hive构建在HDFS之上,本质上可看作是一个翻译器,将HiveSQL语言翻译成MapReduce程序或Spark程序。
  • 据我了解,大部分公司一般将模型需要的数据例如csv/libsvm格式的文件都会保存成Hive表并存放在HDFS上。一般利用tensorflow的TFRecords来大规模的读取HDFS上的数据。Tensorflow提供了一种解决方法:spark-tensorflow-connector,支持将spark DataFrame格式数据直接保存为TFRecords格式数据,接下来就带大家了解一下TFRecord的原理、构成和如何生成TFRecords文件。

4、HBase

HBase是一个分布式、可扩展、面向列的NoSQL数据库,建立在Hadoop之上。它提供了对大规模数据集的实时读写访问能力,并具有高可靠性和高性能的特点。HBase适用于需要随机、快速访问大规模数据的应用程序。

5、Spark

  • Spark是一个快速、通用的大数据处理引擎,可以进行分布式数据处理和分析。与Hadoop的MapReduce相比,Spark具有更高的性能和更丰富的功能。Spark支持多种编程语言(如Scala、Java和Python(pyspark)),并提供了一组丰富的API,包括用于数据处理、机器学习和图计算的库。
  • 据我了解,大部分公司,都会对于数据的预处理+模型的推理,都会用pyspark来做分布式处理,如模型的分布式推理(tensorflow和torch只支持分布式训练,不支持分布式预测)。







Reference:

  • [1] ChatGPT
  • [2] Me

猜你喜欢

转载自blog.csdn.net/weixin_43646592/article/details/130191099