在hadoop中,如何解析日志文件以获得多个信息,而不仅仅是像wordcount这样的一个信息?

在hadoop中,如何解析日志文件以获得多个信息,而不仅仅是像wordcount这样的一个信息?,hadoop,Hadoop,我想知道hadoop如何处理日志文件解析,如果我们不仅需要计算一个简单的指标(例如,最流行的词),还需要计算许多指标(例如,以下所有指标:按性别划分的平均身高、按电话类型划分的前10个站点、按成人/儿童划分的前10个单词) 在不使用hadoop的情况下,我认为一个典型的分布式解决方案是:使用哈希将日志拆分为不同的机器,等等; 每台机器解析自己的日志文件,并为这些日志文件计算不同的度量。结果可以存储为SQL、XML或其他格式的文件。然后,主计算机解析这些中间文件,聚合这些度量,并将最终结果存储到另

我想知道hadoop如何处理日志文件解析,如果我们不仅需要计算一个简单的指标(例如,最流行的词),还需要计算许多指标(例如,以下所有指标:按性别划分的平均身高、按电话类型划分的前10个站点、按成人/儿童划分的前10个单词)

在不使用hadoop的情况下,我认为一个典型的分布式解决方案是:使用哈希将日志拆分为不同的机器,等等; 每台机器解析自己的日志文件,并为这些日志文件计算不同的度量。结果可以存储为SQL、XML或其他格式的文件。然后,主计算机解析这些中间文件,聚合这些度量,并将最终结果存储到另一个文件中

使用hadoop,如何获得最终结果?我看到的所有例子都是非常简单的例子,比如数词

我只是不知道hadoop mapreducer将如何合作,智能地聚合中间文件以获得最终结果。我想也许我的映射器应该把中间文件保存在某个地方,我的reducer应该解析中间文件以得到最终结果。我一定是错了,因为如果我的映射器和减速器以这种方式实现,我看不到任何好处

据说map和reduce的格式应该是:
地图:(K1,V1)→ 列表(K2,V2)
联合收割机:(K2,列表(V2))→ 列表(K2,V2)
减少:(K2,列表(V2))→ 列表(K3,V3)


总之,如何设计我的mapper和reducer代码(假设使用python,其他语言也可以)。有人能回答我的问题或提供一个链接供我阅读吗?

开始思考如何以MR方式解决挑战。这里(,)是一些资源。这些都有一些可以用任何语言实现的MR算法。

谢谢,我们来看看这些书。但无论如何,似乎必须重写原始的非hadoop系统。