所以基本上,我正在尝试在java中实现MapReduce框架。
这里的问题是,我希望从节点(机器)知道用户定义的map和reduce函数。一开始,只有主节点知道什么是使用代码,因为默认情况下,用户在主机上编写代码。但是,从节点和主节点是不同的机器,并且机器具有网络连接。
我的想法是,将用户的代码发送到从节点,即通过java RMI将编译好的。class文件发送到从节点。目前,我的解决方案是,将.class作为一个普通文件,将.class的内容读入byte[],并通过java RMI发送这个字节数组。从节点接收到byte[]后,将数据写入本地文件系统,并使用ClassLoader获取用户定义的代码。
那么,还有其他解决这个问题的方法吗?
- FTP HTTP
- RMI代码库特性
- 普通Java流代码
- …