我正在研究Hadoop和MapReduce(我是初学者!)并且有一个关于HDFS的简单问题。关于HDFS和MapReduce如何协同工作,我有点困惑。
假设我有来自系统A,推文和来自系统B的一堆文档的日志。当这被加载到Hadoop / HDFS中时,这一切都被抛入一个大的HDFS桶中,还是会有3个区域(对于想要一个更好的词)?如果是这样,那么正确的术语是什么?
问题源于了解如何执行MapReduce作业。如果我只想专注于日志,例如,可以这样做,还是在集群上存储的整个内容上执行所有作业?
感谢您的指导! TM
答案 0 :(得分:1)
HDFS是一个文件系统。与在本地文件系统中一样,您可以将所有日志和文档组织到多个文件和目录中。运行MapReduce作业时,通常会在输入文件中指定一个目录。因此,可以仅对来自系统A的日志或来自系统B的文档执行作业。
然而,映射器的输入由InputFormat
指定。大多数实现源自FileInputFormat
,它读取文件。但是,可以实现自定义InputFormats
以便从其他来源读取数据。您可以在此Hadoop Tutorial中找到有关输入和输出格式的说明。