./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 10 100用这个方法
时间: 2023-12-31 09:06:12 浏览: 217
这个命令是在 Hadoop 上运行一个 MapReduce 作业来估算圆周率。
具体来说,这个命令做了以下几件事情:
- 通过 Hadoop 命令行客户端工具运行一个 MapReduce 作业。
- 使用 hadoop-mapreduce-examples-3.1.3.jar 这个 jar 包来运行示例作业 pi。
- 将作业参数设置为 10 和 100。其中,10 表示在圆内的点数,100 表示总点数。
这个作业的具体实现是:通过随机生成一个点的二维坐标,判断这个点是否在一个半径为 1 的圆内,最后根据圆内点数和总点数的比例来估算圆周率。
相关问题
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 10 100用这个方法生成小数点后5位数
这个命令是在 Hadoop 上运行一个计算 pi 的示例程序。其中,参数 10 表示计算的 map 数量,100 表示每个 map 任务要计算的数据量。由于 pi 是一个无限不循环小数,程序采用 Monte Carlo 方法来估算 pi 的值。
如果你想将计算结果保留小数点后 5 位数,可以修改程序代码或者在运行命令时添加一个额外的命令来进行格式化。
修改代码:
1. 打开 `hadoop-mapreduce-examples-3.1.3.jar` 文件,解压 `pi.class` 文件。
2. 打开 `pi.class` 文件,找到 `reduce()` 方法。
3. 在 `reduce()` 方法中添加以下代码:
```
BigDecimal pi = new BigDecimal(4.0 * count / total, new MathContext(6));
```
这行代码将计算得到的 pi 值保留小数点后 5 位数,存储在 `pi` 变量中。
4. 重新打包 `pi.class` 文件。
5. 将修改后的 `hadoop-mapreduce-examples-3.1.3.jar` 文件上传到 Hadoop 集群。
6. 运行以下命令:
```
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 10 100
```
这将在 Hadoop 上运行修改后的程序,并输出计算得到的 pi 值。
添加格式化命令:
1. 运行以下命令:
```
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 10 100 | awk '{printf "%.5f\n", $1}'
```
这将在 Hadoop 上运行示例程序,并将计算得到的 pi 值输出到标准输出。
2. `awk` 命令将标准输出中的第一个字段(即计算得到的 pi 值)格式化为小数点后 5 位数,并输出到控制台。
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
这是一个 Hadoop MapReduce 的命令行例子,用于在 Hadoop 上运行一个 grep 操作。
具体来说,它的含义是:
- 使用 Hadoop MapReduce 框架运行一个 jar 包,这个包的路径是 `./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar`。
- 这个 jar 包中有一个 `grep` 的例子,用于在输入文件中查找匹配正则表达式 `dfs[a-z.]+` 的行。
- 输入文件的路径是 `./input`,输出文件的路径是 `./output`。
简单来说,这个命令的作用是在 Hadoop 上运行一个 grep 操作,用于查找输入文件中所有符合正则表达式 `dfs[a-z.]+` 的行,并将结果输出到输出文件中。
阅读全文