Assignment 3 成绩已上传

91 vues
Accéder directement au premier message non lu

Han Jiang

non lue,
27 juil. 2014, 23:05:1527/07/2014
à cs402pku
大家好,第三次作业的成绩也已经发布在课程网站了。

http://net.pku.edu.cn/~course/cs402/2014/assign/scores3.htm

这次大部分同学都非常努力!从你们提交的代码和报告中,都可以看出不少同学费了很多精力去钻研各种方法。从讨论组和平时的答疑中,我们助教也学到了很多新的东西,在此点32个赞!

几个常见问题:

1. reducer 和 combiner 混用。在wordcount和"wordpaircount"这两个作业中,这个问题比较不明显,但是,如果我们在reducer中想做一些特别的操作,比如统计词项 df 等,这时很可能忘记在统计后输出出来,保证被当成 combiner 调用的reducer函数能把数据传到下一个阶段。

2. 为了应对AP数据集,大部分同学选择把可用内存调大,其实,这个挺trick的...这里引用一下Huo Haoyan同学的建议:

"实际测试中,在数据量非常大的时候(例如运行AP数据) ,reduce环节会发生Java Heap溢
出的情况。为了避免溢出,程序最终放弃了Hadoop自带的Context write 方法,而是选择了
另一种方法将数据写入HDFS。在reducer 初始化环节,它的 setup方法会被调用,此时程序
会获得reduce的 worker id, 然后根据这个id创建一个 HDFS文件, 同时用GZIPOutputStream
进行包装,将数据压缩;Reduce环节程序不再使用Context的写入方法,而是直接操作之前
创建的文件;最终reducer结束,cleanup方法被调用,程序将缓存写入文件,然后关闭流。
Hadoop默认生成的reduce 输出数据被用NullOutputFormat取消。这样程序可以处理任意大
的数据而不可能发生内存溢出的情况了。"

然后是几个后续建议吧:

1. pagerank的调试是比较麻烦的,正如先前建议的,希望大家先在小数据集上测试好了,然后再转到较大的数据集循序渐近。除了我在组里提到的minwiki-test.xml,你们还可以试一试这个:

  /cs402/jh/tinywiki-test.xml

只有 3 个结点的闭集,同时pagerank已经算好可以验证了。不妨一试。

2. 在调试中出现奇怪的问题时,其实是可以用System.err.println()直接打印出来的,输出的内容可以在changping11对应的job中,把日志调出来看,比如 :

http://changping11:50030/jobfailures.jsp?jobid=job_201407221030_4169&kind=map&cause=killed

中的"logs"链接。(上面这个链接可能过不久就会失效)


3. 希望大家或多或少关注一下自己写的程序能否在时间性能上有所改进。

嗯,好好加油吧!


--
Han Jiang

Team of Search Engine and Web Mining,
School of Electronic Engineering and Computer Science
,
Peking University, China

赵一帆

non lue,
27 juil. 2014, 23:23:0127/07/2014
à cs40...@googlegroups.com
赞!
顺便问一句最后成绩怎么算呢

在 2014年7月28日星期一UTC+8上午11时05分15秒,Han Jiang写道:

郭行健

non lue,
28 juil. 2014, 00:51:5928/07/2014
à cs40...@googlegroups.com
一帆子心想:我又要满绩了2333

在 2014年7月28日星期一UTC+8上午11时23分01秒,赵一帆写道:

赵一帆

non lue,
28 juil. 2014, 01:31:4828/07/2014
à cs40...@googlegroups.com
泥垢了又黑我

在 2014年7月28日星期一UTC+8下午12时51分59秒,郭行健写道:

xiongh...@gmail.com

non lue,
28 juil. 2014, 09:45:1628/07/2014
à cs40...@googlegroups.com,h...@apache.org
关于tinywiki-test.xml能写一下中间结果么,最好将每步的算式也写一下,这样才好一步一步调试。只给一个结果反而使人糊涂了,因为按我自己的算式算每步都和自己的中间结果相同,可就是结果与tinywiki-test.xml写的rank值对不上。


在 2014年7月28日星期一UTC+8上午11时05分15秒,Han Jiang写道:

Han Jiang

non lue,
28 juil. 2014, 10:29:4928/07/2014
à cs402pku
这个吧?

PR[0]=0.5+0.5*1/1PR[2]
PR[1]=0.5+0.5*1/2PR[0]
PR[2]=0.5+0.5*1/2PR[0]+0.5*1/1PR[1]
--------
0 1
1 0.75
2 1.125
--------
PR[0]=0.5+0.5*1/1PR[2]
PR[1]=0.5+0.5*1/2PR[0]
PR[2]=0.5+0.5*1/2PR[0]+0.5*1/1PR[1]
--------
0 1.0625
1 0.765625
2 1.14844
--------
PR[0]=0.5+0.5*1/1PR[2]
PR[1]=0.5+0.5*1/2PR[0]
PR[2]=0.5+0.5*1/2PR[0]+0.5*1/1PR[1]
--------
0 1.07422
1 0.768555
2 1.15283
--------
PR[0]=0.5+0.5*1/1PR[2]
PR[1]=0.5+0.5*1/2PR[0]
PR[2]=0.5+0.5*1/2PR[0]+0.5*1/1PR[1]
--------
0 1.07642
1 0.769104
2 1.15366
--------
PR[0]=0.5+0.5*1/1PR[2]
PR[1]=0.5+0.5*1/2PR[0]
PR[2]=0.5+0.5*1/2PR[0]+0.5*1/1PR[1]
--------
0 1.07683
1 0.769207
2 1.15381
--------
PR[0]=0.5+0.5*1/1PR[2]
PR[1]=0.5+0.5*1/2PR[0]
PR[2]=0.5+0.5*1/2PR[0]+0.5*1/1PR[1]
--------
0 1.07691
1 0.769226
2 1.15384
--------
Result:
2 1.15383946895599365234
0 1.07690525054931640625
1 0.76922631263732910156
> --
> You received this message because you are subscribed to the Google Groups
> "cs402pku" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to cs402pku+u...@googlegroups.com.
> To post to this group, send email to cs40...@googlegroups.com.
> Visit this group at http://groups.google.com/group/cs402pku.
> For more options, visit https://groups.google.com/d/optout.

xiongh...@gmail.com

non lue,
28 juil. 2014, 11:14:3728/07/2014
à cs40...@googlegroups.com,h...@apache.org
谢谢,代码已调对。从第二步开始对不上,但最终结果是对得上的。有了第一步的结果已明白自己的问题在哪儿了。

在 2014年7月28日星期一UTC+8上午11时05分15秒,Han Jiang写道:

杨博文

non lue,
28 juil. 2014, 11:23:5928/07/2014
à cs40...@googlegroups.com,h...@apache.org
赞助教学长的效率QAQ

在 2014年7月28日星期一UTC+8上午11时05分15秒,Han Jiang写道:
Répondre à tous
Répondre à l'auteur
Transférer
0 nouveau message