put和hadoopdistcp的区别

kupeojn6  于 2021-05-29  发布在  Hadoop
关注(0)|答案(4)|浏览(458)

我们将在数据湖项目中进行摄取阶段,我主要使用 hadoop fs -put 在我的hadoop开发经验中。那么,这有什么区别呢 hadoop distcp 在用法上有什么区别?

to94eoyn

to94eoyn1#

“distcp不能用于从本地到hdfs的数据摄取,因为它只在hdfs文件系统上工作”->它可以使用“file”(例如,“file:///tmp/test.txt”)作为url中的模式(https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/filesystemshell.html)
提示:使用“hadoop distcp-d dfs.replication=1”在复制操作期间减少distcp进程时间,然后复制复制的文件。

bttbmeg0

bttbmeg02#

distcp是用于将数据从一个集群复制到另一个集群的专用工具。基本上,您通常会从一个hdfs复制到hdfs,但对于本地文件系统则不会。另一个非常重要的事情是,进程作为一个mapreduce作业完成,其中包含0 reduce task,这使得它由于操作的分布而变得更快。它将文件和目录列表展开为Map任务的输入,每个任务将复制源列表中指定的文件分区
hdfs put—将数据从本地系统复制到hdfs。在后台使用hdfs客户机,通过访问namenode和datanodes按顺序完成所有工作。不创建用于处理数据的mapreduce作业。

jm2pwxwz

jm2pwxwz3#

distcp is命令仅用于将数据从一个集群的hdfs位置复制到另一个集群的hdfs位置。使用0 reducer创建mapreduce作业以处理数据。

hadoop -distcp webhdfs://source-ip/directory/filename webhdfs://target-ip/directory/

scp是用于将数据从一个集群的本地文件系统复制到另一个集群的本地文件系统的命令。

scp //source-ip/directory/filename //target-ip/directory/

hdfs put命令-将数据从本地文件系统复制到hdfs。不创建用于处理数据的mapreduce作业。

hadoop fs -put -f /path/file /hdfspath/file

hdfs get命令-将数据从hdfs复制到本地文件系统
首先,转到要复制文件的目录,然后运行下面的命令

hadoop fs -get /hdfsloc/file
umuewwlo

umuewwlo4#

hdfs或hadoop put用于从本地到hdfs文件系统的数据摄取
distcp不能用于从本地到hdfs的数据摄取,因为它只在hdfs文件系统上工作
我们广泛使用distcp来备份和恢复hdfs文件,比如
hadoop distcp$当前\u hdfs\u路径$备份\u hdfs\u路径

相关问题