使用Hadoop自带的例子pi计算圆周率

本文介绍如何使用Hadoop自带的hadoop-mapreduce-examples-2.7.6.jar进行圆周率π的计算。首先启动Hadoop集群,然后通过执行特定命令运行计算圆周率的MapReduce程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hadoop中自带的hadoop-mapreduce-examples-2.7.6.jar含有一些事例,本文将用pi计算圆周率。若想了解其计算原理,参考:http://thinkinginhadoop.iteye.com/blog/710847

具体步骤如下:

1. 启动Hadoop

    切换到Hadoop安装目录下的sbin目录下执行./start-all.sh命令

    或执行./start-dfs.sh./start-yarn.sh两条命令

2. 使用hadoop-mapreduce-examples-2.7.6.jar计算圆周率

    hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar pi 10 10

    其中:第一个10是运行10次map任务,第二个10是每个map任务投掷次数,所以总投掷次数是10×10=100。

    

在XShell(通常指SSH客户端)中通过Hadoop进行大规模并行计算&pi;(pi)的例子通常涉及MapReduce编程模型。这里是一个简化的步骤描述: 1. **设置环境**: - 确保你已经安装了Hadoop(包括HDFS和YARN)并在集群上运行。 - 安装Hadoop命令行工具,如hadoop、hdfs、yarn等。 2. **编写Mapper和Reducer**: - Mapper任务接收输入数据(比如范围内的整数对),将每个整数映射到其平方除以4的结果。 - Reducer任务接收Mapper的输出,计算所有有效项的累积值,然后通过一些数学操作得到近似的&pi;值。 以下是伪代码示例(假设mapper.sh和reducer.sh分别为Mapper和Reducer脚本): **Mapper.sh** ```bash #!/bin/bash input=$1 output=$2 for i in $input; do echo "$i\t$i*i/4" >> $output done ``` **Reducer.sh** ```bash #!/bin/bash input=$1 output=$2 sum=0 while read key value; do sum=$(echo "scale=16; $sum + $value" | bc) done < $input echo "&pi; \t $((4 * sum / input))" >> $output ``` 3. **创建配置文件**: - 创建一个job.xml文件,配置mapper和reducer的路径以及所需的其他属性。 4. **提交作业**: ``` hadoop jar hadoop-streaming.jar -mapper mapper.sh -reducer reducer.sh -input input.txt -output pi_result -file mapper.sh -file reducer.sh ``` 这里`input.txt`是输入的数据源,通常是包含一系列随机生成的大范围整数对。 5. **查看结果**: HDFS中的pi_result目录会有一个输出文件,包含&pi;的近似值。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值