今天经大侠指点终于算是完成了这一部分,算是去了我心里一块石头,不会做之前觉得很难,但是出来之后就觉得不是多难的,只是不知道步骤而已,趁还没到吃饭时间,先记录这一过程,以后免得忘记。
以下针对Hadoop1而言,首先程序得现在Eclipse中运行通过,然后在myeclipse中创建一个project ,然后将代码写到工程中,这个和在Eclipse中是一样的。
第一步:在myeclipse中需要做的就是指定jobtracker和namenode,用以下代码,举例如下:
Configuration conf = new Configuration(),
conf.set("mapred.job.tracker", "10.10.166.103:9001"); //IP是jobtracker的IP
conf.set("fs.default.name", "10.10.166.103:9000");//IP是namenode的IP
第二块就是将这个工程打包,具体做法是:右击项目或者工程,export,,jar文件,然后resource和class都打勾,jar文件名是setjarbyclass中的名字,将jar文件保存到Hadoop_home/lib中,然后修改jar文件的权限和所属用户,权限改成777,,然后将这个jar包分发到每一个节点的hadoop_home/lib中。这一步是必须的,然后重启hadoop集群。这下就可以在myeclipse中运行了。
这下全部设置就完成了,剩下的就是排错了。其中遇到有两个大的问题,第一个就是权限问题,在上一篇blog中写过,第二个就是classnotfound的异常,这个错误可以说在上面的配置中已经解决了,就是将工程用export打包,然后改权限,发给其他的节点,重启集群。这样就可完成了,期间出现的WARN:不能加载本地包,这个不用管。
这下就可实现myeclipse调用MapReduce的程序了.