5

我在 emr-5.0.0 版本中遇到了 s3-dist-cp 命令的问题。在我的应用程序中,我需要将一些文件从 hdfs 推送到 S3。我正在使用 s3-dist-cp 命令来实现这一点。它在 emr-4.2.0 中运行良好。但它不适用于 emr-5.0.0。如果我手动运行命令,它工作正常。但它在我的应用程序中失败了。我没有对我的应用程序进行任何更改以在 emr-5 上运行它。

如果我需要使用 emr-5,是否需要进行任何更改?我们在 emr-5 中使用 s3-dist-cp 命令的方式有什么变化吗?

我正在使用以下命令:

s3-dist-cp --src /user/hive/warehouse/abc.text --dest s3n://bucket/abc.text
4

3 回答 3

3

s3-dist-cp 仅在主节点上可用(s3-dist-cp.jar)。

以下是应用程序的位置。

/usr/share/aws/emr/s3-dist-cp/

s3-dist-cp.jar 在从节点中不可用
您可以登录从机并验证它。

因此,您的应用程序失败的原因可能是,在新的 emr 中,您可能正在使用一些工作流管理工具,该工具将应用程序部署在从属设备上并从那里开始。由于 s3 s3-dist-cp 不可用并且失败。

解决 第一个选项

捆绑 jar 并使用以下命令

hadoop jar s3-dist-cp.jar --src location --dest location 

第二

引导集群上的 s3-dist-cp.jars

您甚至可以将其作为 java 程序运行

于 2017-10-18T04:28:25.787 回答
1

首先,s3n://现在已弃用,开始s3://用于 S3 路径。

其次,如果您只是将文件从集群上的本地文件复制到 S3,您可以使用aws s3 cp

aws s3 cp /user/hive/warehouse/abc.text s3://bucket/abc.text
于 2016-10-03T15:06:13.050 回答
0

The syntax that you have used for s3-dist-cp is incorrect. Please try again with the command below.

s3-dist-cp --src hdfs:///user/hive/warehouse/abc.text --dest s3n://bucket/abc.text

Let me know if this solves your proble.

于 2016-10-03T06:59:47.803 回答