Hadoop 使用IntelliJ IDEA 進行遠程調(diào)試代碼的配置方法
昨天晚上遇到一個奇葩的問題, 搞好的環(huán)境DataNode啟動報錯. 報錯信息提示的模棱兩可,沒辦法定位原因.辦法,開啟遠程調(diào)試…
注意 : 開啟遠程調(diào)試的代碼,必須與本地idea的代碼必須保持一致.
二 .服務(wù)器端配置2.1. 設(shè)置啟動遠程debug端口修改 服務(wù)器上的配置文件 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh 增加 環(huán)境變量即可.
組件 環(huán)境變量設(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.編輯服務(wù)器上的配置文件[${HADOOP_HOME}/etc/hadoop/hadoop-env.sh`]隨便加上一行[記住端口!!!]:
export HADOOP_DATANODE_OPTS='-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y'
啟動服務(wù)即可 [啟動完, JVM返現(xiàn)有jdwp的配置,會自動阻塞, 等到idea調(diào)試連接.].
因為我要調(diào)試的是DataNode .所以啟動命令為:
cd ${HADOOP_HOME}/sbin# 啟動datanodesh hadoop-daemon.sh start datanode
查看日志
為了便于觀察報錯信息 . 打開datanode相關(guān)的 日志, 使用命令進行查看就可以了.
到這里,服務(wù)端配置就完成了.
三 .Idea配置將與服務(wù)器同步的代碼導(dǎo)入到idea中, 導(dǎo)入完成, 不編譯,不管報錯信息…只要導(dǎo)入到idea , 等idea自己構(gòu)建完就可以了…
3.1. 根據(jù)報錯信息定位到斷點所在的位置 報錯信息如下:2021-03-27 22:47:51,949 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMainjava.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方法.所以直接找到代碼, 加上斷點即可…
-點擊 Edit Configurations....
建立遠程debug就可以了主要是端口一定要跟服務(wù)端配置的端口要匹配.
第0步, 選擇Remote 的截圖.
-選擇剛才的配置,啟動debug調(diào)試即可. 然后就可以等待連接到服務(wù)器,進行DEBUG操作了…
參考文章:https://www.jianshu.com/p/f33fe9bbca17
到此這篇關(guān)于Hadoop 使用IntelliJ IDEA 進行遠程調(diào)試代碼的配置方法的文章就介紹到這了,更多相關(guān)IDEA 遠程調(diào)試內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Django中如何使用Channels功能2. ASP.NET MVC使用Quartz.NET執(zhí)行定時任務(wù)3. CSS3+Js實現(xiàn)響應(yīng)式導(dǎo)航條4. CSS3中Transition屬性詳解以及示例分享5. ASP.NET MVC實現(xiàn)下拉框多選6. PHP中文亂碼分類及解決辦法大全7. python tkinter實現(xiàn)下載進度條及抖音視頻去水印原理8. asp畫中畫廣告插入在每篇文章中的實現(xiàn)方法9. PHP時間相關(guān)常用函數(shù)用法示例10. 在python中修改.properties文件的操作
