如何在hadoop中解压文件?

3z6pesqy  于 2021-05-30  发布在  Hadoop
关注(0)|答案(4)|浏览(811)

我试图解压一个存储在hadoop文件系统中的zip文件,并将其存储回hadoop文件系统。我试着听从命令,但没有一个奏效。

hadoop fs -cat /tmp/test.zip|gzip -d|hadoop fs -put - /tmp/
hadoop fs -cat /tmp/test.zip|gzip -d|hadoop fs -put - /tmp
hadoop fs -cat /tmp/test.zip|gzip -d|hadoop put - /tmp/
hadoop fs -cat /tmp/test.zip|gzip -d|hadoop put - /tmp

我会犯这样的错误 gzip: stdin has more than one entry--rest ignored , cat: Unable to write to output stream. , Error: Could not find or load main class put 在终端上,当我运行这些命令时。有什么帮助吗?
编辑1:我没有访问ui的权限。因此,只允许使用命令行。解压/gzip实用程序安装在我的hadoop机器上。我在用 Hadoop 2.4.0 版本。

w80xi6nr

w80xi6nr1#

gzip使用-c从stdin读取数据
hadoop fs-put不支持从stdin读取数据
我做了很多尝试,但是我没有找到hadoop的zip输入支持,所以我别无选择,只能将hadoop文件下载到本地fs,解压后再上传到hdfs。

xkrw2x1b

xkrw2x1b2#

我使用的大多数时间hdfs保险丝挂载为这个
所以你可以

$ cd /hdfs_mount/somewhere/
$ unzip file_in_hdfs.zip

http://www.cloudera.com/content/www/en-us/documentation/archive/cdh/4-x/4-7-1/cdh4-installation-guide/cdh4ig_topic_28.html
编辑1/30/16:如果您使用hdfs acl:在某些情况下,fuse挂载不遵循hdfs acl,因此您可以执行基本unix访问权限所允许的文件操作。看到了吗https://issues.apache.org/jira/browse/hdfs-6255,我最近要求重新打开的底部的评论。

cgvd09ve

cgvd09ve3#

要通过管道将数据流传输到hadoop,需要使用hdfs命令。

cat mydatafile | hdfs dfs -put - /MY/HADOOP/FILE/PATH/FILENAME.EXTENSION
7vhp5slm

7vhp5slm4#

要解压缩gzip(或bzipped)文件,我使用以下命令

hdfs dfs -cat /data/<data.gz> | gzip -d | hdfs dfs -put - /data/

如果文件位于本地驱动器上,则

zcat <infile> | hdfs dfs -put - /data/

相关问题