Взаимодействует ли Dask с HDFS для оптимизации локальности данных? - PullRequest
0 голосов
/ 07 февраля 2019

В распределенной Dask документации они имеют следующую информацию:

Например, разработчики Dask используют эту возможность для создания локальности данных, когда мы общаемся с локальными системами хранения данных.как файловая система Hadoop.Когда пользователи используют высокоуровневые функции, такие как dask.dataframe.read_csv ('hdfs: ///path/to/files.*.csv'), Dask общается с узлом имени HDFS, находит местоположение всех блоков данных,и отправляет эту информацию планировщику, чтобы он мог принимать более разумные решения и сократить время загрузки для пользователей.

Однако, похоже, что get_block_locations() был удален из бэкенда HDFS fs, поэтому мой вопросявляется: каково текущее состояние Dask относительно HDFS?Это посылка вычислений в узлы, где данные являются локальными?Оптимизирует ли планировщик учет данных в HDFS?

1 Ответ

0 голосов
/ 07 февраля 2019

Совершенно верно, с появлением интерфейса HDFS со стрелкой, который теперь предпочтительнее, чем hdfs3, рассмотрение расположения блоков больше не является частью рабочих нагрузок, обращающихся к HDFS, поскольку реализация стрелки не включает метод get_block_locations ().

Однако мы уже хотели удалить несколько запутанный код, который сделал эту работу, потому что мы обнаружили, что пропускная способность между узлами в тестовых развертываниях HDFS была совершенно достаточной, что практически не имело практического значения в большинстве рабочих нагрузок.Дополнительные ограничения на размер блоков по сравнению с размером разделов, которые вы хотели бы видеть в памяти, создали дополнительный уровень сложности.

Удаляя специализированный код, мы могли бы избежать особого случая, который был сделан для HDFS, в отличие от внешнего облачного хранилища (s3, gcs, azure), где не имело значения, какой работник обращался к какой частиданные.

Короче говоря, да, документы должны быть обновлены.

...