Cloudera Impala: как он считывает данные из блоков HDFS?

У меня был основной вопрос в Импале. Мы знаем, что Impala позволяет запрашивать данные, хранящиеся в HDFS. Теперь, если файл разбит на несколько блоков, и, скажем, строка текста распределена по двум блокам. В Hive/MapReduce об этом позаботится RecordReader.

Как Impala читает запись в таком сценарии?


person user3031097    schedule 22.10.2014    source источник


Ответы (1)


Ссылка на мой ответ в списке пользователей Impala:

Когда Impala находит незавершенную запись (например, это может произойти при сканировании определенных форматов файлов, таких как текстовые или rc-файлы), она продолжит постепенное чтение со следующего блока (блоков), пока не прочитает всю запись. Обратите внимание, что для этого может потребоваться небольшое количество «удаленных чтений» (чтение с удаленного узла данных), но обычно это очень небольшое количество по сравнению со всем блоком, который должен быть прочитан локально (и в идеале через чтение с коротким замыканием).

person Matt    schedule 23.10.2014
comment
Было бы полезно предоставить ссылки на код, в котором вызывается это удаленное чтение. - person Jeff Hammerbacher; 30.10.2014