基于Hadoop的第二个分布式算法Day3

 迭代式Mapreduce跑通。

 首先要说明,技术上是没问题的,现在才跑出来是因为各种小Bug~

http://dongxicheng.org/mapreduce/iterative-mapreduce-intro/ 这个博客说明了迭代式任务的情况和应用,比如机器学习和其它需要迭代的算法,结合上一篇挂出的博客,技术上没问题,至于性能,要么优化,要么看有没有必要迭代Mapreduce了。(我居然还下载了mahout的源码,说不定会借鉴一下)

 1.有一个往HDFS里写数据的问题,http://blog.csdn.net/dongbeiman/article/details/51767081,用FSDataOutputStream这个类就ok,我没试能不能嵌套其它输出流,但应该是没问题的。

 2.关于关闭流顺序,http://blog.csdn.net/jq_ak47/article/details/47336611,简单说就是后用的先关闭,否则会报stream closed错。

 3.关于关闭流的问题,经我慢慢分析,问题定位到第二次迭代的时候文件为空,啥也没写进去,回去看代码吧,发现我没关闭输出流!然后再跑,发现只写进去一个文件,我是放在一个for循环里,写出多个文件的,再回去看代码吧,是我把关闭流放在for循环外面了!应该写一个文件关闭一次啊!关闭流就是写进去的里程碑啊!然后把关闭流放在for循环里,好了。

今天剩余的问题是,跑起来真的是,明天有两个方向:1.增大e下降的步长,2.验证正确性。

猜你喜欢

转载自blog.csdn.net/xerjava/article/details/78370382
今日推荐