hadoop流媒体mapreduce是否可以实现任何算法?

2024-09-28 21:56:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集:

用户功能1功能2功能3功能4。。。在

用户1 f11 f12 f13 f14。。。在

用户2 f21 f22 f23 f24。。。在

我有一个算法应用于这个数据集,这样,对于每个用户,我们可以计算出这个用户和其他用户之间的相似度得分:

      score{user_i}=algorithm(dict{user_i},dict{user_k})

dict{user_i}=[f11,f12,f13,f14]是一个散列。在

对于每个用户,在计算出用户与其他所有用户的相似度后,对相似度得分进行降序排序,并给出输出。在

这是减速器.py公司名称:

^{pr2}$

以下是hadoop流媒体的bash文件:

hadoop fs -rmr /tmp/somec/some/

hadoop jar *.jar \
       -input /user/hive/warehouse/fb_text/ \
       -output /tmp/somec/some/ \
       -mapper "cat" \
       -reducer "jac.py" \
       -file jac.py \

fb_文本以制表符分隔。这很好。我测试了一个字计数hadoop流作业。它跑得很顺利。在

下面是hadoop流媒体错误:

rmr: DEPRECATED: Please use 'rm -r' instead.
14/05/14 00:31:55 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion     interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /tmp/somec/some
14/05/14 00:31:57 WARN streaming.StreamJob: -file option is deprecated, please use     generic option -files instead.
packageJobJar: [jac.py] [/opt/cloudera/parcels/CDH-5.0.0-0.cdh5b2.p0.27/lib/hadoop-    mapreduce/hadoop-streaming-2.2.0-cdh5.0.0-beta-2.jar]     /tmp/streamjob3048667246321733915.jar tmpDir=null
14/05/14 00:31:58 INFO client.RMProxy: Connecting to ResourceManager at     ip-10-0-0-190.us-west-2.compute.internal/10.0.0.190:8032
14/05/14 00:31:59 INFO client.RMProxy: Connecting to ResourceManager at    ip-10-0-0-190.us-west-2.compute.internal/10.0.0.190:8032
14/05/14 00:32:02 INFO mapred.FileInputFormat: Total input paths to process : 1
14/05/14 00:32:04 INFO mapreduce.JobSubmitter: number of splits:2
14/05/14 00:32:04 INFO mapreduce.JobSubmitter: Submitting tokens for job:     job_1399599059169_0110
14/05/14 00:32:05 INFO impl.YarnClientImpl: Submitted application     application_1399599059169_0110
14/05/14 00:32:05 INFO mapreduce.Job: The url to track the job: http://ip-    10-0-0-190.us-west-2.compute.internal:8088/proxy/application_1399599059169_0110/
14/05/14 00:32:05 INFO mapreduce.Job: Running job: job_1399599059169_0110
14/05/14 00:32:13 INFO mapreduce.Job: Job job_1399599059169_0110 running in uber mode : false
14/05/14 00:32:13 INFO mapreduce.Job:  map 0% reduce 0%
14/05/14 00:32:19 INFO mapreduce.Job:  map 50% reduce 0%
14/05/14 00:32:20 INFO mapreduce.Job:  map 100% reduce 0%
14/05/14 00:32:26 INFO mapreduce.Job: Task Id : attempt_1399599059169_0110_r_000001_0,     Status : FAILED
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed     with code 127
        at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:320)
        at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:533)
        at org.apache.hadoop.streaming.PipeReducer.close(PipeReducer.java:134)
        at org.apache.hadoop.io.IOUtils.cleanup(IOUtils.java:237)
        at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:459)
        at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:165)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:160)

14/05/14 00:32:26 INFO mapreduce.Job: Task Id :     attempt_1399599059169_0110_r_000003_0,     Status : FAILED
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 127
        at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:320)
        at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:533)
        at org.apache.hadoop.streaming.PipeReducer.close(PipeReducer.java:134)
        at org.apache.hadoop.io.IOUtils.cleanup(IOUtils.java:237)
        at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:459)
        at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:165)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:160)

我想知道为什么。在

我的hadoop流媒体jar很好。我测试了一个单词计数的例子,它运行得很顺利。在

这个python代码在本地linux机器上运行得很好。在


Tags: 用户orginfohadoopapachejobjavaat
1条回答
网友
1楼 · 发布于 2024-09-28 21:56:51

你在屏幕上只能看到一半的错误。它基本上是说“python脚本失败了”。在

您需要转到JobTracker UI,找到作业,单击失败的映射任务并查看日志。希望Python给stderr写了一些东西来帮助您。在

对于额外的调试,考虑在脚本中添加一些有用的“println”消息。在

本地测试的一个很好的提示不是只运行Python脚本,而是以与流式处理类似的方式运行它。尝试:

cat数据|地图.py|排序|减少.py在

最后: mapper和reducer的输出都应该是\t(即键和值用制表符分隔)。在

相关问题 更多 >