我这样做了:hadoop fs -ls /
它向我显示了具有Hadoop分布式文件系统(HDFS)的/下的所有目录,它们是:
drwxr-xr-x - hduser supergroup 0 2016-04-23 02:08 /etc
drwxr-xr-x - hduser supergroup 0 2016-04-23 03:21 /home
drwxr-xr-x - hduser supergroup 0 2016-04-23 03:15 /sqoop
drwxr-xr-x - hduser supergroup 0 2016-04-24 02:28 /sqooptest
drwx-wx-wx - hduser supergroup 0 2016-04-08 22:23 /tmp
drwxr-xr-x - hduser supergroup 0 2016-04-25 00:50 /user
drwxr-xr-x - hduser supergroup 0 2016-04-08 22:33 /usr
drwxr-xr-x - hduser supergroup 0 2016-04-24 02:33 /var
这是对的吗?如果是这样,我想知道如果我这样做将会发生什么:
hadoop fs -rm -r /etc /home /sqoop /sqooptest /tmp /usr /var
基本上删除了所有这些目录(/user
除外,因为我需要它)。它会引起问题吗?如果是这样,什么?我想要一个干净的平板,所以我试图删除所有HDFS。这是我的sqoop的东西。
我只是不想让我的电脑崩溃。
我还没有-rm -r
什么,因为我需要专家建议。
Thnx提前。
答案 0 :(得分:1)
-rm -r
适当可怕的原因是它是一个你真的不想搞砸的命令,因为它会删除你开始的所有内容。 -r
命令中的-rm
表示“递归”,换句话说,该目录中的所有内容以及包含的所有文件和目录。如果目录“foo”包含“bar”和“bar”包含“fubar”并且包含文件“do-not-delete-on-pain-of-death.txt”,那么您将拥有类似/foo/bar/fubar/
的路径包含.txt
文件。请注意,如果您运行hadoop fs -rm -r /foo
,您将会吹走foo
以及其下的所有内容。
你真正不想做的事情是hadoop fs -rm -r /etc / sqoop
- 看看我是如何错误地在/
和sqoop
之间划出空格的?这会很糟糕,因为它说删除/etc
然后删除/
(root)下的所有内容,此时你对Hadoop的垃圾箱工作非常有希望。
因此,假设您可以使用/etc /home /sqoop /sqooptest /tmp /usr /var
内的所有内容,您的命令就可以了。
但是如果这有任何模糊或者您不确定,请创建一个类似“temptest”的目录,并在下面创建一些您不想删除的子目录。 rm -r
是文件系统命令的核弹。确保你知道如何转动钥匙:-)。不要过于惊慌或任何事情......