0

我在 Amazon EC2 上运行 hdfs

比如说,我有一个存储一些数据的 ftp 服务器。

我只想以并行方式将这些数据直接复制到hdfs(这可能更有效)。

我认为 hadoop distcp 是我需要的。

$ bin/hadoop distcp ftp://username:passwd@hostname/some/path/ hdfs://namenode/some/path

不起作用。

13/07/05 16:13:46 INFO tools.DistCp: srcPaths=[ftp://username:passwd@hostname/some/path/]
13/07/05 16:13:46 INFO tools.DistCp: destPath=hdfs://namenode/some/path
Copy failed: org.apache.hadoop.mapred.InvalidInputException: Input source ftp://username:passwd@hostname/some/path/ does not exist.
at org.apache.hadoop.tools.DistCp.checkSrcPath(DistCp.java:641)
at org.apache.hadoop.tools.DistCp.copy(DistCp.java:656)
at org.apache.hadoop.tools.DistCp.run(DistCp.java:881)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.tools.DistCp.main(DistCp.java:908)

我通过复制Chrome中的ftp路径检查了路径,该文件确实存在,我什至可以下载它。

然后,我尝试通过以下方式列出路径下的文件:

$ bin/hadoop dfs -ls ftp://username:passwd@hostname/some/path/

它以:

ls: Cannot access ftp://username:passwd@hostname/some/path/: No such file or directory.

这似乎是相同的铅。

这里有什么解决方法吗?

先感谢您。

浩。

4

2 回答 2

0

ftp 和 hdfs 是不同的协议,distcp 只能在两个不同的 hdfs 集群之间复制文件,所以可能有两种解决方案:1)把你的 ftp 文件放到本地 hdfs 集群和 distcp 到 EC2 集群。2)或将您的文件获取到 EC2 服务器并将文件放入 EC2 集群。希望能帮助到你!

于 2013-09-18T12:40:12.937 回答
0

这可能是因为您在 nat 后面运行 hadoop 节点。使用主动数据传输模式时 FTP 失败。您可以通过将以下配置添加到您的core-site.xml

<configuration>
<property>
    <name>fs.default.name</name>
    <value>{name-node}:9000</value>
</property>
<property>
    <name>fs.ftp.host</name>
    <value>{ftp-server-ip}</value>
</property>
<property>
    <name>fs.ftp.host.port</name>
    <value>21</value>
</property>
<property>
    <name>fs.ftp.password.{ftp-server-ip}</name>
    <value>{password}</value>
</property>
<property>
    <name>fs.ftp.user.{ftp-server-ip}</name>
    <value>{username}</value>
</property>
<property>
    <name>fs.ftp.data.connection.mode</name>
    <value>PASSIVE_LOCAL_DATA_CONNECTION_MODE</value>
</property>

有关各种配置的更多详细信息:core-default.xml

确保将所有值替换{}为您的设置的实际值

于 2019-08-04T12:38:23.597 回答