gpt4 book ai didi

hadoop - 将数据传入和传出 Elastic MapReduce HDFS

转载 作者:可可西里 更新时间:2023-11-01 14:25:09 25 4
gpt4 key购买 nike

我编写了一个 Hadoop 程序,它需要在 HDFS 中进行特定布局,然后我需要从 HDFS 中获取文件。它在我的单节点 Hadoop 设置上运行,我渴望让它在 Elastic MapReduce 中的 10 个节点上运行。

我一直在做的是这样的:

./elastic-mapreduce --create --alive
JOBID="j-XXX" # output from creation
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp s3://bucket-id/XXX /XXX"
./elastic-mapreduce -j $JOBID --jar s3://bucket-id/jars/hdeploy.jar --main-class com.ranjan.HadoopMain --arg /XXX

这是异步的,但是当工作完成后,我可以这样做

./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp /XXX s3://bucket-id/XXX-output"
./elastic-mapreduce -j $JOBID --terminate

因此,尽管这种类型 有效,但它很笨重,不是我想要的。有没有更清洁的方法来做到这一点?

谢谢!

最佳答案

您可以使用 distcp 将文件复制为 mapreduce 作业

# download from s3$ hadoop distcp s3://bucket/path/on/s3/ /target/path/on/hdfs/# upload to s3$ hadoop distcp /source/path/on/hdfs/ s3://bucket/path/on/s3/

这会利用您的整个集群从 s3 并行复制。

(注意:每个路径上的尾部斜杠对于从一个目录复制到另一个目录很重要)

关于hadoop - 将数据传入和传出 Elastic MapReduce HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com