我试图找到多少内存将火花的工作是必需的。
当我运行的工作,我得到异常:
15/02/12 12:01:08 INFO rdd.HadoopRDD: Input split: file:/c:/data/example.txt:20661+20661
15/02/12 12:01:08 INFO rdd.HadoopRDD: Input split: file:/c:/data/example.txt:61983+20661
15/02/12 12:01:09 INFO rdd.HadoopRDD: Input split: file:/c:/data/example.txt:0+20661
15/02/12 12:01:09 INFO rdd.HadoopRDD: Input split: file:/c:/data/example.txt:61983+20661
15/02/12 12:01:09 INFO rdd.HadoopRDD: Input split: file:/c:/data/example.txt:41322+20661
15/02/12 12:01:09 INFO rdd.HadoopRDD: Input split: file:/c:/data/example.txt:20661+20661
15/02/12 12:01:11 ERROR executor.Executor: Exception in task 2.0 in stage 0.0 (TID 2)
java.lang.OutOfMemoryError: Java heap space
还有更多的信息与“15/02/12 12时01分08秒INFO rdd.HadoopRDD:输入分流:文件:/ C:/data/example.txt:20661 + 20661”的打印,只需截断他们在这里为简便起见。
我登录了计算和大约1'000'000计算后,我收到例外以上。
计算完成工作所需的数量是64'000'000
目前我使用2GB的内存那么,这是否意味着运行在内存这份工作没有任何进一步的代码更改需要2GB * 64 = 128GB或者这是预期所需的内存的太simpistic方法?
如何是各分割文件,例如 “12点01分09秒15/02/12 INFO rdd.HadoopRDD:输入分裂:文件:/ C:/data/example.txt:20661 + 20661” 而生成? 这些未添加到文件系统“文件:/ C:/data/example.txt:20661 + 20661”并不本地计算机上存在吗?