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