当前位置: 首页>>代码示例>>Python>>正文


Python HadoopJobRunner._pick_error方法代码示例

本文整理汇总了Python中mrjob.hadoop.HadoopJobRunner._pick_error方法的典型用法代码示例。如果您正苦于以下问题:Python HadoopJobRunner._pick_error方法的具体用法?Python HadoopJobRunner._pick_error怎么用?Python HadoopJobRunner._pick_error使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在mrjob.hadoop.HadoopJobRunner的用法示例。


在下文中一共展示了HadoopJobRunner._pick_error方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: PickErrorTestCase

# 需要导入模块: from mrjob.hadoop import HadoopJobRunner [as 别名]
# 或者: from mrjob.hadoop.HadoopJobRunner import _pick_error [as 别名]
class PickErrorTestCase(MockHadoopTestCase):

    # integration tests for _pick_error()

    def setUp(self):
        super(PickErrorTestCase, self).setUp()

        os.environ['MOCK_HADOOP_VERSION'] = '2.7.0'

        self.runner = HadoopJobRunner()

    def test_empty(self):
        self.assertEqual(self.runner._pick_error({}), None)

    def test_yarn_python_exception(self):
        APPLICATION_ID = 'application_1450486922681_0004'
        CONTAINER_ID = 'container_1450486922681_0005_01_000003'
        JOB_ID = 'job_1450486922681_0004'

        log_subdir = os.path.join(
            os.environ['HADOOP_HOME'], 'logs',
            'userlogs', APPLICATION_ID, CONTAINER_ID)

        os.makedirs(log_subdir)

        syslog_path = os.path.join(log_subdir, 'syslog')
        with open(syslog_path, 'w') as syslog:
            syslog.write(
                '2015-12-21 14:06:17,707 INFO [main]'
                ' org.apache.hadoop.mapred.MapTask: Processing split:'
                ' hdfs://e4270474c8ee:9000/user/root/tmp/mrjob'
                '/mr_boom.root.20151221.190511.059097/files'
                '/bootstrap.sh:0+335\n')
            syslog.write(
                '2015-12-21 14:06:18,538 WARN [main]'
                ' org.apache.hadoop.mapred.YarnChild: Exception running child'
                ' : java.lang.RuntimeException:'
                ' PipeMapRed.waitOutputThreads(): subprocess failed with'
                ' code 1\n')
            syslog.write(
                '        at org.apache.hadoop.streaming.PipeMapRed'
                '.waitOutputThreads(PipeMapRed.java:322)\n')

        stderr_path = os.path.join(log_subdir, 'stderr')
        with open(stderr_path, 'w') as stderr:
            stderr.write('+ python mr_boom.py --mapper')
            stderr.write('Traceback (most recent call last):\n')
            stderr.write('  File "mr_boom.py", line 10, in <module>\n')
            stderr.write('    MRBoom.run()\n')
            stderr.write('Exception: BOOM\n')

        error = self.runner._pick_error(dict(
            step=dict(application_id=APPLICATION_ID, job_id=JOB_ID)))

        self.assertIsNotNone(error)

        self.assertEqual(error['hadoop_error']['path'], syslog_path)
        self.assertEqual(error['task_error']['path'], stderr_path)
开发者ID:Milkigit,项目名称:mrjob,代码行数:60,代码来源:test_hadoop.py


注:本文中的mrjob.hadoop.HadoopJobRunner._pick_error方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。