要学习hadoop 那debug源码学习是最好的方式了,那如何debug呢
首先找hadoop启动脚本,位于HADOOP_INSTALL_HOME下的bin目录中的hadoop文件
在HADOOP_OPT 列表上增加这么一行即可
-
HADOOP_OPTS=
"$HADOOP_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"
eclipse里debug的时候选择Remote Java Application 端口设置为8787就可以了。
启动hadoop的时候他就会在8787端口监听,直到有人连接过来才会继续前进。
貌似这样是可以debug了,不过呢在debug与非debug之间不是很方便的切换过来,例如每次都需要修改debug那一行的参数列表,希望能够动态调整就好了,类似加个debug启动参数就进入debug模式,如果不加debug就是正常启动模式。利用前一篇讲shell技巧里的获取最后一个参数的功能,我们可以增加如下代码实现debug动态调整功能。
-
debug=${!
-
-
if
[
"$debug"
=
"debug"
]; then
-
HADOOP_OPTS="$HADOOP_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"
-
fi
将多余的debug参数去掉,同时需要修改启动脚本里的exec
-
if
[
"$debug"
=
"debug"
]; then
-
declare -a params
-
i=1
-
for
arg
in
"$@"
-
do
-
params[$i]=$arg
-
((i++))
-
done
-
unset params["$#"
]
-
exec
"$JAVA"
$JAVA_HEAP_MAX $HADOOP_OPTS -classpath
"$CLASSPATH"
$CLASS
"${params[@]:1}"
-
else
-
exec
"$JAVA"
$JAVA_HEAP_MAX $HADOOP_OPTS -classpath
"$CLASSPATH"
$CLASS
"$@"
-
fi
这样在启动时 如果是
那就进入debug模式,否则正常运行模式。
更多信息请查看 java进阶网 http://www.javady.com
分享到:
相关推荐
然后,通过配置Eclipse的Run/Debug Configuration,设置正确的Java运行参数,如HADOOP_HOME指向Hadoop的安装目录。 在使用winutils.exe和hadoop.dll时,可能会遇到一些常见问题,如找不到相关文件的错误、权限问题...
hadoop用于解析lzo的包,这个问题在使用presto的时候需要将此包添加到presto的工具包中,以支持lzo格式文件的查询。
在Eclipse中,你可以为MapReduce任务设置断点,并使用Debug模式运行。在“Run Configurations”中,配置Hadoop Job运行参数,包括输入路径、输出路径、Job配置等。启动调试后,Eclipse会将JAR文件提交到Hadoop集群...
3. **winutils.exe**: 这同样是针对Windows平台的Hadoop工具,它是Hadoop在Windows上的一个关键组件,提供了类似Linux环境下`hadoop`命令行工具的功能,比如设置HADOOP_HOME环境变量,管理HDFS等。 **使用步骤** 1...
3. **使用 DebugFlag**:在提交作业时,可以设置 `-Dmapred.map.task.debug.script` 和 `-Dmapred.reduce.task.debug.script` 参数,使得 Map 或 Reduce 任务在完成时生成一个脚本,用于进一步分析。 4. **使用可视...
* hdfs debug recoverLease -path 文件位置 -retries 重试次数:修复指定路径的 HDFS 文件 六、自动修复 HDFS HDFS 自动修复可以通过 directoryscan 和 blockreport 机制来实现。当数据块损坏后,DN 节点会执行 ...
6. **运行和调试**:写好代码后,右键点击项目,选择"Hadoop" > "Run on Cluster"或"Debug on Cluster",Eclipse会自动将你的程序提交到Hadoop集群上运行。你可以在"Console"视图中查看运行日志,也可以在...
2. 调试MapReduce任务:通过"Debug As" -> "Hadoop Job",Eclipse提供了调试功能,可以在Mapper和Reducer中设置断点,逐步执行代码,查看变量状态,帮助找出问题所在。 六、优化与维护 Hadoop2x-eclipse-plugin还...
- `HADOOP_HOME`:设置指向Hadoop安装目录的环境变量。 - `PATH`:在系统变量PATH中添加`%HADOOP_HOME%\bin`,使得命令行可以识别Hadoop命令。 4. **编辑配置文件**: - `core-site.xml`:配置Hadoop的基本属性...
- 配置集群信息:在项目属性中,可以设置Hadoop集群的配置信息,如HDFS地址、YARN地址等。 - 运行和调试:通过Eclipse的Run或Debug配置,可以直接提交MapReduce任务到Hadoop集群,并实时查看日志和结果。 5. **...
在Job Manager中选择相应的集群,设置运行参数,然后点击"Run"或"Debug"。 2. 运行过程中,可以在"Console"视图中查看输出,方便定位问题。 六、优化与进阶 1. 除了基本功能,该插件还提供了代码自动补全、错误...
在IDEA中,你可以创建一个新的Run/Debug Configuration,选择“Application”类型,设置Main Class为你的Job类,添加VM options来模拟Hadoop环境,例如`-Dmapreduce.jobtracker.address=localhost:8021`。...
在调试时,可以设置断点并使用`Debug As`选项进行调试。 7. **hadoop01**:这可能是示例代码中包含的一个Hadoop相关模块或者测试数据。具体的内容可能涉及文件系统的操作,例如创建、读取、更新或删除文件的Java...
在终端中设置环境变量`HADOOP_ROOT_LOGGER`为`DEBUG,console`以开启DEBUG级别的日志打印,如需关闭,则将其设置为`INFO,console`。 - **Hadoop Shell命令**:`hadoop daemonlog`命令用于管理日志级别。`-getlevel`...
此外,确保Hadoop的JVM允许远程调试,如在`mapred-site.xml`中添加`<property><name>mapreduce.map.debug.port</name><value>5005</value></property>`,指定调试端口。 12. **测试远程调试**: 在你的IDE(如...
在弹出的对话框中,设置输入文件(例如,一个包含文本的文本文件)和输出目录。点击“Run”启动MapReduce作业。 7. **查看结果**: 作业完成后,Hadoop会将结果写入指定的输出目录。你可以通过HDFS命令行或者...
5. 运行和调试:使用Eclipse的Run或Debug功能,可以直接在本地运行MapReduce程序,或者连接到远程Hadoop集群进行测试。 此外,对于更高效的开发,可以学习使用Hadoop的高级特性,如Pig、Hive、Spark等工具,它们...
4. 配置Hadoop的环境变量,包括`HADOOP_HOME`、`PATH`,并编辑`hadoop-env.sh`文件设置`JAVA_HOME`。 5. 配置Hadoop的核心配置文件`core-site.xml`,指定HDFS的名称节点和临时目录。 6. 配置HDFS的配置文件`hdfs-...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的出现主要解决了大数据处理的难题。"hadoop-0.20.2-cdh3u6"是Cloudera公司基于Hadoop的一个发行版本,名为CDH(Cloudera Distribution Including Apache ...
- 若需调试,可以在代码中设置断点,然后使用`Debug As` -> `Map/Reduce Job`运行任务,Eclipse将提供调试功能。 通过以上步骤,你已经成功在Eclipse 3.6中配置并使用了Hadoop 0.21.0插件。这个插件使得开发人员能...