今日云计算非常火爆. 但需要利用Linux 为基础, 以Java 为编程核心开发Hadoop. 一打开份教材, 需要设置SSH 免密码登录, 已经感觉好麻烦. 为何不可以跟网络去处理, 为何一定要SSH呀??
试想想. 所有远程执行都是网络执行. 用的是Web Services 等工具.
例如: 一个MapReduce 的执行包, 是经网络传送. (用WCF 实现). 分散式的档案系统是REST / WebDAV 的形式.
[ 执行者] -- WCF 传送执行DLL --> [ 工作分配服务] -- WCF 再传送DLL --> [ Mapper ] ^ n --> 结果传到Cloud FS --> [ Reducer / Shuffle / Sort ] ^ n --> 结果传回Cloud FS.
Microsoft.NET
有 WCF 可以简化开启通讯方法
有AppDomain, 可以动态载入所需DLL. 现在有MEF 可以更加方便.
有CodeDom Support 可以动态生成所需的WCF Contract.
有LINQ Expression 可以将Mapper/Reducer 简化. (ie var Result = from i in [ SOURCE] where [MAPPER] order by [ SORT ] group i by [ REDUCER] select [MAPPER].)
有Parallel Extension 可以更易运用多核心的处理, 不需因多核心而增加太多Mapper 的数目. 始终对应的I/O 并不多.
有ASync Framework 可以更易编写非同步Invoker.
有Reactive Extensions 可以有更好的Observer 的模式.
构想中的MapReduce 可能先借助现在的Cloud FS (ie SkyDrive) 这一类现成的. 避免一开始要构建复习的Name Node, Data Node, n Copy 的Distributed File System.
以上是本人发疯的构想.
利用的 .NET构建的MapReduce系统的构想
最新推荐文章于 2020-09-10 19:57:30 发布