Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ftp执行远程java程序,远程机器上的超大数据集-程序到数据vs数据到程序_Java_Windows_Hadoop_Large Files_Remote Execution - Fatal编程技术网

使用ftp执行远程java程序,远程机器上的超大数据集-程序到数据vs数据到程序

使用ftp执行远程java程序,远程机器上的超大数据集-程序到数据vs数据到程序,java,windows,hadoop,large-files,remote-execution,Java,Windows,Hadoop,Large Files,Remote Execution,我正在开发一个基于java的应用程序;其相关要求如下所列 大型数据集存在于网络上的多台机器上。我的程序需要(远程)执行一个java程序来处理这些数据集并获取结果 windows桌面上的用户将需要在机器A上处理数据集(几个GIG)。我的程序可以驻留在用户的机器上。他将在他的机器上执行我的程序,并在远程机器上启动数据集处理 他将在远程机器上执行程序并获取结果,而不是通过网络从远程机器获取数据集 用户可以开放访问其他计算机,但需要ftp 数据不应通过网络传送到用户的机器 用户拥有windows操作系

我正在开发一个基于java的应用程序;其相关要求如下所列

  • 大型数据集存在于网络上的多台机器上。我的程序需要(远程)执行一个java程序来处理这些数据集并获取结果

  • windows桌面上的用户将需要在机器A上处理数据集(几个GIG)。我的程序可以驻留在用户的机器上。他将在他的机器上执行我的程序,并在远程机器上启动数据集处理

  • 他将在远程机器上执行程序并获取结果,而不是通过网络从远程机器获取数据集

  • 用户可以开放访问其他计算机,但需要ftp

  • 数据不应通过网络传送到用户的机器

  • 用户拥有windows操作系统

我的问题

  • 如何执行这种远程进程执行?有什么想法吗

  • 我在看hadoop;我正在使用Windows XP。我无法让hadoop为单节点集群工作;我找不到好的文件。因此,我还没有完全测试hadoop。对我是否走上了正确的道路有何评论

  • 你们中的任何一个人发现了对hadoop的安装和故障排除有用的链接吗

提前感谢您的回复。如果我需要提供更多/具体的细节,请告诉我


-jv

假设您可以在远程机器上运行Java虚拟机,那么Java有一个可以使用的RMI API。这是最轻的解决方案。下一个最轻的重量将是直接套接字通信。在这之后,您将进入EJB服务器或Web服务器,这可能有些过头了。

看看如何使用Java 6编写Web服务。它允许您将方法发布为带有注释的web服务。web服务客户端很小,不需要额外的软件。我发现IntelliJ IDE的想法易于使用,并生成了一个纯Java6客户机

然后,它本质上归结为进行“正常”方法调用,并处理结果


保持简单。网格软件很可能不是您想要的。

非常感谢。将对此进行检查。在web服务和RMI实现之间,这可能更快、更轻。我不想在不先做研究的情况下提问,但我认为专家的意见可以帮助指导正确的方向。RMI会更快。这是Java字节码对Java字节码。Web服务通常是XML到java字节码。这就是我把它们放在其他事情清单的最后一项。当您有或者可以合理地期望非java客户机与您交谈时,Web服务工作得很好。据我所知,在您的情况下,RMI和web服务(如果有的话)之间的速度差异将严重淹没在网络的速度中。如果你不相信我,请测量!谢谢。将对此进行检查我还没有深入研究使用RMI;但我认为网络上的每台机器都可以在其jvm上运行应用程序(“服务器”(远程)代码+客户机”代码)。因此,每台机器都是一个客户机和服务器,这就是它们相互通信的方式。这有意义吗?实际上没有一个客户机和服务器使用RMI,您当然可以在类B上使用类a调用方法,然后让类B回报您。或者你可以让B类返回数据,这是远程方法调用,所以你可以用方法做任何事情,你也可以用RMI做。谢谢Jim。我已经开始研究基于RMI的体系结构。当然,Jim,只要了解更多细节(下周初)。