我在中运行hadoop集群 Docker
通过装入本地文件夹 -v
.
然后,我登录hadoop集群并将“cd”放到mount文件夹并执行 hdfs dfs -put ./data/* input/
. 它起作用了。
但我的问题是我不能删除我复制到的数据 hdfs
. 我删除容器 docker rm
,但数据仍然存在。现在我只能重置docker,数据可以删除。
还有别的解决办法吗?
这是我的 Docker 信息 ➜ hadoop docker info Containers: 5 Running: 5 Paused: 0 Stopped: 0 Images: 1 Server Version: 1.12.3 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 22 Dirperm1 Supported: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: null bridge host overlay Swarm: inactive Runtimes: runc Default Runtime: runc Security Options: seccomp Kernel Version: 4.4.27-moby Operating System: Alpine Linux v3.4 OSType: linux Architecture: x86_64 CPUs: 5 Total Memory: 11.71 GiB Name: moby ID: NPR6:2ZTU:CREI:BHWE:4TQI:KFAC:TZ4P:S5GM:5XUZ:OKBH:NR5C:NI4T Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): true File Descriptors: 56 Goroutines: 81 System Time: 2016-11-22T08:10:37.120826598Z EventsListeners: 2 Username: chaaaa Registry: https://index.docker.io/v1/ WARNING: No kernel memory limit support Insecure Registries: 127.0.0.0/8
2条答案
按热度按时间0vvn1miw1#
这是个问题。https://github.com/docker/for-mac/issues/371
如果可以删除所有图像/容器,则:
停下docker。
运行
启动docker,你的gb回来了。
iqih9akk2#
要删除hdfs中的数据,您需要进行类似于放置文件的调用,在本例中:
如果有目录,您应该添加-r
最后,默认情况下,hadoop会将删除的文件/目录移动到一个垃圾目录,该目录将位于您用于此请求的hadoop用户的主页中,类似于
/user/<you>/.Trash/
关于hdfs通常在namenode中有一些关于hdfs结构的元数据,比如其中的目录或文件,以及构成hdfs的块存储在哪里(哪些数据节点)。虽然datanodes将保留hdfs数据块,但存储的数据通常不可用,因为它通常只是hdfs中数据块的一部分。
因此,使用hdfs的所有操作都是通过namenode完成的
hdfs
电话,比如put
,get
,rm
,mkdir
... 而不是常规的操作系统命令行工具。