Idea是java的IDE,编写了相应的hadoop的代码,那么怎么在上面调试呢?具体可以有两个方法:
1、把相应的代码打包成jar,通过上传的方式传到服务器上,之后通过hadoop -jar的方式执行相应的代码;
(PS:个人觉得这种方法是比较高大上,但是对于目前自学的人来说机器资源是限制这个方法的主要原因)
2、在idea中模拟集群的开发环境,配置相应的参数对其进行处理,这个过程主要是节省了在集群上配置的复杂过程,亲测有效,可以很好的提升对代码的理解
(PS:本文介绍的就是如何使用这个方法执行hadoop的wordcount的过程)
正所谓有图有真相,废话不多说上图吧!
创建项目
1.先新建一个工程:File->New->Project;
2.选择Maven工程,配置相应的Project SDK,之后选择Next,跳转到下一个页面;
3.在新的界面中填写相关信息:
这里面的groupid,artifactid和version是代表项目的三维坐标 , 点击Next之后自动跳出创建完成的提示框,选择finish之后,项目创建完毕
GroupId:代表的是你创建项目的包名;
ArtifactId: 代表的是你创建项目的项目名;
Version:代表代码的版本;
进行环境配置
1.首先在hadoop官网上下载hadoop到本地,不需要下载别的内容,只需要下载hadoop的包即可;
hadoop-2.7.4.tar.gz的包即可;PS:官网的地址这里就不在描述了,不知道的上网google下就可以了;
2.按照目录结构创建相应的类文件,写入相应的代码;
3.可能这个时候会报错,不着急,我们慢慢来解决;
接下来打开project structure,在左侧找到modules,点击加号后,选择JARs or directories..选项导入相应的hadoop的jar;
4.将刚才下载的hadoop目录下的share文件夹中的相应目录添加进来;
5.点击左侧的artifacts,添加一个空jar;
点击相应的加号,选择module output,然后勾选我们的项目,点击确定;
以上过程执行完毕之后代码中的错误提示会消除,这样相关依赖的配置就完成
配置执行选项
1.选择项目的run->edit configurations配置启动参数;如果没有application的话则需要添加;
、
2.配置启动参数
Name:application的名字;
Main class:执行主类的名字;
Program arguments:程序启动参数,配置数据的输入目录和输出目录
(ps:其他部分可以保持不变)
Question
1.开始执行的时候可能会出现错误提示:
解决办法:
在导入hadoop的share的目录下的时候注意是全部倒入才可以,重新导入即可;
2.执行时报错缺少jar:
以上错误重新导入下common/lib包即可;
3.output的输出目录无法创建:
这个错误是配置输出路径的时候,output路径多写了一个“/”导致的。
成功输出
PS
本人才疏学浅,如有不合理之处还望指教!谢谢大家!