概述
为了充分发挥Hadoop提供的并行处理优势,我们需要将查询表示成MapReduce作业。经过一些本地的小规模测试,我们将能够在集群设备上运行Hadoop。
Map阶段和reduce阶段
MapReduce任务过程被分为两个处理阶段:map阶段和reduce阶段。每个阶段都以键/值对作为输入和输出,并由程序员选择他们的类型。程序员还需要具体定义两个函数:map函数和reduce函数。
map阶段的输入是原始的数据(从NCDC获取)。我们选择文本格式作为输入格式,以便将数据集的每一行作为一个文本值进行输入。键为该行起始位置相对于文件其实位置的偏移量,但是我们不需要这个信息,忽略。
我们要的map函数很简答。由于我们只对年份和气温这两个属性感兴趣,所以只需要取出这两个属性数据。在本例中,map函数只是一个数据准备阶段,通过这种方式来准备数据,是reduce函数能在该准备数据上继续处理:即找出每年的最高气温。
为了全面了解map的工作方式,我们思考一下几行作为输入数据的示例数据:
0067011990999991950051507004…9999999N9+00001+99999…
0043011990999991950051512004…9999999N9+00221+99999…
0043011990999991950051518004…9999999N9-00111+999999…
0043012650999991949032412004…0500001N9&#
最后
以上就是大方雪碧为你收集整理的使用Hadoop分析数据——简单案例java语言编程之MaxTemperature的全部内容,希望文章能够帮你解决使用Hadoop分析数据——简单案例java语言编程之MaxTemperature所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复