Haloop介绍
来源:互联网 发布:自动完成算法 编辑:程序博客网 时间:2024/06/05 17:17
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 keyfrom 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/):没有一个客观的停止迭代的标准
- Haloop介绍
- HaLoop
- HaLoop——适用于迭代计算的Hadoop
- HaLoop—适用于迭代计算的Hadoop
- HaLoop——适用于迭代计算的Hadoop
- HaLoop:大集群上高效的迭代数据处理(上)
- HaLoop:大集群上高效的迭代数据处理(下)
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 第13实验报告4
- Mathematica图像操作基础
- 10年的程序员生涯总结
- nginx源码分析—hash结构ngx_hash_t(v1.0.4)
- sed 匹配模式问题
- Haloop介绍
- php中使用while、each与list函数组合遍历二维数组的方法
- 李嘉诚 演讲
- JAVA程序内存溢出问题的分析
- 责任链模式
- iphone开发之轻松搞定原生socket 编程,阻塞与非阻塞,收发自如
- 黑马程序员--SQL入门基础知识--DQL
- 学习3D《3、旋转用单位向量表示》
- C# 汉字转换成拼音