2014-03-29 80 views
1

我正在使用hadoop 2.0。當我使用job.setNumMapTasks更改地圖任務的數量時,數量與預期的一樣(在輸出文件夾中的序列文件數量和容器數量中),但它們不是並行運行,而是僅在2一次。例如,當我將地圖任務的數量設置爲5時,其中2個會先執行,然後再執行2個,然後是1.我有一個8核心系統,並希望充分利用它。在線狩獵(包括StackOverflow上)的位似乎暗示一些東西,我試過如下:並行運行多個地圖任務

  1. 調整的參數「mapred.tasktracker.map.tasks.maximum」在mapred-site.xml中設置並行運行的任務數量。我將它設置爲8.
  2. 減少了參數「mapred.max.split.size」。我的輸入序列文件大小是8448509或大約8 MB。因此我將它設置爲2097152(2 MB)。
  3. 低位的DFS塊大小,「dfs.block.size在DFS-site.xml中。我瞭解到,在默認情況下的塊大小是64MB。我它降低到2097152(2 MB)。

在儘管如此,我沒有看到任何性能變化,它仍然是2次地圖任務,我沒有格式化我的hdfs並在3之後重新加載序列文件。不知道是否這是它的原因。

你可以訪問我的配置文件https://www.dropbox.com/sh/jnxsm5m2ic1evn4/zPVcdk8GTp。我在這裏丟失了什麼?

另外,我有另一個問題。有些帖子似乎menti在那個job.setNumMapTasks只是一個環境的指標,實際的數量是由環境決定的。但是,我總是可以根據自己的具體情況找到任務的數量。這是預期的嗎?

感謝和問候, 薩穆德拉

回答