首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过从SSH中直接调用Hadoop来启动作业

通过从SSH中直接调用Hadoop来启动作业
EN

Stack Overflow用户
提问于 2011-10-05 07:07:57
回答 1查看 1.1K关注 0票数 0

我已经能够使用elastic-mapreduce ruby库很好地启动工作流程。现在我有了一个实例,它在作业完成后仍然是“活动的”。我已经使用SSH登录到is,并希望启动另一个作业,但每次尝试都失败了,因为hadoop找不到输入文件。我已经尝试在本地和S3上存储输入文件。

如何在SSH会话中直接创建新的hadoop作业?

我尝试的错误如下:

(第一次尝试使用本地文件存储,这是我通过使用SFTP上传文件创建的)

代码语言:javascript
复制
hadoop jar hadoop-0.20-streaming.jar \
-input /home/hadoop/mystic/search_sets/test_sample.txt \
-output /home/hadoop/mystic/search_sets/test_sample_output.txt \
-mapper /home/hadoop/mystic/ctmp1_mapper.py \
-reducer /home/hadoop/mystic/ctmp1_reducer.py \
-file /home/hadoop/mystic/ctmp1_mapper.py \
-file /home/hadoop/mystic/ctmp1_reducer.py

11/10/04 22:33:57 ERROR streaming.StreamJob: Error Launching job :Input path does not exist: hdfs://ip-xx-xxx-xxx-xxx.us-west-1.compute.internal:9000/home/hadoop/mystic/search_sets/test_sample.txt

(第二次尝试使用s3):

代码语言:javascript
复制
hadoop jar hadoop-0.20-streaming.jar \
-input s3n://xxxbucket1/test_sample.txt \
-output /home/hadoop/mystic/search_sets/test_sample_output.txt \
-mapper /home/hadoop/mystic/ctmp1_mapper.py \
-reducer /home/hadoop/mystic/ctmp1_reducer.py \
-file /home/hadoop/mystic/ctmp1_mapper.py \
-file /home/hadoop/mystic/ctmp1_reducer.py

11/10/04 22:26:45 ERROR streaming.StreamJob: Error Launching job : Input path does not exist: s3n://xxxbucket1/test_sample.txt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-05 23:37:52

第一种是行不通的。Hadoop将在HDFS中查找该位置,而不是本地存储。如果使用file://前缀,它可能会起作用,如下所示:

代码语言:javascript
复制
-input file:///home/hadoop/mystic/search_sets/test_sample.txt

不过,我从来没有在流输入中尝试过这种方法,即使它确实有效,也可能不是最好的主意。

第二个(S3)应该可以工作。我们一直都在这么做。确保该文件确实存在:

代码语言:javascript
复制
hadoop dfs -ls s3n://xxxbucket1/test_sample.txt

或者,您可以将文件放在HDFS中并正常使用。然而,对于电子病历中的工作,我通常发现S3是最方便的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7655056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档