分享

命令行里输入dfs -put后是如何调用到dfs包里的类的(比如DataNode)

cryst2l 发表于 2013-10-25 10:45:54 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 5574
我在分析用户输入命令和程序运行的连接部分。
用户输入-put后是从fs包里的FsShell类进入整个系统的,但是我没有找到从哪里可以到达datanode和namenode的相关操作,比如writeblock之类的。
对这部分不了解,请各位帮帮忙,谢谢!

已有(1)人评论

跳转到指定楼层
RnD_Alex 发表于 2013-10-25 10:45:54
好好熟悉下Tool接口嘛。
FsShell实现了Tool接口,而Tool接口中有一个run方法,FsShell重载这个方法,在里面就有各个命令对应的执行类和方法。
比如-put对应的就是:[ol]
  • if ("-put".equals(cmd) || "-copyFromLocal".equals(cmd)) {
  •         Path[] srcs = new Path[argv.length-2];
  •         for (int j=0 ; i 复制代码跟踪main方法里的[ol]
  • res = ToolRunner.run(shell, argv);[/ol]复制代码进去看,你就知道它一步步做了什么了。
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    推荐上一条 /2 下一条