当前位置: 首页 > 知识库问答 >
问题:

带有mapr客户端的节点需要访问我想用distcp复制的文件吗?

彭展
2023-03-14

情况:
Node 0:安装了mapr客户端,不是集群的一部分,没有安装外部资源
Node 1到10:安装了mapr NodeManager的mapr集群节点。每个节点都安装了 /mnt/resource/下的外部资源

如果我在从1到10的任何节点上执行此代码,它都可以工作:<code>hadoop distcpfile:///mnt/resource/file maprfs:///tmp

当我在节点0上执行相同的代码时,我得到一个错误:

< code>20/11/24 14:08:24错误工具。DistCp:无效输入:org . Apache . Hadoop . tools . copy listing $ InvalidInputException:file:///mnt/resource/file不存在

我期望的是:节点0只调用YARN来管理distcp命令。但看起来distcp试图直接从节点0访问/mnt/resource/file

我想实现的是在docker容器中执行discp命令,但不想将/mnt/Resource目录挂载到容器中。

我也尝试过使用disctp -f选项,并在列表中提供一个带有/mnt/资源/文件的文件,但结果是一样的。

你知道如何执行它吗?或者变通办法?

共有1个答案

居飞扬
2023-03-14

到目前为止,最简单的做法是首先将数据登陆到mapr文件系统(现在简称为HPE Ezmeral Data Fabric)。

在许多情况下,这使得这样的任务完全没有意义。

第二件最简单的事情是,如果任务不适合这样的解决方案,只需在容器中装载/mnt/resource和/mapr(通常装载速度非常快)并使用cp或rsync。对于大小达数百MB的文件,这通常比distcp快。即使它在技术上并不快,但它通常要容易得多,所以适度的速度差并不重要。显然,这种方法是通过一台机器传输所有数据,所以它确实有速度限制。

第三,distcp通常应该按照你的期望工作(也就是说,我非常希望它会在Hadoop运行的任何机器上执行)。然而,有很多机会可以解决问题。例如,您的节点 0 可能认为它是 1 的集群,并且根本不会将程序发送到集群执行。另一方面,distcp 中可能有一个代码路径,它假定它可以对调用节点执行参数检查,以确定执行是否成功。您可以检查Yarn队列等,以了解究竟发生了什么。

我还应该指出,如果你有支持,你可以随时联系支持团队。他们喜欢帮助用户。他们甚至帮助我!

 类似资料:
  • 问题内容: 看下面的代码(摘自git页面) 我想知道client.quit()是可选的,还是multi.exec()自动为我执行退出?我正在尝试调试Redis中的内存泄漏,但我意识到我没有在任何地方使用.quit()。我可以做? 意思是,我的代码应该像这样吗? 基本上,client.quit会放在哪里,我什至需要它? 问题答案: “多条命令排队,直到发出EXEC,然后Redis自动运行所有命令。”

  • 问题内容: main.go 目录结构: 即使阅读了文档,我仍然无法理解此处的确切功能。 1)如果删除,为什么我无法访问? 2)如果删除该功能,URL将映射到文件夹吗? 问题答案: 将请求的处理转发给您指定为其参数的对象,但在此之前,它会通过剥离指定的前缀来修改请求URL。 因此,例如,在您的情况下,如果浏览器(或HTTP客户端)请求资源: 将会剪切和将修改后的请求转发到由返回的处理程序,因此它将看

  • 问题内容: 在Linux(内核2.6.5)上,我们的构建系统使用调用gcc 。 使用时仍然需要吗? 它与期权有什么关系?我知道我应该与pthreads一起使用,还需要吗? 附带说明一下,您在gcc 3.3.3和gcc 4.xx之间使用REENTRANT有什么区别吗? 当我使用gcc选项时,可以看到已定义。从命令行省略是否会有所不同,例如某些对象可以在没有多线程支持的情况下进行编译,然后链接到使用p

  • 我正在开发一个简单的聊天服务,该服务由Spring Boot 2.1.1运行,WebFlux、Reactor 3.2.3、Mongo 3.8.2和Netty 4.1.31。 null 观察似乎很明显,因为当我在测试期间通过SSE连接时,当新事件到达时,它几乎立即更新我--基本上,SSE的响应比每2秒轮询高数百倍。 问题是: 假定客户机最终是订阅者(或者至少我认为它是由有限的知识提供的),我能以某种

  • 我有以下目录结构 满载。py,我希望能够仅初始化用户指定的那些类。例如,假设我做了如下事情 我在尝试使用“imp”模块时遇到问题。它不断地说“没有这样的文件或目录”。我的理解是,它不知何故没有正确理解路径。有人能帮我解决这个问题吗?

  • 问题内容: 我正在使用Jenkins Build Flow插件来实现并行化。Groovy DSL执行某些文件操作。即使该选项设置为在特定从属服务器上运行作业,但DSL仍在主服务器上运行。这不是故意的。 有人可以告诉我如何限制DSL在指定的从站上运行吗?即使有一种方法可以通过DSL访问从文件系统,也应该可以。 通常,我们如何使用Groovy从Jenkins主节点访问节点从节点上的文件? 工作空间位于