Linux下使用eclipse调试hadoop程序
2013-09-10 15:31
260 查看
1、准备工作
首先下载一个hadoop的稳定版本,我使用的是hadoop-1.1.2
下载jdk1.6
下载ant,我使用的是apache-ant-1.9.2
安装eclipse
2、创建hadoop工程,修改配置
解压hadoop-1.1.2.tar到一个指定文件夹
新建一个java project,选择hadoop-1.1.2文件夹即可
修改conf文件夹下几个xml的配置如下:
1)core-site.xml:
2)hdfs-site.xml:
3)mapred-site.xml:
3、设置ssh无密码登陆
命令行下执行如下:
#ssh-keygen -t rsa
#cd ~/.ssh
#cat id_rsa.pub >> authorized_keys
执行完后执行ssh localhost,不需要输入密码即可
4、运行hadoop
命令行进入hadoop-1.1.2文件夹下,执行如下
#bin/hadoop namenode -format #格式化hdfs
#bin/start-all.sh #启动所有服务
执行完上面两个语句,使用jps命令应该能看到6个进程如下:
5333 NameNode
5471 DataNode
5874 TaskTracker
6815 Jps
5736 JobTracker
5633 SecondaryNameNode
5、编译hadoop
进入hadoop-1.1.2文件夹下,执行ant进行编译
编译过程中可能会有各种问题:
1)请保证你的机器能够访问外网,如果是实验室或公司机器只能访问内网,需要设置代理:
export http_proxy="http://xxx.xxx.xxx.com:端口号"
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
2)编译过程中可能会遇到jetty、common-el等找不到master配置的情况,找到hadoop-1.1.2文件夹下的ivy.xml
把jetty->master都替换为jetty->default,把common-master都替换为common->default
3)可能在/root/.ivy2/local/下找不到一些jar,然后通过一些地址去下载,地址又是失效的
自己手动去下载那些jar,放入指定文件夹下即可
最终编译成功
6、编译hadoop-eclipse插件
进入hadoop-1.1.2/src/contrib/eclipse-plugin/文件夹下,执行
#ant -Declipse.home=/path/to/eclipse -Dversion=1.1.2
其中-Declipse.home是eclipse的安装目录,-Dversion=1.1.2是hadoop的版本号
编译成功后会在hadoop-1.1.2/bulid/contrib/下生成一个名为hadoop-eclipse-plugin-1.1.2.jar的eclipse插件,
拷贝到Declipse.home/plugins/下,重启eclipse
windows->show view->other->mapreduce tools->map/reduce locations
点击蓝色的大象,新建一个mapreduce连接,设置如下图
9000是之前在core-site.xml中设置的dfs端口号
9001是之前在mapred-site.xml中设置的mapred的端口号
确认完成后可以在project explorer界面看到如下图:
通过右键添加、删除文件夹和文件,上传、下载文件,比使用命令行put和get方便多了吧~
编译过程中可能也会遇到一些问题,也可以直接用别人已经编译好的hadoop-eclipse插件
7、新建一个mapred工程
1)new->project,这里可以选择mapred project,如下图
2)执行next,配置hadoop工程位置,和新建工程位置
如上图,configure hadoop install directory选择hadoop-1.1.2工程位置,点击OK即可
3)把WordCount.java那个文件拷过来,配置run configuration如下图
参数写“/test/input/a.txt /test/output/test4”,其中/test/input/a.txt为hdfs上的文件,作为输入文件,/test/output/test4作为输出文件夹,确保test4当前不存在
然后右击WordCount.java,run on hadoop->choose an existing server from the list below->finish
可以在console界面看到调试信息,然后选中hdfs的output文件夹按F5进行刷新,可以看到如下:
8、远程调试hadoop程序
调试新建的mapred应用程序不需多说,和调试一般程序一样,现在介绍如何调试mapred程序,比如jobtracker
如果hadoop服务在远程机器上,确保本地代码和远程的是一致的
1)在hadoop-1.1.2目录下使用命令行执行如下语句,表示使用调试模式监听JobTracker
#export HADOOP_JOBTRACKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9876,server=y,suspend=y"
2)然后启动hadoop
#bin/start-all.sh
会看到信息:Listening for transport dt_socket at address: 9876
3)新建一个debug配置如下图
如上图所示,选择Remote Java Application,Project选择hadoop-1.1.2的项目,连接属性填写远端地址和端口。
因为这里使用的是单机环境,地址填了localhost,如果是远端服务器,填写远端服务器IP或hostname,然后端口填写之前设置的监听端口
4)设置断点,启动debug,在命令行执行mapred程序,就可以进入断点进行调试,mapred命令可以使用如下:
#bin/hadoop jar hadoop-examples-1.1.2.jar wordcount /test/input/a.txt /test/output/test2
5) 因为是在命令行执行export,想退出调试模式,把终端关闭再启一个就行了,非常方便
首先下载一个hadoop的稳定版本,我使用的是hadoop-1.1.2
下载jdk1.6
下载ant,我使用的是apache-ant-1.9.2
安装eclipse
2、创建hadoop工程,修改配置
解压hadoop-1.1.2.tar到一个指定文件夹
新建一个java project,选择hadoop-1.1.2文件夹即可
修改conf文件夹下几个xml的配置如下:
1)core-site.xml:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/hadoop/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
2)hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
3)mapred-site.xml:
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
3、设置ssh无密码登陆
命令行下执行如下:
#ssh-keygen -t rsa
#cd ~/.ssh
#cat id_rsa.pub >> authorized_keys
执行完后执行ssh localhost,不需要输入密码即可
4、运行hadoop
命令行进入hadoop-1.1.2文件夹下,执行如下
#bin/hadoop namenode -format #格式化hdfs
#bin/start-all.sh #启动所有服务
执行完上面两个语句,使用jps命令应该能看到6个进程如下:
5333 NameNode
5471 DataNode
5874 TaskTracker
6815 Jps
5736 JobTracker
5633 SecondaryNameNode
5、编译hadoop
进入hadoop-1.1.2文件夹下,执行ant进行编译
编译过程中可能会有各种问题:
1)请保证你的机器能够访问外网,如果是实验室或公司机器只能访问内网,需要设置代理:
export http_proxy="http://xxx.xxx.xxx.com:端口号"
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
2)编译过程中可能会遇到jetty、common-el等找不到master配置的情况,找到hadoop-1.1.2文件夹下的ivy.xml
把jetty->master都替换为jetty->default,把common-master都替换为common->default
3)可能在/root/.ivy2/local/下找不到一些jar,然后通过一些地址去下载,地址又是失效的
自己手动去下载那些jar,放入指定文件夹下即可
最终编译成功
6、编译hadoop-eclipse插件
进入hadoop-1.1.2/src/contrib/eclipse-plugin/文件夹下,执行
#ant -Declipse.home=/path/to/eclipse -Dversion=1.1.2
其中-Declipse.home是eclipse的安装目录,-Dversion=1.1.2是hadoop的版本号
编译成功后会在hadoop-1.1.2/bulid/contrib/下生成一个名为hadoop-eclipse-plugin-1.1.2.jar的eclipse插件,
拷贝到Declipse.home/plugins/下,重启eclipse
windows->show view->other->mapreduce tools->map/reduce locations
点击蓝色的大象,新建一个mapreduce连接,设置如下图
9000是之前在core-site.xml中设置的dfs端口号
9001是之前在mapred-site.xml中设置的mapred的端口号
确认完成后可以在project explorer界面看到如下图:
通过右键添加、删除文件夹和文件,上传、下载文件,比使用命令行put和get方便多了吧~
编译过程中可能也会遇到一些问题,也可以直接用别人已经编译好的hadoop-eclipse插件
7、新建一个mapred工程
1)new->project,这里可以选择mapred project,如下图
2)执行next,配置hadoop工程位置,和新建工程位置
如上图,configure hadoop install directory选择hadoop-1.1.2工程位置,点击OK即可
3)把WordCount.java那个文件拷过来,配置run configuration如下图
参数写“/test/input/a.txt /test/output/test4”,其中/test/input/a.txt为hdfs上的文件,作为输入文件,/test/output/test4作为输出文件夹,确保test4当前不存在
然后右击WordCount.java,run on hadoop->choose an existing server from the list below->finish
可以在console界面看到调试信息,然后选中hdfs的output文件夹按F5进行刷新,可以看到如下:
8、远程调试hadoop程序
调试新建的mapred应用程序不需多说,和调试一般程序一样,现在介绍如何调试mapred程序,比如jobtracker
如果hadoop服务在远程机器上,确保本地代码和远程的是一致的
1)在hadoop-1.1.2目录下使用命令行执行如下语句,表示使用调试模式监听JobTracker
#export HADOOP_JOBTRACKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9876,server=y,suspend=y"
2)然后启动hadoop
#bin/start-all.sh
会看到信息:Listening for transport dt_socket at address: 9876
3)新建一个debug配置如下图
如上图所示,选择Remote Java Application,Project选择hadoop-1.1.2的项目,连接属性填写远端地址和端口。
因为这里使用的是单机环境,地址填了localhost,如果是远端服务器,填写远端服务器IP或hostname,然后端口填写之前设置的监听端口
4)设置断点,启动debug,在命令行执行mapred程序,就可以进入断点进行调试,mapred命令可以使用如下:
#bin/hadoop jar hadoop-examples-1.1.2.jar wordcount /test/input/a.txt /test/output/test2
5) 因为是在命令行执行export,想退出调试模式,把终端关闭再启一个就行了,非常方便
相关文章推荐
- 使用eclipse进行调试嵌入式Linux程序
- 使用eclipse开发hadoop程序时,如何连接远程linux
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- Eclipse下使用Hadoop单机模式调试MapReduce程序
- Linux下用Eclipse开发调试Hadoop程序后打jar包后,到Hadoop集群上运行
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- linux(Ubuntu)下安装Eclipse 使用CDT调试C/C++程序
- Eclipse下使用Hadoop单机模式调试MapReduce程序
- Eclipse下使用Hadoop单机模式调试MapReduce程序
- Linux下用Eclipse开发调试Hadoop程序后打jar包后,到Hadoop集群上运行
- 使用Windows上Eclipse远程调试Linux上的Hadoop
- Eclipse开发调试ARM裸机程序(三)C语言LED_LINUX使用DNW
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- Eclipse中使用Hadoop伪分布模式开发配置及简单程序示例(Linux下)
- 使用 Linux 的 strace 命令跟踪/调试程序的常用选项
- 使用Eclipse调试J2ME程序
- 使用 Eclipse 调试 Java 程序的 10 个技巧
- 使用Eclipse调试J2ME程序
- Linux下使用手机调试程序