В Hadoop команды и hdfs dfs -getmerge
позволяют легко считывать содержимое сжатых файлов в HDFS из командной строки, включая прокладку к другим командам для обработки (например, wc -l <(hdfs dfs -getmerge /whatever 2>/dev/null)
).Hadoop: обратный hdfs dfs -text
Есть ли обратная связь для этих команд, позволяющая передавать содержимое в HDFS из командной строки, , поддерживая те же функции сжатия и форматирования, что и вышеупомянутые команды? hdfs dfs -put
, похоже, просто сделает необработанную копию локального файла в HDFS без изменения формата сжатия или контейнера.
Ответы, предлагающие инструменты командной строки для управления такими форматами и алгоритмами сжатия, также приветствуются. Обычно я вижу сжатые данные Snappy в CompressedStream, но не могу понять, как преобразовать простой текстовый файл (один базовый элемент в строке) в такой файл из командной строки. Я попробовал snzip (как предложено в this askubuntu question), а также this snappy command-line tool, но не смог использовать ни один из них для создания файлов с поддержкой Hadoop-Snappy (или прочитать содержимое файлов Snappy, попавших в HDFS с использованием Apache Flume).
И как это поможет в точности с форматами файлов и режимами сжатия? Я бы просто получил доступ к необработанным файлам, как, например, с помощью 'hdfs dfs -put' и' hdfs dfs -get', правильно? – Shadocko
Вы хотите, чтобы вы прочитали необработанный файл? – vgunnu
Нет, у меня есть обычный текстовый файл в мире Unix (или выход программы) и хотел бы сохранить его как файл Snappy в HDFS. 'hdfs dfs -text/path/in/hdfs' позволяет читать файл Snappy из HDFS в виде обычного текста в командной строке, и я запускаю противоположную операцию. – Shadocko