2016-05-05 2 views
0

Я поддерживаю кластер Hadoop с сервисом HIVE, однако я не разработчик HIVE. Один из разработчиков запускает длинный запрос (см. Пример ниже). Сбой задания с некоторым загадочным сообщением об ошибке (см. Ниже).Интенсивность оценки выполнения запроса куста до выполнения

Я подозреваю, что этот запрос слишком интенсивный или не оптимизирован, или и то, и другое. Как узнать, будет ли запрос слишком интенсивным?

Когда я контролировал нагрузку на сервер Hive, он перешел к простому (w output) 1,5, а пропускная способность сети достигала максимума со скоростью 5,7 Мбит/с. Процессор, потребляемый верхними java-процессами, был ниже 2%. Я не видел реальных доказательств того, что запрос разбивал сервер улья (только 1 сервер улей в кластере кустов).

Продолжительность полета метастабильности улья от < от 1 секунды до 2,5 секунд.

Как я могу узнать, является ли этот или любой другой запрос слишком интенсивным?

Запрос: ВЫБРАТЬ DUID, GET_JSON_OBJECT (json_data, '$ .app.p') в качестве платформы, MIN (GET_JSON_OBJECT (json_data, '$ .generated.ats')), как first_boot_ts ИЗ raw.raw_events_duid ГДЕ приложение =» atlas_qa 'И ds> =' 20160306 'и ds < =' 20160326 'AND duid =' 00001656-da4f-47dc-8619-2868198ed25a 'GROUP BY duid, GET_JSON_OBJECT (json_data,' $ .app.p ') предел 10;

ошибка выборки на сервере: Hadoop-CMF-улья HIVEMETASTORE-qn7bi02hdn001.compliant.disney.private.log.out: 2016-05-04 12: 21: 58115 INFO org.apache.hadoop.hive. metastore.ObjectStore: невозможно создать дерево выражений из строки выражения [(null и (ds = '20160501'))] Ошибка анализа фильтра разделов; lexer error: null; исключение NoViableAltException (11 @ [])

ответ

0

Возможно, возникли некоторые нулевые данные при запуске Get_json_object. Удалите эти два из запроса и запустите его .. он будет работать нормально .. есть нулевые данные, возвращаемые с MIN(GET_JSON_OBJECT(json_data, '$.generated.ats')).

Кроме того, мы имеем string get_json_object(string json_string, string path), который:

  1. Экстракты объект JSON из строки JSON на основе пути JSon указанный
  2. Возвращает JSON строки извлеченного объекта JSON.
    • Он вернет значение null, если входная строка json неверна.

Примечание: Путь JSON может иметь только символы [0-9a-z_], т.е., нет верхнего регистра или специальных символов. Кроме того, клавиши не могут начинаться с цифр. Это связано с ограничениями на имена столбцов Hive.

надеюсь, что это поможет

 Смежные вопросы

  • Нет связанных вопросов^_^