首先我只是下载了2003年的数据,因为网络较慢……然后把数据整合到test.txt中,upload到hdfs文件系统中。如图。已有一个test.txt。
数据准备好之后,开始搞代码。代码如图。
然后把它们打包成一个jar包,运行。
结果求得2003年的最低温度是-807。如图。
搞掂!!
接下来是实现hadoop的公平调度器。
首先不做任何修改,直接启动hadoop集群,然后启动两个作业,查看FIFO调度器队列。
可以看到,同时启动两个作业,只会有一个作业运行,另一个作业处在等待状态。
而接下来是用公平调度器,在mapred-site.xml中加入如下属性:
mapred.jobtracker.taskScheduler org.apache.hadoop.mapred.FairScheduler mapred.fairscheduler.poolnameproperty pool.name pool.name ${user.name}
然后在fair-scheduler.xml中设置了两个pool的名字以及容量等。就是在其中加入如下属性。
1 1 2 2 300 6 3 600
然后保存退出,重启集群,同时启动两个作业,查看调度器窗口,如图。可以看出两个作业同时运行,并且系统进行资源分配。