调试hadoop的小技巧
在调试hadoop的时候,你第一点需要明确需要调试哪个类,然后调试时的上下文参数大概是什么样的,在上一篇里我讲了如何设置hadoop的调试,这里分享一点小的调试技巧。?
?
?
例如我需要知道调试的类和上下文参数,那其实在启动脚本里就有的,我们不妨在启动时将这些输出来看,例如在hadoop的
?
Python代码??
- exec?"$JAVA"?$JAVA_HEAP_MAX?$HADOOP_OPTS?-classpath?"$CLASSPATH"?$CLASS?"$@"??
?
???? 这一行上面增加如下的echo语句
?
Python代码??
- echo?"opts=$HADOOP_OPTS"??????#一些额外设置的参数??
- #echo?"classpath=$CLASSPATH"??#这个是所有的jar路径??
- echo?"class=$CLASS"???#具体的调试类??看main函数??
- echo?"params=$@"??????#传递的参数??
?
?? 例如运行
?
Python代码??
- hadoop??dfs?-ls????
??? 将得到如下输出
?
Python代码??
- opts=??-Dhadoop.log.dir=/home/dikar/Program/hadoop-0.20.2/bin/../logs?-Dhadoop.log.file=hadoop.log?-Dhadoop.home.dir=/home/dikar/Program/hadoop-0.20.2/bin/..?-Dhadoop.id.str=?-Dhadoop.root.logger=INFO,console?-Djava.library.path=/home/dikar/Program/hadoop-0.20.2/bin/../lib/native/Linux-i386-32?-Dhadoop.policy.file=hadoop-policy.xml??
- class=org.apache.hadoop.fs.FsShell??
- params=-ls??
?
?? 则知道调试时是需要进入? FsShell这个类
更多信息请查看?java进阶网?http://www.javady.com