资源描述:
《hadoop程序远程调试》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、hadoop程序远程调试1.JPDA简介SunMicrosystem的JavaPlatformDebuggerArchitecture(JPDA)技术是一个多层架构,使您能够在各种环境屮轻松调试Java应用程序。JPDA由两个接口(分别是JVMToolInterface和JDI)、一个协议(JavaDebugWireProtocol)和两个用于合并它们的软件组件(后端和前端)组成。它的设计0的是让调试人员在任何环境中都可以进行调试。更详细的介绍,您可以参考使用Eclipse远程调试Java应用程序2.JDWP设置JVM本身就支持远程调试,Eclipse也支持JDWP,只需要在各模块
2、的JVM启动时加载以下参数:dt_socket表示使用套接字传输。address=8000JVM在8000端口上监听请求,这个设定为一个不冲突的端口即可。server=yy表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。suspend=yy表示启动的JVM会暂停等待,直到调试器连接上才继续执行。suspend=n,则JVM不会暂停等待。3.W要在$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件的最后添加你想debug的进程#远程调试namenodeexportHADOOP_NAMENODE_OPTS="-agentlib:jdwp=t
3、ransport=dt_socket,address=8888,server=y,suspend=y"#远程调试datanodeexportHADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y”#远程调试RMexportYARN_RESOURCEMANAGER_OPTS=H-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"#远程调试NMexportYARN_NODEMANAG
4、ER_OPTS=u-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=yn1.添加完启动namenode或者datanode[root@itcastOlsbin]#./hadoop-daemon.sFTststartingdatanode,loggingto/cloud/hadoop-datanode-iteastoi.outListeningfortransportdt_socketataddres2.到eclipse巾搜索namenode然后attachsourceClassFileEditorSo
5、urcenotfoundTheJARfilehadoop-hdfs-2.2^0jarhasnosourceattachmentYoucanattachthesourcebyclickingAttachSourcebelow:AttachSource…//CompiledfromNameNode.java(version1.6:50.0,superbit)@org.apache.hadoop.dassification.InterfaceAudience.PrivatemiKlirrlaccnmhohHfccorvornamonoriaWamoMoHof3.关联源码SourceAtt
6、achmentConfigurationSelectthelocation(folder,JARorzip)containingthesourcefor•hadoop-hdfs-2.2.0.jar■:9WorkspacelocationPath:
7、1Browse…@ExternallocationPath:[
8、
9、ExternalFile—Encoding:Default(UTF-8)▼ExternalFolderZl'•?■OKCancel4.关联源码后,记得在要调试的地方打上断点然后搜索namenode找到它的main方去石•键debugconfiguration双djremot
10、eJavaapplication修改hostport要上上述一致点击applynamenodetypefiltertext>EclipseApplicatioSJavaApplett-"73JavaApplicationJvJUnitJuJUnitPlug-inTest+OSGiFrameworkSRemoleJavaAppZ.hadoop-hdfs-2NConnectJVSource□CommonProject:hadoopConnectionfype:Standa