Как перемещаться по каталогам в Hadoop HDFS

Я хотел бы перейти в HDFS

сначала я посмотрел на каталоги в "root" HDFS

[cloudera@localhost ~]$ sudo -u hdfs hadoop fs -ls hdfs:/
Found 5 items
drwxr-xr-x   - hbase hbase               0 2015-10-10 07:03 hdfs:///hbase
drwxr-xr-x   - solr  solr                0 2014-06-01 16:16 hdfs:///solr
drwxrwxrwx   - hdfs  supergroup          0 2015-10-08 11:45 hdfs:///tmp
drwxr-xr-x   - hdfs  supergroup          0 2015-04-13 08:26 hdfs:///user
drwxr-xr-x   - hdfs  supergroup          0 2014-06-01 16:15 hdfs:///var

затем я попытался войти в одну из них

[cloudera@localhost ~]$ sudo -u hdfs hadoop -cd hdfs:///hbase
Error: No command named `-cd' was found. Perhaps you meant `hadoop cd'

попытка также "Hadoop cd" не работает

[cloudera@localhost ~]$ sudo -u hdfs hadoop cd hdfs:///hbase
Exception in thread "main" java.lang.NoClassDefFoundError: cd
Caused by: java.lang.ClassNotFoundException: cd
    at java.net.URLClassLoader.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: cd.  Program will exit.

пожалуйста, не предлагайте использовать-LS-R (рекурсивный), чтобы показать все файлы .

Я хочу иметь возможность перемещаться с помощью команд, таких как cd

3 ответов


нет cd (изменить каталог) команда в файловой системе hdfs. Вы можете только перечислить каталоги и использовать их для достижения следующего каталога.

вы должны перемещаться вручную, предоставляя полный путь с помощью .

hdfs dfs -ls /user/username/app1/subdir/

hadoop fs –ls /user/scott/

чтобы увидеть список значений в пути, мы должны дать полный путь. Кроме этого, навигация невозможна.


Guidline для кода распределения режима psudo cloudera Сначала используйте

       hadoop fs -ls 
Затем посмотрите каталог, пусть предположим, что есть папка вывода Поэтому используйте эту команду, чтобы увидеть внутри папки ouput
       hadoop fs -ls ouput