转载请注明出处:http://hanlaiming.freetzi.com/?p=115
hadoop1.2.1环境安装完成后,准备着手开发Mapreduce程序,但是总在文本里编辑java代码肯定不是回事,所以开始安装eclipse插件。
我在安装前参考了这篇博文http://blog.csdn.net/summerdg/article/details/12874841,在此谢谢博主了。
下面是我的安装步骤:
1,准备好安装版本
ubuntu12.04 hadoop1.2.1 eclipse4.2Juno
2,打开eclipse,File——Import——Existing Projects into Workspace,选择hadoop安装目录下/src/contrib/eclipse-plugin,点击Finish。这时eclipse导入了一个MapReduceTools的工程,下面进行文件配置。
3,打开MapReduceTools工程里的build.xml文件
找到:<path id=”classpath”>
然后添加
- <fileset dir=”${hadoop.root}/”>
- <include name=”*.jar”/>
- </fileset>
- <copy file=”${hadoop.root}/hadoop-core-${version}.jar” tofile=”${build.dir}/lib/hadoop-core.jar” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-cli-1.2.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-lang-2.4.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-configuration-1.6.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/jackson-core-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-httpclient-3.0.1.jar” todir=”${build.dir}/lib” verbose=”true”/>
4,最终修改后的build.xml文件为:
- ?xml version=”1.0″ encoding=”UTF-8″ standalone=”no”?>
- <!–
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the ”License”); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an ”AS IS” BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- –>
- <project default=”jar” name=”eclipse-plugin”>
- <import file=”../build-contrib.xml”/>
- <path id=”eclipse-sdk-jars”>
- <fileset dir=”${eclipse.home}/plugins/”>
- <include name=”org.eclipse.ui*.jar”/>
- <include name=”org.eclipse.jdt*.jar”/>
- <include name=”org.eclipse.core*.jar”/>
- <include name=”org.eclipse.equinox*.jar”/>
- <include name=”org.eclipse.debug*.jar”/>
- <include name=”org.eclipse.osgi*.jar”/>
- <include name=”org.eclipse.swt*.jar”/>
- <include name=”org.eclipse.jface*.jar”/>
- <include name=”org.eclipse.team.cvs.ssh2*.jar”/>
- <include name=”com.jcraft.jsch*.jar”/>
- </fileset>
- </path>
- <!– Override classpath to include Eclipse SDK jars –>
- <path id=”classpath”>
- <pathelement location=”${build.classes}”/>
- <pathelement location=”${hadoop.root}/build/classes”/>
- <path refid=”eclipse-sdk-jars”/>
- <fileset dir=”${hadoop.root}/”>
- <include name=”*.jar”/>
- </fileset>
- </path>
- <!– Skip building if eclipse.home is unset. –>
- <target name=”check-contrib” unless=”eclipse.home”>
- <property name=”skip.contrib” value=”yes”/>
- <echo message=”eclipse.home unset: skipping eclipse plugin”/>
- </target>
- <target name=”compile” depends=”init, ivy-retrieve-common” unless=”skip.contrib”>
- <echo message=”contrib: ${name}”/>
- <javac
- encoding=”${build.encoding}”
- srcdir=”${src.dir}”
- includes=”**/*.java”
- destdir=”${build.classes}”
- debug=”${javac.debug}”
- deprecation=”${javac.deprecation}”>
- <classpath refid=”classpath”/>
- </javac>
- </target>
- <!– Override jar target to specify manifest –>
- <target name=”jar” depends=”compile” unless=”skip.contrib”>
- <mkdir dir=”${build.dir}/lib”/>
- <!– <copy file=”${hadoop.root}/build/hadoop-core-${version}.jar” tofile=”${build.dir}/lib/hadoop-core.jar” verbose=”true”/>
- <copy file=”${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar” todir=”${build.dir}/lib” verbose=”true”/>–>
- <copy file=”${hadoop.root}/hadoop-core-${version}.jar” tofile=”${build.dir}/lib/hadoop-core.jar” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-cli-1.2.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-lang-2.4.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-configuration-1.6.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/jackson-core-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <copy file=”${hadoop.root}/lib/commons-httpclient-3.0.1.jar” todir=”${build.dir}/lib” verbose=”true”/>
- <jar
- jarfile=”${build.dir}/hadoop-${name}-${version}.jar”
- manifest=”${root}/META-INF/MANIFEST.MF”>
- <fileset dir=”${build.dir}” includes=”classes/ lib/”/>
- <fileset dir=”${root}” includes=”resources/ plugin.xml”/>
- </jar>
- </target>
- </project>
5,修改build-contrib.xml文件
添加如下路径
- <property name=”version” value=”1.2.1″/>
- <property name=”ivy.version” value=”2.1.0″/>
- <property name=”eclipse.home” location=”/home/summerdg/eclipse”/>
6,修改META-INF/MANIFEST.MF文件
最终文件为:
- Manifest-Version: 1.0
- Bundle-ManifestVersion: 2
- Bundle-Name: MapReduce Tools for Eclipse
- Bundle-SymbolicName: org.apache.hadoop.eclipse;singleton:=true
- Bundle-Version: 0.18
- Bundle-Activator: org.apache.hadoop.eclipse.Activator
- Bundle-Localization: plugin
- Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.jdt.launching,
- org.eclipse.debug.core,
- org.eclipse.jdt,
- org.eclipse.jdt.core,
- org.eclipse.core.resources,
- org.eclipse.ui.ide,
- org.eclipse.jdt.ui,
- org.eclipse.debug.ui,
- org.eclipse.jdt.debug.ui,
- org.eclipse.core.expressions,
- org.eclipse.ui.cheatsheets,
- org.eclipse.ui.console,
- org.eclipse.ui.navigator,
- org.eclipse.core.filesystem,
- org.apache.commons.logging
- Eclipse-LazyStart: true
- Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/jackson-core-asl-1.8.8.jar ,lib/jackson-mapper-asl-1.8.8.jar, lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar, lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar
- Bundle-Vendor: Apache Hadoop
7,保存完毕后,开始编译我们自己的插件。右击MapReduceTools工程,选择Properties,选择Builders,点击右侧的New,命名为Plugin_Builder,选择Ant Builder,BuildFile选择MapReduceTools里的build.xml文件,然后点击确定。
8,开始编译。点击eclipse的Project选项,选择Build Project,然后编译成功。编译后的jar文件放在hadoop安装目录下的build文件夹里,contrib下,有个hadoop-eclipse-1.2.1.jar文件,将其赋值到eclipse下的plugin里。
Ps.我在这里遇到了一个问题,有一个警告,说是无法复制hadoop目录下的hadoop-core-${version}.jar文件,我暂时没解决,但是好像没什么影响,只是生成的jar文件是hadoop-eclipse-${version}.jar文件,如果有其他人遇到并且解决了,麻烦告诉我一下,我的解决方法是将名字改正确然后复制过去的,发现也可以用。
9.打开eclipse,打开Window——Preferences,选择左侧的Hadoop Map/Reduce,然后指定自己安装的hadoop目录,点击确定。再打开Window——Open Perspective——other,选择MapReduce蓝色的小象,此时下方出现MapReduce Location,右键单击New Hadoop Location,开始配置hadoop变量。
10,进入New Hadoop location后,定义你的location name,然后选择和你的hadoop目录下core-site.xml文件一致的主机名和端口,并在Advanced parameters里找到两个重要的参数,
修改 hadoop.tmp.dir 为你 hadoop 集群中设置的目录
修改 dfs.replication 为你 hdfs-site.xml 文件中配置的值
然后确定。此时确保你的hadoop服务已经开启,接下来就可以在左侧的DFS Location下找到你hadoop环境下的目录,以后如果编译程序也会很方便。
至此,hadoop-eclipse-1.2.1.jar安装完成。