建议楼主先熟悉mapreduce,及相关原理。
推荐参考
MapReduce工作原理讲解
http://www.aboutyun.com/forum.php?mod=viewthread&tid=6723
更多可搜索
#############
问题1 这些信息并不作为key1,value1 传入map 只是在map中需要用到 那么如何读取又如何更新?(希望能有代码例子)
这个需要用到mapreduce的全局变量。由于楼主不熟悉mapreduce编程。还是比较麻烦的。这里只写伪代码及思路
class a{
public static class map
{
@Override
protected void setup(Context context)
throws IOException, InterruptedException {
try {
//从全局配置获取配置参数
Configuration conf = context.getConfiguration();
String parmStr = conf.get("job_parms"); //这里获取值
//比如下面你想更新了。
{ conf.setStrings("job_parms", "cccc"); //这里重新设置即可}......
} catch (SQLException e) {
e.printStackTrace();
}
}
}
class reduce()
{}
main()
{
Configuration conf = new Configuration();
conf.setStrings("job_parms", "aaabbc"); //关键就是这一句,这里是初始值
Job job = new Job(conf, "load analysis");
job.setJarByClass(LoadAnalysis.class);
job.setMapperClass(LoadMapper.class);
job.setReducerClass(LoadIntoHbaseReduce.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
}
}
问题2 信息素启发因子α β ρ 迭代次数 NC 蚁群数量 Antnumber 都是常量(α=1 β=5 ρ=0.5 NC=1000 Antnumber=200 Citynumber=48/532)以什么样的形式存在HDFS上?
这个其实在简单不过了。可能是楼主编程经验的问题。你可以像第一个问题一样,放到xml文件中,也可以存到随便一个文件中。用到读取即可
二、在mapreduce过程当中 map1(key1,value1)是以reduce的结果做为参数应该如何用管道实现(希望能有代码例子)
其实楼主的意思是不是迭代的意思。
可以参考这个,里面有代码的
让你真正明白什么是MapReduce组合式,迭代式,链式
http://www.aboutyun.com/forum.php?mod=viewthread&tid=7435
其实用spark做这个最简单了。但是学习是个成本,如果精力和时间充足,可以看看spark。
三、在并行化过程当中 希望的是三个jobtracker(三台计算机节点)都执行map过程(蚂蚁自由遍历城市),如何分配任务让3个节点都执行map同时最后通过1个reduce把三台计算机的map结果比较后输出?(问1:如何让3台计算机都执行相同的map。问2:如何让所有的map结果都输入到一个reduece进行比较(比较路径长度最短为最优解输出)?)
这个楼主操心有点多了,也是因为没有真正的认识mapreduce,mapreduce会自动分配任务。且数据是分割的。
问题2:
可以尝试下面配置
conf/mapred-site.xml
<property>
<name>mapred.reduce.tasks</name>
<value>1</value>
</property>
以上问题希望能得到各位解答,希望能有类似的例子源码让我借鉴,同时也希望各位能帮助我理解hadoop集群,我在网上看了很多的例子觉得不是很适用于我的问题,希望能尽快得到解答,谢谢各位
----------本人使用的是hadoop2.7以及eclipse编程-----
在2.7中似乎jobtracker已经被yarn中的resourcemanager和datamanager给取代 那么我该如何分配工作给各个节点
如何分配,系统会自动分配的。只要自己写好mapreduce,剩下的交给系统
|