Запуск Python на Hadoop - PullRequest
       15

Запуск Python на Hadoop

4 голосов
/ 18 ноября 2011

Я пытаюсь запустить очень простой скрипт на Python с помощью кустов и Hadoop.

Это мой сценарий:

#!/usr/bin/env python
import sys

for line in sys.stdin:
    line = line.strip()
    nums = line.split()
    i = nums[0]
    print i

И я хочу запустить его в следующей таблице:

hive> select * from test;
OK
1       3
2       2
3       1
Time taken: 0.071 seconds
hive> desc test;
OK
col1    int
col2    string
Time taken: 0.215 seconds

Я бегу:

hive> select transform (col1, col2) using './proba.py' from test;

Но всегда получается что-то вроде:

...
2011-11-18 12:23:32,646 Stage-1 map = 0%,  reduce = 0%
2011-11-18 12:23:58,792 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_201110270917_20215 with errors
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

Я пробовал много разных модификаций этой процедуры, но постоянно терпел неудачу. (

Я что-то не так делаю или есть проблема с установкой моего улья / hadoop?

Ответы [ 2 ]

4 голосов
/ 23 ноября 2011

Несколько вещей, которые я бы проверил, если бы я отлаживал это:

1) Установлен ли исполняемый файл python (chmod + x file.py)

2) Убедитесь, что файл python находится в одном и том же месте на всех машинах.Возможно, лучше - поместите файл в hdfs, тогда вы можете использовать «использование« hdfs: //path/to/file.py »» вместо локального пути

3) Посмотритев вашей работе на панели инструментов hadoop (http://master -node: 9100), если вы щелкнете по невыполненной задаче, это даст вам фактическую ошибку Java и трассировку стека, чтобы вы могли увидеть, что на самом деле пошло не так с выполнением

4) убедитесь, что python установлен на всех подчиненных узлах!(Я всегда упускаю это из виду)

Надеюсь, это поможет ...

0 голосов
/ 16 декабря 2011

Проверьте hive.log и / или журнал из задания hadoop (в вашем примере job_201110270917_20215) для более подробного сообщения об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...