FWIW, у меня была аналогичная проблема на Java. Оказалось, что мне пришлось использовать кодировку «UTF-8» для создания тех же SHA1-хэшей в Java, что и функция sha1
, созданная в PHP 5.3.1 (работает на XAMPP Vista).
private static String SHA1(final String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {
final MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(text.getBytes("UTF-8"));
return new String(org.apache.commons.codec.binary.Hex.encodeHex(md.digest()));
}
Если вы работаете в HDFS через NFS, то вы можете ожидать, что большинство простых команд будут работать правильно (например, ls
, cd
, mkdir
, mv
, rm
, chmod
, [ 116], chown
). Единственная потребность в команде hadoop fs
или hdfs dfs
- если вы используете расширенные списки ACL или хотите выполнять другие специфичные для Hadoop вещи, например:
hadoop fs -setrep
hdfs dfs -expunge
Оболочка Файловой системы (FS) включает в себя различные подобные оболочке команды, которые напрямую взаимодействуют с распределенной файловой системой Hadoop (HDFS), а также с другими файловыми системами, которые поддерживает Hadoop, такими как Local FS, HFTP FS, S3 FS и другие. Оболочка FS вызывается:
bin/hadoop fs <args>
Все команды оболочки FS принимают в качестве аргументов пути URI. Формат URI: схема: // полномочие / путь. Для HDFS схема - hdfs, а для локальной FS - файловая. Схема и полномочия являются необязательными. Если не указан, используется схема по умолчанию, указанная в конфигурации. Файл или каталог HDFS, например / parent / child, можно указать как
hdfs: // namenodehost / parent / child
blockquote>или просто как
< blockquote>/ parent / child
blockquote>(учитывая, что для вашей конфигурации задано значение hdfs: // namenodehost).
Большинство команд в оболочке FS ведут себя как соответствующие команды Unix .
Вы не можете найти некоторые обычные команды оболочки, такие как -head, но доступны -tail и -cat. Тонкие различия в одних и тех же командах можно найти здесь для отдельных команд .