Hadoop 使用IntelliJ IDEA 进行远程调试代码的配置方法

一 .前言

昨天晚上遇到一个奇葩的问题, 搞好的环境DataNode启动报错. 报错信息提示的模棱两可,没办法定位原因.
办法,开启远程调试…

注意 : 开启远程调试的代码,必须与本地idea的代码必须保持一致.

二 .服务器端配置

2.1. 设置启动远程debug端口

修改 服务器上的配置文件 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh 增加 环境变量即可.

组件 环境变量设置
NameNode export HADOOP_NAMENODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=8888,server=y,suspend=y"
DataNode export HADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y"
ResourceManager export YARN_RESOURCEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"
NodeManager export YARN_NODEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"

2.2. 具体操作

1.编辑服务器上的配置文件[${HADOOP_HOME}/etc/hadoop/hadoop-env.sh`]
随便加上一行[记住端口!!!]:

export HADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y"

启动服务即可 [启动完, JVM返现有jdwp的配置,会自动阻塞, 等到idea调试连接.].

因为我要调试的是DataNode .
所以启动命令为:

cd ${HADOOP_HOME}/sbin

# 启动datanode
sh hadoop-daemon.sh start datanode

查看日志

为了便于观察报错信息 . 打开datanode相关的 日志, 使用命令进行查看就可以了.

到这里,服务端配置就完成了.

三 .Idea配置

将与服务器同步的代码导入到idea中, 导入完成, 不编译,不管报错信息…
只要导入到idea , 等idea自己构建完就可以了…

3.1. 根据报错信息定位到断点所在的位置 报错信息如下:

2021-03-27 22:47:51,949 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.lang.RuntimeException: Cannot start secure DataNode due to incorrect config. See https://cwiki.apache.org/confluence/display/HADOOP/Secure+DataNode for details.
 at org.apache.hadoop.hdfs.server.datanode.DataNode.checkSecureConfig(DataNode.java:1523)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:1376)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:501)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2806)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2714)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2756)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2900)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2924)
2021-03-27 22:47:51,959 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1: java.lang.RuntimeException: Cannot start secure DataNode due to incorrect config. See https://cwiki.apache.org/confluence/display/HADOOP/Secure+DataNode for details.

可以看到是 org.apache.hadoop.hdfs.server.datanode.DataNode.checkSecureConfig方法.
所以直接找到代码, 加上断点即可…

3.2. 配置远程连接

-点击 Edit Configurations....

建立远程debug就可以了
主要是端口一定要跟服务端配置的端口要匹配.

第0步, 选择Remote 的截图.

3.3. 启动调试

-选择刚才的配置,启动debug调试即可. 然后就可以等待连接到服务器,进行DEBUG操作了…

参考文章:
https://www.jianshu.com/p/f33fe9bbca17

到此这篇关于Hadoop 使用IntelliJ IDEA 进行远程调试代码的配置方法的文章就介绍到这了,更多相关IDEA 远程调试内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何基于Idea远程调试tomcat war包及jar包

    一. war包方式 1. catalina.bat 开头设置远程端口set JPDA_ADDRESS=8080 2. cmd到bin目录 catalina.bat jpda start 3. idea 开启远程.远程端口是catalina.bat中设置的8080,项目端口为9045,注意区分. debug启动,连接成功.修改类后,点击build或recompile,可以刷新修改的内容到jvm,完成远程热部署. 不过静态资源不能热更新,暂时没找到办法. 4. 完成连接,控制台打印 Connecte

  • idea远程调试spark的步骤讲解

    spark 远端调试 本地调试远端集群运行的spark项目,当spark项目在集群上报错,但是本地又查不出问题时,最好的方式就是调试一步一步跟踪代码.但是在集群上的代码又不能像本地一样的调试.那么就试试这个调试方法吧. 远程调试spark其实就四步: * 第一步jar包拷贝到集群master节点. * 第二步在 idea 中配置远程机器的IP 和调试端口号. * 第三步:启动远端的spark项目. * 第四步 启动idea 进行调试. 首先 首先了解jvm一些参数属性 -Xdebug -Xrun

  • Intellij IDEA基于Springboot的远程调试(图文)

    简介 本篇博客介绍一下在Intellij IDEA下对Springboot类型的项目的远程调试功能.所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态. 方法 首先,打开Edit configurations,点击+号,创建一个Remote应用. 填写name,配置Host地址(远程服务器地址)和端口(选一个未被占用的端口).然后复制For

  • eclipse/intellij idea 远程调试hadoop 2.6.0

    很多hadoop初学者估计都我一样,由于没有足够的机器资源,只能在虚拟机里弄一个linux安装hadoop的伪分布,然后在host机上win7里使用eclipse或Intellj idea来写代码测试,那么问题来了,win7下的eclipse或intellij idea如何远程提交map/reduce任务到远程hadoop,并断点调试? 一.准备工作 1.1 在win7中,找一个目录,解压hadoop-2.6.0,本文中是D:\yangjm\Code\study\hadoop\hadoop-2.

  • 详述IntelliJ IDEA远程调试Tomcat的方法(图文)

    在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remote: 如上图所示,点击Edit Configurations,进入如下界面: 如上图所示,我们进入了Run/Debug Configurations界面,然后点击左上角的+,选择Remote: 标注 1:运行远程 JVM 的命令行参数: 标注 2:传输方式,默认为Socket: 标注 3:调试模式

  • IDEA实现远程调试步骤详解

    IDEA不仅可以本地调试代码,也可以远程调试代码. 一.基本原理 本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息.  被调试程序的远程虚拟机:作为 Debug 服务端,监听 Debug 调试指令.jdwp是Java Debug Wire Protocol的缩写.  调试程序的本地虚拟机:IDEA 中配置的 Remote Server,指定 Debug 服务器的Host:Port,以供 Debug 客户端程序连接. 二.远程调试步骤 1.ID

  • Hadoop 使用IntelliJ IDEA 进行远程调试代码的配置方法

    一 .前言 昨天晚上遇到一个奇葩的问题, 搞好的环境DataNode启动报错. 报错信息提示的模棱两可,没办法定位原因. 办法,开启远程调试- 注意 : 开启远程调试的代码,必须与本地idea的代码必须保持一致. 二 .服务器端配置 2.1. 设置启动远程debug端口 修改 服务器上的配置文件 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh 增加 环境变量即可. 组件 环境变量设置 NameNode export HADOOP_NAMENODE_OPTS="-a

  • Linux 中Tomcat远程调试代码的实现方法

    Linux 中的tomcat远程调试代码 1,是要编辑catalina.sh文件.  而且要改成这 样: CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp :transport=dt_socket,server=y,suspend=n,address=5888" 2.eclipse 中设置: 第一步: 第二步: 第三步: 以上就是Linux 中Tomcat远程调试代码的实现方法,如有疑问请留言

  • PyCharm+PySpark远程调试的环境配置的方法

    前言:前两天准备用 Python 在 Spark 上处理量几十G的数据,熟料在利用PyCharm进行PySpark远程调试时掉入深坑,特写此博文以帮助同样深处坑中的bigdata&machine learning fans早日出坑. Version :Spark 1.5.0.Python 2.7.14 1. 远程Spark集群环境 首先Spark集群要配置好且能正常启动,版本号可以在Spark对应版本的官方网站查到,注意:Spark 1.5.0作为一个比较古老的版本,不支持Python 3.6+

  • Pycharm配置远程调试的方法步骤

    动机 一些bug由于本地环境和线上环境的不一致可能导致本地无法复现 本地依赖和线上依赖版本不一致也可以导致一些问题 有时一些bug跟数据相关,本地数据无法和线上数据一致 有些三方平台会验证服务器的合法性或者异步回调结果,如微信支付,这时候本地无法测试 如上所诉,要是有一个很方便调试远程服务器的方法,岂不美哉.通过PyCharm我们可以很方便地实现远程调试,下面详细介绍下PyCharm这个牛叉的功能. 使用远程解释器 默认情况下我们在本地开发Python程序时,使用的是本地的Python解释器,如

  • C#客户端程序Visual Studio远程调试的方法详解

    一,需求来源 在开发过程中,可能会要使用Win7 ,Win8 ,Win10等不同版本的系统去做兼容性调试,也有时候会去针对特别的显卡,无线网卡等等硬件设备的机器做优化,有一种较优的方案,那就是使用Visual Studio的远程调试功能,可以直接将测试机作为调试目标,直接跟踪断点和异常,可以像在本机调试一样,迅速的找到错误的地方.,而不需要在测试机安装VS环境. >传统桌面客户端的远程调试相比UWP,ASP等项目来说,配置比较麻烦,因为它是非部署的应用程序,原理是复制编译的文件到远程计算机,通过

  • Springboot jar包远程调试详解

    对于运行在服务器上面,隐藏较深,通过日志也排查不出的问题,有的时候需要通过本地调试来一步步排错,教过好些同事远程调试所需配置步骤,特此用笔记录下来,避免重复劳动. 一.idea打包 二.install 后jar包位置 三.运行程序(远程调试启动) 找到jar所在路径,进入cmd窗口,命令如下,监听启动5005端口(和程序的端口8089没关系)-远程调试启动语句: // 找到对应的jar包目录,cmd窗口中执行下面语句即可java -Xdebug -Xrunjdwp:transport=dt_so

随机推荐