需要对hadoop教程中使用的命令进行解释吗

um6iljoc  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(424)

最近我刚开始学习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

enyaitl3

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

COMMAND=$1
case $COMMAND in

# usage flags

--help|-help|-h)
print_usage
exit
;;
.
.
namenode|secondarynamenode|datanode|dfs|dfsadmin|fsck|balancer|fetchdt|oiv|dfsgroups|portmap|nfs3)
.
.
if [ -f "${HADOOP_HDFS_HOME}"/bin/hdfs ]; then
exec "${HADOOP_HDFS_HOME}"/bin/hdfs ${COMMAND/dfsgroups/groups}  "$@"
elif [ -f "${HADOOP_PREFIX}"/bin/hdfs ]; then
exec "${HADOOP_PREFIX}"/bin/hdfs ${COMMAND/dfsgroups/groups} "$@"

垃圾箱/hdfs

elif [ "$COMMAND" = "dfs" ] ; then
    CLASS=org.apache.hadoop.fs.FsShell
    HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
elif [ "$COMMAND" = "dfsadmin" ] ; then
    CLASS=org.apache.hadoop.hdfs.tools.DFSAdmin
    HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
.
.
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"

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命令如何在后台工作的简要概述。

taor4pac

taor4pac2#

hadoop fs 在hdfs文件系统上运行类似于unix(ls、copy、cat等)的命令您可以看到完整的列表是filesystem shell文档 hadoop namenode -format 是线虫的初始化,也就是清除hadoop中存储的所有东西——注意,在更新的hadoop版本上,你可以通过 hdfs 看到这里了吗
另外两个命令(javac和jar)与编译和打包java程序有关

相关问题