提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:龚雪|2014-09-10 10:09:02.000|阅读 1057 次
概述:
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
百度一下,计算PI的方法还真不少。但在hadoop examples代码中的注释写的是:是采用 Quasi-Monte Carlo 算法来估算PI的值。 维基百科中对Quasi-Monte Carlo的描述比较理论,好多难懂的公式。
好在google了一把,找到了斯坦福大学网站上的一篇文章:《通过扔飞镖也能得出PI的值?》,文章很短,图文并茂,而且很好理解。
我这里将那篇文章的重要部分截了个图:
对上面的图再稍微解释一下:
在这个算法中,很重要的一点是:如何做到“随机地向Figure2投掷”,就是说如何做到Figure2上的每个点被投中的概率相等。
hadoop examples代码中,使用了Halton sequence保证这一点,关于Halton sequence,大家可以参考维基百科。
我这里再总结一下Halton sequence的作用: 在1乘1的正方形中,产生不重复,并且均匀的点。每个点的横坐标和纵坐标的值都在0和1之间。 正是这样,保证了能够做到“随机地向Figure2投掷”。
有人总结了一下,这个实际上叫做蒙特卡洛算法,我们取一个单位的正方形(1×1) 里面做一个内切圆(单位圆),则 单位正方形面积 : 内切单位圆面积 = 单位正方形内的飞镖数 : 内切单位圆内的飞镖数 ,通过计算飞镖个数就可以把单位圆面积算出来, 通过面积,在把圆周率计算出来。 注意 ,精度和你投掷的飞镖次数成正比。
后面2个数字参数的含义:
2个参数的乘积就是总的投掷次数。
我运行的结果:
hadoop的examples中的计算PI的方法属于是采用大量采样的统计学方法,还是属于数据密集型的工作。
作单位圆,再作其内接正N边形(N为2的正整数次方)先计算其内接正N边形周长,可用公式C=N*2R*sin(180/N)计算,其中R为单位圆半径1。sin(180/N)可以连用N次半角公式计算(因为N为2的正整数次方)最后用C/2便可得出圆周率的近似值(因为N可以无限大的取值,所以我们可以无限接近圆周率)
主要针对大块的数据文件,最好是数据规模上G、T级别的,hadoop把大块数据进行切割并进行分布式存储,对小块数据由于系统开销等原因处理速度并不一定比单个串行程序明显。此外,hadoop的mapreduce计算模型通过map任务会产生中间结果文件,reduce任务在处理这些中间结果文件形成最终结果文件并输出。
由 于中间结果文件是存储在各个分布式计算节点本地内存或磁盘上的,如果计算产生的中间结果文件非常巨大,reduce过程需要通过远程过程调用来取得这些中 间结果文件,会加大网络传输的开销,则不适合采用hadoop处理。所以对于是否何时采用hadoop来处理数据,上面讲的两点是必须考虑的问题,对于大规模数据的统计分析,例如求期望方差、或者对海量数据的分布式查询适合用hadoop来做。呵呵~~不知是否解答清楚了你的问题。
转载请注明出处://www.ming-yue.cn/hadoop-pi
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都控件网本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢