最近我刚开始学习hadoop,我只是做了一个实验来真正理解它。以下是教程:http://www.codeproject.com/articles/757934/apache-hadoop-for-windows-platform 我想问的是,在我运行了基于教程的几个命令(例如
hadoop namenode-格式
javac-classpath c:\hadoop-2.3.0\share\hadoop\common\hadoop-common-2.3.0.jar;c:\hadoop-2.3.0\share\hadoop\mapreduce\hadoop-mapreduce-client-core-2.3.0.jar;c:\hadoop-2.3.0\share\hadoop\common\lib\gson-2.2.4.jar;c:\hadoop-2.3.0\share\hadoop\common\lib\commons-cli-1.2.jar recipe.java
jar-cvf recipe.jar*.class
hadoop fs-mkdir/in
hadoop fs-copyfromlocal c:\hwork\recipeitems-latest.json/in
hadoop jar c:\hwork\recipe.jar配方/in/out
hadoop fs-ls/out
hadoop fs-cat/out/part-r-00000
2条答案
按热度按时间enyaitl31#
您可以通过浏览hadoop主目录下/bin文件夹中的二进制文件“hadoop”来跟踪流。
提交hadoop命令后,它将充当unix中的普通shell命令(cat、ls、awk)。它将转到hadoop二进制(/bin)目录并开始执行命令,其他选项(fs、jar、distcp、job、namenode、jt..)作为参数。根据hadoop命令提供的选项,下一个shell将被调用,剩下的选项作为参数。最后,java类将使用请求的选项执行。我简要介绍了hadoopfs-cat的工作原理
bin/hadoop
垃圾箱/hdfs
java类实现示例,http://grepcode.com/file/repository.cloudera.com/content/repositories/releases/com.cloudera.hadoop/hadoop-core/0.20.2-320/org/apache/hadoop/fs/fsshell.java
您可以看到命令(cat)是如何在java中实现的。我相信这将为您提供一个关于hadoop命令如何在后台工作的简要概述。
taor4pac2#
hadoop fs
在hdfs文件系统上运行类似于unix(ls、copy、cat等)的命令您可以看到完整的列表是filesystem shell文档hadoop namenode -format
是线虫的初始化,也就是清除hadoop中存储的所有东西——注意,在更新的hadoop版本上,你可以通过hdfs
看到这里了吗另外两个命令(javac和jar)与编译和打包java程序有关