hadoop的调试
发布日期:2021-08-26 15:47:12 浏览次数:3 分类:技术文章

本文共 1350 字,大约阅读时间需要 4 分钟。

折腾hadoop的调试很久了,一直都没折腾对,查过很多资料,但是都没试出来,最终在不断地尝试当中调试出来了,所以想把这个过程记录下来,和大家分享一下。

调试分为两部分,MapReduce的调试和源码的调试。MapReduce的调试很简单,首先要部署好hadoop,这个我就不说了,自己去百度。部署好之后,下载Hadoop对应的eclipse插件,有了这个插件之后,变得异常简单。这是我在网上下的hadoop1.1.2的eclipse插件的地址:。下载完毕之后,把它放入eclipse目录的dropins文件夹中即可,然后重启eclipse。

f72c7c044b42b007133c561f0a9e0b0a2f22f621

打开windows preferences 中,发现有Hadoop Map/Reduce就说明已经成功了。打开window show View ,选择Map/Reduce Locations。

cc8c4b99131ddf90ab36b0d1146cab6e00dc7881

编辑Map/Reduce Locations

61ffdeacf33b6c77b52cf65dd5b8af90eef49f3b

修改成实际的Ip地址和端口即可。

ab06e170c779a026704ec6a45580157dd0b73aba

设置完毕,开始新建工程。

点击File,新建工程,选择Map/Reduce Project.

b3d5de27234fbb0485471a0580ab29dd3a12010f

新建工程之后,然后新建一个类,我们可以把工程里面的examples里面的WorkCount拿出来试验一下,直接点调试即可开始,就像我们正常调试程序一样。examples里面还提供了其他很多的例子,大家可以去看看挺好的。

好了,现在我们开始进入hadoop源码的调试当中,在调试之前我们首先要把源码处理成不报错的状态。

把源码导入eclipse当中,源码可以在发布版的hadoop的src文件夹中找,然后我们导入jar,右键点击属性,选择java Build path,点击add jars,把发布版的lib文件夹中所有的jar包都导入。

6ee95b081e7c88208b75c9f321df805bb09a0c1d

然后我们再点击Source标签页,去掉多余的内容,我们只需要编译核心的几个目录即可,多编译因为缺少一些别的jar包报错,比如ant的。

先删掉原来的src目录,然后重新添加,我点Add Folder添加了一下目录,别的我就没有编译了。

3f5e08691c464da232197d5afdb67ffd289d3d10

然后再点击左侧的Java Compiler,选择子项Error/Warnning ,如下图所示,把Error改成Warning.

0975d263b678c64f852c42be0d043a77bea219a1

点击Ok,设置完毕,可以开始Build啦。

好,我们打开hadoop生产环境下的bin目录下的hadoop,我们以调试NameNode为例子,找到elif ["COMMAND" = "namenode"]这一段,在HADOOP_OPTS

的字符串后面,添加-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000。

8abe71c063c7a4d08dd732b2dc67edf46648570e

其中suspend表示是否挂起等待调试连接,这里我没有让它挂起,有需要的朋友可以改成y,让它挂起,那样效果很明显,一直等着你连接。

这边就算设置完毕了。可以启动hadoop,命令行会出现,8000端口已经被监听的提示,然后在Eclipse这边打开NameNode的代码,打上断点,然后打开Debug Configurations 面板,在左侧选择Remote Java Application,如下图:

bbd26b2e96dae9ee71214ff57397e10f9b31ac59

点击Debug,然后进入熟悉的debug页面就是成功啦!

分享结束,有什么不明白可以留言。

转载地址:https://blog.csdn.net/weixin_33890499/article/details/90614498 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:android--显式跳转和隐式跳转的区别用法
下一篇:Getting Started on Predictive Analytics

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月31日 16时37分40秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

“中文编程”知乎专栏两岁了——山雨欲来风满楼 2019-04-26
大疆机甲大师Python API之七:做个闹钟 2019-04-26
【意外走向】大疆机甲大师Python API之八:计时——为性能测试展开1000次循环 2019-04-26
RFC#2457——Rust 语言支持非 ASCII 码标识符在 GitHub 引发的激辩(一) 2019-04-26
RFC#2457——Rust 语言选择支持非 ASCII 码标识符在 GitHub 引发的激辩(二) 2019-04-26
”为什么有这么多人执着于中文编程?”回答两千赞留念及回应 2019-04-26
【家务】盘点小孩玩具零件缺失情况 2019-04-26
开发中文 API 的一些策略 2019-04-26
从日本编程书籍《我的第一本编程书》中译版看中文例程如何扬长避短——标识符(一) 2019-04-26
中文命名标识符如何区分类型和变量 2019-04-26
编程术语成系统中文化的意义 2019-04-26
草蟒 Python 中文 API 与 IDE 支持尝鲜 2019-04-26
一种改进中文 API 可读性的方法:参数不限于在末尾 2019-04-26
中文编程开发工具的生存模式探讨 2019-04-26
写给木兰编程语言研发团队的公开信 2019-04-26
为什么要急着为「木兰」编程语言贴上“造假”的标签? 2019-04-26
编程语言国产化的关键一战——对肆意污名化“木兰”编程语言说“不” 2019-04-26
各大媒体对「木兰」编程语言的不当言论盘点 2019-04-26
戳破针对「木兰」编程语言的拙劣谣言 2019-04-26
为「木兰」编程语言添加对中文命名标识符的支持 2019-04-26