Почему Impala тратит много времени на открытие файла HDFS (TotalRawHdfsOpenFileTime)?

Я обнаружил, что мой рой Impala работает нестабильно, обычно для завершения запроса требуется всего несколько секунд (менее 10 с), но иногда это занимает более 40 с (и эта ситуация длится несколько минут), и когда это бывает, согласно профилю, TotalRawHdfsOpenFileTime очень велико, что означает, что большая часть времени тратится на открытие файла HDFS.

Так какова возможная причина и как я могу ее решить?


person luochen1990    schedule 14.08.2020    source источник


Ответы (1)


Это время, потраченное на открытие файлов. Если вы запрашиваете HDFS, это часто означает, что она тратит время на получение данных из namenode.

Мы увидели значительные улучшения во многих производственных развертываниях, которые столкнулись с этим узким местом, включив кэширование файловых дескрипторов — https://docs.cloudera.com/documentation/enterprise/5-15-x/topics/impala_scalability.html.#scalability_file_handle_cache

person Tim Armstrong    schedule 15.08.2020
comment
Большое спасибо. Не могли бы вы рассказать мне более подробно о том, как диагностировать процедуру открытия файла? Я спросил SA HDFS NameNode, и он не нашел ничего необычного в журнале на стороне сервера, есть ли какие-либо подробные журналы на стороне Impala (клиент NN)? - person luochen1990; 19.08.2020
comment
TotalRawHdfsOpenFileTime сообщает нам, что тратит много времени на открытие файлов. CachedFileHandlesMissCount сообщит вам, сколько раз нужно было открыть файл. Один файл может быть открыт несколько раз в зависимости от количества столбцов и т. д. Мы видели это, когда в таблице много файлов, много столбцов или если есть некоторая медлительность при выполнении NN RPC (может быть сеть, производительность namenode или что-то вроде приобретения билетов Kerberos для подключения к NN). - person Tim Armstrong; 19.08.2020