eclipse搭建hadoop源码调试环境
2016-05-05 12:54
603 查看
官网下载的hadoop源码不是eclipse工程,需要重新编译
本机系统:ubuntu
1.安装工具
使用sudo apt-get install依次安装ant,libtool,autoconf,automaker,openssh-server
2.编译
打开终端,进入hadoop解压的目录,然后分别执行ant clean,ant eclipse verbose,编译成功后如下图所示
3.导入hadoop
import选择existing project,如果出现unbound class path variable ANT_HOME=...,需要在build
path添加ANT_HOME变量路径,此后如果出现com.sun.tools..cannot be resolved就需要在build path把jdk/lib/tools.jar添加进来,此时已无错误信息如下图所示
4.安装hadoop
1.配置conf目录下的haddoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml这四个文件
haddoop-env.sh:
export JAVA_HOME=jdk安装目录
core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>指定存放的目录路径</value>
</property>
</configuration>
mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
hfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
2.设置免密码登录,依次执行命令:ssh-keygen -t rss cd ~/.ssh/ cat id_rsa.pub >> authorized_keys
3.格式namenode:hadoop namenode -format(需要把hadoop/lib添加到环境变量,或者cd到hadoop/lib目录)
4.在conf的haddoop-env.sh文件添加如下内容(每次调试只能使其中一个有效):
#debug hadoop
#HADOOP_NAMENODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=y"
#HADOOP_SECONDARYNAMENODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8789,server=y,suspend=y"
#HADOOP_DATANODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8790,server=y,suspend=y"
#HADOOP_BALANCER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8791,server=y,suspend=y"
#HADOOP_JOBTRACKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8792,server=y,suspend=y"
#HADOOP_TASKTRACKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8793,server=y,suspend=y"
#debug hadoop
现以调试jobtracker为例:
1.去掉前一步添加的#HADOOP_JOBTRACKER_OPTS井号,使其有效。打开终端,运行 start-all.sh,启动hadoop,可以看到其中的一行信息是:Listening
for transport dt_socket at address: 8792,表明此时namenode处于监听状态
2.设置断电,找到namenode相关的代码,并在其中某行设置断点,如org.apache.hadoop.mapred下的JobTracker.java中的
this.clock = clock;打上断点,然后RUN->DEBUG,程序就会进入调试模式,如下图所示:
本机系统:ubuntu
1.安装工具
使用sudo apt-get install依次安装ant,libtool,autoconf,automaker,openssh-server
2.编译
打开终端,进入hadoop解压的目录,然后分别执行ant clean,ant eclipse verbose,编译成功后如下图所示
3.导入hadoop
import选择existing project,如果出现unbound class path variable ANT_HOME=...,需要在build
path添加ANT_HOME变量路径,此后如果出现com.sun.tools..cannot be resolved就需要在build path把jdk/lib/tools.jar添加进来,此时已无错误信息如下图所示
4.安装hadoop
1.配置conf目录下的haddoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml这四个文件
haddoop-env.sh:
export JAVA_HOME=jdk安装目录
core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>指定存放的目录路径</value>
</property>
</configuration>
mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
hfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
2.设置免密码登录,依次执行命令:ssh-keygen -t rss cd ~/.ssh/ cat id_rsa.pub >> authorized_keys
3.格式namenode:hadoop namenode -format(需要把hadoop/lib添加到环境变量,或者cd到hadoop/lib目录)
4.在conf的haddoop-env.sh文件添加如下内容(每次调试只能使其中一个有效):
#debug hadoop
#HADOOP_NAMENODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=y"
#HADOOP_SECONDARYNAMENODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8789,server=y,suspend=y"
#HADOOP_DATANODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8790,server=y,suspend=y"
#HADOOP_BALANCER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8791,server=y,suspend=y"
#HADOOP_JOBTRACKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8792,server=y,suspend=y"
#HADOOP_TASKTRACKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8793,server=y,suspend=y"
#debug hadoop
现以调试jobtracker为例:
1.去掉前一步添加的#HADOOP_JOBTRACKER_OPTS井号,使其有效。打开终端,运行 start-all.sh,启动hadoop,可以看到其中的一行信息是:Listening
for transport dt_socket at address: 8792,表明此时namenode处于监听状态
2.设置断电,找到namenode相关的代码,并在其中某行设置断点,如org.apache.hadoop.mapred下的JobTracker.java中的
this.clock = clock;打上断点,然后RUN->DEBUG,程序就会进入调试模式,如下图所示:
相关文章推荐
- 提升Java性能的基本方法
- Java集合的有序、无序、排序性质讨论
- JavaWeb中Ajax的使用-基本使用+省市联动例子
- Eclipse中出现无法找到Maven包
- Android生成新的keystore(通过Eclipse的ADT方式)为什么需要输入两个密码,并且第二个密码显示Key certificate validity is required?
- Struts2的过滤器和拦截器
- Java哪些集合的 元素不能重复
- java SpringMVC 搭建的步骤
- java 设计模式简单汇总
- Hibernate配置文件(hibernate.cfg.xml)
- 浅谈Java反射
- JavaWeb之抓包之旅(二) :抓包工具
- IOS消息定时推送(JAVAWEB)
- Java 容器(三) Set
- 《java入门第一季》之面向对象(继承)
- JAVA邮件发送的简单实现
- 《java入门第一季》之面向对象(继承)
- java 中== equal hashcode()什么的之间的关系
- 利用java制作一个小的目录查询器
- 【深入理解JVM】:Java对象的创建、内存布局、访问定位