Hadoop提供了一个示例jar文件用于测试目的。 在这个jar文件中,有一个示例来解决数独问题。
1.输入文件
要使用此示例,我们需要为数独问题创建一个输入文件。 在此文件中,每个数独单元都可以是数字或“?” 用空格作为分隔符。就像这样:
文件:puzzle1.dta
8 5 ? 3 9 ? ? ? ?
? ? 2 ? ? ? ? ? ?
? ? 6 ? 1 ? ? ? 2
? ? 4 ? ? 3 ? 5 9
? ? 8 9 ? 1 4 ? ?
3 2 ? 4 ? ? 8 ? ?
9 ? ? ? 8 ? 5 ? ?
? ? ? ? ? ? 2 ? ?
? ? ? ? 4 5 ? 7 8
您可以在Hadoop目录中找到此“ puzzle1.dta”文件:
hadoop-0.20.2/src/examples/org/apache/hadoop/examples/dancing/puzzle1.dta
要么
hadoop-2.0.0-alpha-/src/hadoop-mapreduce-project/hadoop-mapreduce-examples/
src/main/java/org/apache/hadoop/examples/dancing/puzzle1.dta
2. Hadoop部分
现在,我们需要将此输入文件保存在本地目录中。 并将此输入提供给hadoop示例jar。 启动hadoop并运行以下命令:
$hadoop-directory/bin/hadoop jar hadoop-examples-version.jar sudoku puzzle1.dta
Solving puzzle1.dta
8 5 1 3 9 2 6 4 7
4 3 2 6 7 8 1 9 5
7 9 6 5 1 4 3 8 2
6 1 4 8 2 3 7 5 9
5 7 8 9 6 1 4 2 3
3 2 9 4 5 7 8 1 6
9 4 7 2 8 6 5 3 1
1 8 5 7 3 9 2 6 4
2 6 3 1 4 5 9 7 8
Found 1 solutions
Hadoop会在几秒钟内为您提供所有可能的难题解决方案。(如果答案不只一个,时间会更长)。
注意
您必须提供hadoop的本地路径(在此示例中,jar文件和拼图位于同一目录中)
如有疑问,您可以给我留言。
参考文献
翻译自: https://mkyong.com/hadoop/how-to-solve-sudoku-using-hadoop/