Где журналы ошибок приложения? - PullRequest
2 голосов
/ 01 октября 2019

В ожидании необходимости отладки нашего кода Python путем поиска сообщений об ошибках в файлах журнала я создал задание потоковой передачи Hadoop, которое выдает исключение, но не могу найти сообщение об ошибке (или трассировку стека),

Подобные вопросы потоковая передача hadoop: где находятся журналы приложений? и потоковая передача hadoop: как просматривать журналы приложений? использует модуль Python logging, который здесь нежелателен, посколькуPython уже регистрирует ошибку, поэтому мы не должны это делать.

Вот код маппера;мы используем встроенный в Hadoop редуктор aggregate.

#!/usr/bin/python
import sys, re
import random

def main(argv):
  line = sys.stdin.readline()
  pattern = re.compile("[a-zA-Z][a-zA-Z0-9]*")
  try:
    while line:
      for word in pattern.findall(line):
        print "LongValueSum:" + word.lower() + "\t" + "1"
        x = 1 / random.randint(0,99)
      line = sys.stdin.readline()
  except "end of file":
    return None
if __name__ == "__main__":
  main(sys.argv)

Линия x = 1 / random.randint(0,99) равна Предполагается до , создающая ZeroDivisionError, и действительно задание не выполняетсяно очистка файлов журнала не показывает ошибку. Есть ли специальный флаг, который нам нужно установить где-то?

Мы просмотрели документацию по Google Dataproc, а также документацию по Hadoop Streaming.

1 Ответ

1 голос
/ 09 октября 2019

Когда вы запускаете задание Cloud Dataproc, выходные данные драйвера задания передаются в консоль GCP, отображаются в окне командного терминала (для заданий, отправленных из командной строки) и сохраняются в облачном хранилище, см. Доступ к драйверу задания. выход . Вы также можете найти журнал в StackDriver с именем dataproc.job.driver.

. Вы также можете включить журналы контейнеров YARN при создании кластера и просмотреть их в StackDriver, см. инструкции .

В дополнение к этому, yarn-userlogs в StackDriver также может быть полезным.

...