Я использую hasoop, предоставленный кластером CDH 5.4.1. Проблема, с которой я сталкиваюсь, заключается в том, что существует каталог hdfs с указанием пути/tmp/data У него есть некоторые файлы csv: abc.csv Теперь эта же папка присутствует на одном из локальных linux fs узла (скажем, узла 1) а также содержащий файл csv xyz.csv.HDFS запутывается, если тот же путь присутствует и на локальном узле
Когда я выполняю следующую команду из node1: hdfs dfs -ls /tmp/data/*.csv Я ожидаю, что вывод будет показан abc.csv, но я получаю сообщение об ошибке ls: `/ tmp/data /xyz.csv: Нет такого файла или каталога Эта же команда дает правильный вывод при запуске на других узлах, которые не имеют такого же пути к папке на своих локальных fux-файлах linux.
Я понял, что, поскольку я использую hdfs, команда dfs hadoop должна искать только в пространстве dfs и не путаться с локальными файлами linux, но это кажется неправильным.
Просьба указать указатели на то, что может быть причиной такого поведения?
спасибо Криса. Ваше решение отлично подходит для меня. Однако я не понимаю, как создавался каталог на первом месте в локальных linux fs. Все, что я делаю, это толкать некоторые файлы csv в hdfs в/tmp/data location. Это происходит на некоторых редких сценариях, которые я не могу воспроизвести. Любые указатели на это помогут. – Pushkin
Если пути создаются в локальной файловой системе неожиданно, возможно, некоторые из ваших команд 'hdfs dfs' случайно создают каталоги и файлы локально, а не на HDFS. Это произойдет, если аргумент пути, переданный команде, является URI файла (с префиксом 'file: //') или если команда случайно запускается без полной конфигурации Hadoop (core-site.xml и hdfs-site.xml) в эффект. Если конфигурация не найдена, то по умолчанию 'fs.defaultFS' является локальной файловой системой. –