关于并行分散处理
关于并行分散处理
并行分布式处理是一种将数据分散、存储和并行处理到多台服务器的方法,用于以现实时间处理大量数据。Hadoop是一种用作大规模分布式处理框架的工具。Hadoop是基于Google发布的GFS和MapReduce论文的开源实现。Hadoop适用于批处理(批处理:一次性处理大量数据)而不是实时处理。对应于批处理的是流处理。流处理是实时处理大量数据的方法。每个数据本身并不大,但产生频率很高。在实时利用数据的情况下,需要使用流处理。
Hadoop 和 Spark
Hadoop是一种用于大规模数据的并行分布式处理框架。它利用多台服务器以并行分布式处理的方式存储和处理大规模数据。它的概念是高效利用多个服务器的磁盘。Hadoop更适用于批处理而不是流式处理。
Spark是一种用于大规模数据的并行分布式处理框架。它有效地利用内存、CPU、磁盘等资源。它包含了用于SQL描述、机器学习、流式处理等常见处理的库。与Hadoop相比,Spark能够更快地处理复杂的处理任务,并进行处理顺序的优化。
从数据源传输数据到Hadoop需要使用中间件”Fluentd”和”embulk”。”Fluentd”适合流式处理,而”embulk”适合批处理。因此,在批处理中,使用embulk进行数据收集,使用Hadoop进行大规模数据的存储和处理,使用Spark进行Hadoop难以处理的复杂任务。在流式处理中,使用Fluentd进行数据收集,使用Kafka(可扩展且高速的分布式消息系统)接收数据,然后使用Spark进行处理。
(Kafka可以在多台服务器上并行处理。它能够快速接收连续发送的数据,并具备不易丢失数据的机制,比如数据写入磁盘。流式数据需要一种临时存储的方式,因为在处理流式任务时,可能会生成新的数据而无法跟上处理进度,导致数据丢失的风险。因此,Kafka作为接收数据的容器存在。)
通过Hadoop和Spark进行的处理是为了在BI工具中使用,对数据进行加工、汇总和分析。Hadoop和Spark都具备可扩展(增加服务器数)的机制。因此,如果性能变差,可以通过增加服务器数量来应对。
以下是参考过的网站:
– 《並列分散処理基盤的いま~45分で学ぶHadoop/Spark/Kafka入門~ 2020-6-27 B-2》
– 《Hadoop MapReduce入門 | Hadoop Advent Calendar 2016 #01》