Hama 是BSP(Bulk Synchronous Parallel整体同步并行)计算框架的一种实现,类似Google研发的Pregel系统。跟前一篇<<Mahout KMeans Clustering学习>>的流程一致,分四不走,在这里我不再多说了。
BSP有三种特性:1. 局部计算,2. 节点通信,3. 全局栅栏同步。
这使得BSP能够很好地实现迭代计算。
Hama版的KMeans比较简单,没有Mahout的复杂的代码架构,因为它只是Hama的这个例子的目的就是告诉大家Hama是能够迭代计算任务。
下面是在完成数据初始化和预处理后,org.apache.hama.ml.kmeans.KMeansBSP.bsp(BSPPeer<VectorWritable, NullWritable, IntWritable, VectorWritable, CenterMessage>)实现的KMeans算法。
@Override public final void bsp( BSPPeer<VectorWritable, NullWritable, IntWritable, VectorWritable, CenterMessage> peer) throws IOException, InterruptedException, SyncException { long converged; while (true) { //每个节点计算它们的簇中心,里面调用peer.send()方法把簇中心列表发送到各个peer节点上去。 assignCenters(peer); peer.sync(); //接收各个机器同步过来的簇中心列表,并且与旧的中心对比。如果收敛,即新旧簇中心都是一样的。里面调用peer.getCurrentMessage()反复接收其他peer节点发过来的CurrentMessage数据 converged = updateCenters(peer); //重新打开数据文件,重新读取 peer.reopenInput(); //判断是否收敛或者是否已经迭代规定次数 if (converged == 0) break; if (maxIterations > 0 && maxIterations < peer.getSuperstepCount()) break; } LOG.info("Finished! Writing the assignments..."); //根据已经分好的簇中心,把数据分到相应的簇里面去 recalculateAssignmentsAndWrite(peer); LOG.info("Done."); }
Hama的特点是不需要启动多个Job去运行,而是在同一个Job里即可以完成迭代任务。这个BSP的整体栅栏同步(Barrier Synchronous)机制保证了数据及状态的正确。
相关推荐
分布式模式的Hama安装笔记,内容如下: 1.参考“hadoop安装.txt”,完成hadoop的安装。节点信息如下: 192.168.1.160 hadoop-1 192.168.1.161 hadoop-2 192.168.1.162 hadoop-3 2.添加环境变量 在/etc/profile...
汉密顿焦虑量表(HAMA) 填表注意事项:在最适合病人情况中划一个钩“√”,所有项目采用0~4分的5级评分法,各级的标准为:(0)为无症状;(1)轻;(2)中等;(3)重;(4)极重。 无症状 轻 中等 重 极重 1、...
1.Hama-0.6.0,里面含有安装版和源码两部分,与hadoop-1.0.3 结合使用,已在Linux(RHEL和Ubuntu)平台测试通过。 2. Hama是基于HDFS上的BSP模型实现。
基于Hama并行计算框架的多层级作业调度算法的研究及实现 胡月胜
mapreduce-kmeans 代码。 请注意,这只是一个示例,而不是可用于生产的代码。 如果您要进行正式生产和正常工作的群集,请使用Mahout,Hama或Spark。 建造 您将需要Java 8来构建该库。 您可以简单地使用以下命令...
refined.zip,scala的简单求精类型scala的简单求精类型
HAMA焦虑量表.doc
HAMA抑郁量表.pdf
2021年HAMA焦虑量表
汉密尔顿焦虑量表HAMA项打印版.pdf
汉密尔顿焦虑量表HAMA(14项打印版)-2页.pdf
基于Hama并行计算框架的多层级作业调度算法的研究及实现.pdf
综合护理干预对无肝素血液透析患者HAMA凝血程度及不良反应率的影响分析
哈马珠 Hama Beads 编辑器
Hadoop 安装 学习 入门教程 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, ...
由于传统的如Hadoop等通用云平台不适合重复式地处理图数据,研究人员基于BSP模型提出了新的处理方案,如Pregel,Hama,Giraph等。然而,图处理算法需要按照图的拓扑结构交换交换中间计算结果而导致巨大的通信开销,...
Arduino库,用于从Ventus W174 / W132(已测试),Auriol H13726,Hama EWS 1500,Meteoscan W155 / W160读取天气数据 此处描述了气象站的传输协议: : 可以通过接收器模块RXB6 / MX-RM-5V进行通信,也可以直接...