2012-07-16 45 views
0

此问题与Azure环境中的Hadoop有关。Azure环境中的Hadoop中的Runtime.exec()

我正在尝试使用Runtime.exec()在reduce函数中执行批处理脚本。我无法在Azure环境中的Hadoop上运行它,而在Linux上的Hadoop上运行良好。我测试了我的桌面(Windows 7)环境中的Runtime.exec()代码片段,它在那里运行良好。我已经确保在Runtime.exec()之后使用子进程的输出和错误流。

将批料脚本包含以下(单个命令):

C:\ HDFS \ mapred \本地\的TaskTracker \纳比尔\ jobcache \ job_201207121317_0024 \ attempt_201207121317_0024_r_000001_0 \工作\ tool.exe -fc:\ HDFS \ mapred \本地\的TaskTracker \纳比尔\ jobcache \ job_201207121317_0024 \工作\ 11_task_201207121317_0024_r_000001.out -ic:\ HDFS \ mapred \本地\的TaskTracker \纳比尔\ jobcache \ job_201207121317_0024 \ attempt_201207121317_0024_r_000001_0 \工作\ input.txt中

我分配使用分布式缓存的tool.exe和input.txt文件,并从工作目录创建符号链接。 tool.exe和input.txt指向jobcache目录中的实际文件。

2012-07-16 04:31:51613信息org.apache.hadoop.mapred.TaskRunner:创建符号链接:/hdfs/mapred/local/taskTracker/distcache/-978619214658189372_-1497645545_209290723/10.73.50.78tool.exe < - \ hdfs \ mapred \ local \ taskTracker \ nabeel \ jobcache \ job_201207121317_0024 \ attempt_201207121317_0024_r_000001_0 \ work \ tool.exe 2012-07-16 04:31:51,644 INFO org.apache.hadoop.mapred.TaskRunner:创建符号链接:/ HDFS/mapred /本地/的TaskTracker/distcache/-4944695173898834237_1545037473_2085004342/10.73.50.78input.txt < - \ HDFS \ mapred \本地\的TaskTracker \纳比尔\ jobcache \ job_201207121317_0024 \ attempt_201207121317_0024_r_000001_0 \工作\ input.txt中

的减速给运行时发生下面的错误。

命令执行错误:不能运行程序 “CMD/Q /cc:\hdfs\mapred\local\taskTracker\nabeel\jobcache\job_201207121317_0024\work\11_task_201207121317_0024_r_0000011513543720767963399.bat”: CreateProcess的错误= 2,系统不能找到该文件指定

在另一情况下,我试图运行相同的,但不使用绝对路径..从该子过程的输出流如下:

C:\ HDFS \ mapred \本地\ taskTracker \ nabeel \ jobcache \ job_201207121317_0022 \ attempt_201207121317_0022_r_000000_0 \ work> tool.exe -f/hdfs/mapred/local/taskTracker/nabeel/jobcache/job_20 1207121317_0022/work/1_task_201207121317_0022_r_000000.out -i input.txt

我不知道作业工作目录路径和分布式缓存在Hadoop中如何在Azure环境中工作。如果我在这里(或)在Azure环境中的Hadoop中使用Runtime.exec()时需要照顾一些内容,请告诉我是否在这里丢失了某些东西。

感谢,

._ 回复发信人|回复群组|通过网页回复|开始一个新主题

回答

0

我不熟悉Hadoop。但是错误信息似乎很明显。如果你能检查文件是否存在,会更好。

C:\ HDFS \ mapred \本地\的TaskTracker \纳比尔\ jobcache \ job_201207121317_0024 \工作\ 11_task_201207121317_0024_r_0000011513543720767963399.bat

最好的问候,

徐明

+0

是啊..我只访问HoA平台中的头节点,而不是实际运行映射器/缩减器的节点。但无论如何,我都可以通过我的程序打开此文件并阅读内容。这证实了.bat文件的存在。 – user1530241 2012-07-17 11:44:06