Hadoop 流命令失败并出现 Python 错误

2023-12-11

我是 Ubuntu、Hadoop 和 DFS 的新手,但我已经按照 Michael-Noll.com 上发布的说明成功在本地 ubuntu 计算机上安装了单节点 hadoop 实例:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/#copy-local-example-data-to-hdfs

http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/

我目前一直在 Hadoop 上运行基本字数统计示例。我不确定我在 Downloads 目录中运行 Hadoop 是否会造成太大差异,但我尝试通过放置 mapper.py 和 reducer.py 函数来调整文件位置在 Hadoop 工作目录中但没有成功。我已经用尽了所有的研究,但仍然无法解决这个问题(即使用 -file 参数等)。我真的很感谢提前提供的任何帮助,我希望我以一种可以帮助刚刚开始的其他人的方式提出这个问题使用Python + Hadoop。

我独立测试了mapper.py 和reduce.py,当从bash shell 提示玩具文本数据时,两者都工作正常。

我的 Bash Shell 的输出:

hduser@chris-linux:/home/chris/Downloads/hadoop$ bin/hadoop jar /home/chris/Downloads/hadoop/contrib/streaming/hadoop-streaming-1.0.4.jar -file mapper.py -file reducer.py -mapper mapper.py -reducer reducer.py -input /user/hduser/gutenberg/* -output /user/hduser/gutenberg-output3
Warning: $HADOOP_HOME is deprecated.

packageJobJar: [mapper.py, reducer.py, /app/hadoop/tmp/hadoop-unjar4681300115516015516/] [] /tmp/streamjob2215860242221125845.jar tmpDir=null
13/03/08 14:43:46 INFO util.NativeCodeLoader: Loaded the native-hadoop library
13/03/08 14:43:46 WARN snappy.LoadSnappy: Snappy native library not loaded
13/03/08 14:43:46 INFO mapred.FileInputFormat: Total input paths to process : 3
13/03/08 14:43:47 INFO streaming.StreamJob: getLocalDirs(): [/app/hadoop/tmp/mapred/local]
13/03/08 14:43:47 INFO streaming.StreamJob: Running job: job_201303081155_0032
13/03/08 14:43:47 INFO streaming.StreamJob: To kill this job, run:
13/03/08 14:43:47 INFO streaming.StreamJob: /home/chris/Downloads/hadoop/libexec/../bin/hadoop job  -Dmapred.job.tracker=localhost:54311 -kill job_201303081155_0032
13/03/08 14:43:47 INFO streaming.StreamJob: Tracking URL: http://localhost:50030/jobdetails.jsp?jobid=job_201303081155_0032
13/03/08 14:43:48 INFO streaming.StreamJob:  map 0%  reduce 0%
13/03/08 14:44:12 INFO streaming.StreamJob:  map 100%  reduce 100%
13/03/08 14:44:12 INFO streaming.StreamJob: To kill this job, run:
13/03/08 14:44:12 INFO streaming.StreamJob: /home/chris/Downloads/hadoop/libexec/../bin/hadoop job  -Dmapred.job.tracker=localhost:54311 -kill job_201303081155_0032
13/03/08 14:44:12 INFO streaming.StreamJob: Tracking URL: http://localhost:50030/jobdetails.jsp?jobid=job_201303081155_0032
13/03/08 14:44:12 ERROR streaming.StreamJob: Job not successful. Error: JobCleanup Task Failure, Task: task_201303081155_0032_m_000003
13/03/08 14:44:12 INFO streaming.StreamJob: killJob...
Streaming Command Failed!

我的 HDFS 位于 /app/hadoop/tmp,我相信它也与我的 hadoop 实例上的 /user/hduser 目录相同。

输入数据位于 /user/hduser/gutenberg/* (3 个 UTF 纯文本文件) 输出设置为在 /user/hduser/gutenberg-output 创建


类似于我遇到的错误——


首先,在: -文件mapper.py -文件reducer.py -mappermapper.py -reducerreducer.py

您可以在“-file”上使用本地系统完全限定路径,然后在“-mapper”上使用相对路径,例如:-file /aFully/qualified/localSystemPathTo/yourMapper.py -mapper yourMapper.py


然后:记住在文件“reducer.py”和“mapper.py”的顶部包含“#!/usr/bin/python”


最后,

在我的mapper.py和reducer.py中,我将所有导入放入“setup_call()”函数中(相对于文件的“全局”级别),然后将其包装为:

if __name__== '__main__':

    try:
        setup_call_andCloseOut()
    except: 
        import sys, traceback, StringIO

        fakeeWriteable = StringIO.StringIO()

        traceback.print_exc(None,  file=fakeeWriteable)
        msg = ""
        msg +="------------------------------------------------------\n"
        msg +="----theTraceback: -----------\n"
        msg += fakeeWriteable.getvalue() +  "\n"
        msg +="------------------------------------------------------\n"

        sys.stderr.write(msg)  

    #end

那时,我能够使用 hadoop web 作业日志(错误消息中的那些 http:// 链接),并导航到查看“stderr”消息..(来自实际的核心逻辑)


我确信还有其他更简洁的方法来完成这一切,但这在语义上既清晰又足以满足我的直接需求

祝你好运..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop 流命令失败并出现 Python 错误 的相关文章

随机推荐

  • 在 Delphi 中为 MySQL 创建 UDF

    如何使用 Delphi 创建 MySQL 的 UDF 有人有代码模板吗 我希望将代码模板集成到 Delphi 版本 2007 及更高版本 中 因此我需要这些模板在有或没有 Unicode 支持的情况下都可以使用 首先 谷歌透露 文档 论坛主
  • 如何在 JavaScript 中将哈希值转换为单个对象?

    我有一个以下格式的对象数组 var log billkey Name billvalue ABC billkey Department billvalue Computer 我想将其转换为单个对象 例如 var log Name ABC D
  • Rails 3 提交标签 + html_safe

    这行代码有什么问题吗 这实际上产生 显然我的 html safe 调用没有做任何事情 背景 我在用着推特引导程序也字体真棒我本质上是想实现一个带有图标的提交按钮 为了扩展卢卡斯的答案 我需要一个按钮标签而不是输入 这段代码产生了我想要的效果
  • Maven 无法解决本地依赖关系

    我有一个 Maven 项目 其中包含一个带有外部 jar 文件的项目内存储库 我使用 install 命令将 jar 文件安装到项目内存储库中 当我检查存储库时 jar 文件已安装 我还在pom文件中添加了依赖配置 但是当我运行 mvn 编
  • 用 Dotrine 查询语言写“NOT IN”

    我有两张桌子company id and company has wtax company id 我需要获取所有不在其中的公司company has wtax桌子 原始 SQL 应该是这样的 SELECT id FROM company L
  • 如何在字典列表上动态构建分组依据

    我正在尝试对 IEnumerable 执行 groupby 问题是我在编译时不知道我想要对哪些字段进行分组 我已经发现另一个帖子在堆栈上解释了当类已知并且具有属性时如何执行此操作 但就我而言 我正在处理字典 并且键也仅在运行时已知 我的代码
  • Google Maps API:设置回调以添加标记/折线

    我正在尝试向生成的 Google 地图添加一条折线 折线的坐标是使用 jQuery getJSON 函数 从我的 Web 服务器上的 JSON 文件中获取的 但是 我在回调方面遇到了麻烦 我在一个单独的 JavaScript 文件中定义了三
  • UPDATE 查询的 WHERE 子句中的 SELECT 查询[重复]

    这个问题在这里已经有答案了 可能的重复 Mysql 错误 1093 无法在 FROM 子句中指定更新的目标表 将 SELECT 查询放入 UPDATE 查询的 WHERE 子句中时出现错误 我的查询是这样的 UPDATE subschedu
  • 您可以在使用 PHP 或 JavaScript 提交表单失败后重新填充文件输入吗?

    好的 这是场景 向用户呈现包含文件输入的表单 用户提交表单 由于某种原因 表单未通过验证 验证 向用户呈现的表单中突出显示了错误 文件输入现在为空 问题 是否可以使用用户最初选择的文件的路径重新填充文件输入 PHP 解决方案是理想的选择 但
  • 无法获取框架内容,未捕获 DOMException:阻止了原点为“null”的框架访问跨源框架

    我正在尝试使用 javascript 从我的一个框架访问 html 文档 但我得到了Uncaught DOMException Blocked a frame with origin null from accessing a cross
  • 如何使用 jQuery 将类添加到 Body 标记?

    让我澄清我的问题以及我正在寻找的解决方案 我正在使用 wikispaces com 我想使用 jQuery 动态地为每个页面添加一个唯一的主体类 以某种方式获取 URL 然后插入专门应用于该页面的唯一主体类 所以 这是我的维基空间中的示例网
  • 从 MySQL 数据库的所有表中删除所有零日期

    我在 MySQL 中有很多表 其中 dateTime 列中包含零日期0000 00 00 00 00 00 使用某种管理设置 是否可以禁用零日期并用静态值替换所有零1 1 1900 EDIT 我正在从事数据库迁移工作 涉及将 100 多个
  • Silverlight 中的跨域安全错误?

    我正在尝试将 Yahoo Pipes 的提要读入 Silverlight 应用程序 我不断收到 SecurityException 这听起来像是跨域策略问题 但是雅虎管道 如果您通过 Pipes yahooapis 域 则具有跨域策略 所以
  • 为什么我的多维数组初始化不起作用?

    出于某种原因 在 IntelliJ 中 如果这很重要 当我尝试初始化 2D 数组时 只有第一个框会根据我指定的大小进行初始化 IE int grid new int 9 9 当我运行调试器时 它显示我已经创建了一个数组int 9 有谁知道我
  • 如何将数据从 iCloud 存储文件迁移到本地存储中的新存储文件?

    I have iCloud在我的应用程序中 我已经删除了iCloud从我的应用程序 但在 ios 6 应用程序崩溃 我收到此消息 NSPersistentStoreCoordinator addPersistentStoreWithType
  • 将 app.config 与类库一起使用

    我经常需要创建一个 Net 类库 它需要 app config 来存储数据库连接字符串等内容 但是 这些设置必须位于调用应用程序的 app config 或 web config 中 如果我想跨多个应用程序分发 DLL 这会变得很痛苦 因为
  • 将多行环境变量拆分为几行

    我有以下问题 我在 Jenkins 服务器上执行 Windows 批处理文件 并且必须将多行环境变量 通过 Jenkins 参数设置 拆分为单行 每一行都是另一个程序的参数列表的一部分 Jenkins 文本框参数 foo 224 bar S
  • xtable 的颜色代码单元格

    我用过 R sweave 但是notknit 和 xtable 创建一个表 其中 1 列是标识符 其他三列是 标志 列 它们要么为空 要么包含 1 标志 我希望能够对最后三列进行着色 以便每个单元格要么是绿色 如果为空白 要么是红色 如果包
  • 无法使用 Vitamio 进行直播

    我正在尝试使用Vitamio要运行 RTSP 视频流 我在更新 Vitamio sample 后使用它来运行流VideoViewDemo活动 public class VideoViewDemo extends Activity TODO
  • Hadoop 流命令失败并出现 Python 错误

    我是 Ubuntu Hadoop 和 DFS 的新手 但我已经按照 Michael Noll com 上发布的说明成功在本地 ubuntu 计算机上安装了单节点 hadoop 实例 http www michael noll com tut