Haloop介绍

Haloop用户手册:http://code.google.com/p/haloop/wiki/UserManual

 

1.介绍

Haloop是一个Hadoop MapReduce框架的修改版本,其目标是为了高效支持 迭代,递归数据 分析任务,如PageRank,HITs,K-means,sssp等。递归的连接可能在map端(K-means),也可能在reduce端(PageRank)。

Haloop的基本思想是缓存 循环不变量(即静态变量) 到salve nodes。每次迭代重用这些数据。

2.下载Haloop

3,运行Haloop

  Haloop的配置 与Hadoop完全相同,除了它没有单机模式和伪分布模式。

  Haloop命令行选项 也与Hadoop相同

  故障排除:

   (1)java.lang.OutOfMemoryError: Java heap space
            堆空间异常,大部分情况是因为JVM在垃圾收集上花费大量时间。通过 setting -Xmx提高堆大小heap size一般不起作用。即使这个异常消失,JVM仍在垃圾收集上花费不少时间,这会使性能很糟糕。这是检查Mapper/Reducer代码是否创建了过多对象。因为进入M/R的数据很大,所以m/r函数会被多次调用。导致堆空间不够。尽量减少new操作。。 

  (2)java.io.IOException: Type mismatch in key from map: expected

            不相容类型,一般是因为输入输出与map/reduce作业的键值对不匹配。

   (3)参数设置

              确保迭代过程的每一个人物都有正确的参数设置

4.例子

 PageRank example: Naive PageRank Implementation.

重用原始PageRank的主要部分,得到新版本:PageRank Implementation on HaLoop. 用如下方式运行代码:

$wget http://snap.stanford.edu/data/soc-LiveJournal1.txt.gz
$gzip -d soc-LiveJournal1.txt.gz
$export dataset_path=livejournal
$export result_path=lvjresult
$chmod 755 *.sh
$bin/hadoop dfs -put *livejournal*.txt $dataset_path
$./retest.sh
$./pagerank.sh $dataset_path $result_path <num_of_iteration> <num_of_vertices> <num_of_reducers>

查看结果

$bin/hadoop dfs -get $result_path/i3/part* result/
$cat result/*

运行原始pageRank比较结果:

$./naivepagerank.sh $dataset_path $result_path <num_of_iteration> <num_of_vertices> <num_of_reducers>

注意:两次运行迭代次数都被设置为2,这个可以设置为自己想要的数据。但是应该看到 Haloop的缺陷(这里有描述:http://www.wikieno.com/2012/02/iterative-mapred-summary-haloop/):没有一个客观的停止迭代的标准

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值