对于Hadoop和Spark的开发,最常用的还是Eclipse以及Intellij IDEA. 其中,Eclipse是免费开源的,基于Eclipse集成更多框架配置的还有MyEclipse。Intellij分为Community版和Ultimate版,前者免费,后者付费。付费版同样是集成了更多的框架便于开发,主要是针对web开发人员。这里我们讲述两个IDE的配置方法,并推荐使用Intellij完成配置。首先需要明确的是,本文的配置是基于Java语言,基于Scala语言配置Spark开发环境在Intellij下是相似且简单的,这里略过不提。
1. Eclipse下配置Hadoop及Spark开发环境
1.1 配置Hadoop开发环境
在Eclipse下配置开发环境有三种方案。均亲测有效。
方案一:基于普通的Java项目
第一步,将插件hadoop-eclipse-plugin-2.6.0.jar放在eclispe的plugins目录下,启动eclipse后,新建普通Java项目,在项目中引入两个依赖包:hadoop-common-2.6.2.jar,hadoop-core-0.20.205.0.jar;
此处提供下载:链接:http://pan.baidu.com/s/1i4XOQsl 密码:gjqg
第二步,在Preferences 中配置Hadoop的安装地址,运行项目时程序能够自动加载Hadoop安装目录下的jar包,至此配置完成。
这种方案在运行时需要选择“Run on Hadoop”选项运行,hadoop-eclipse-plugin-2.6.0.jar插件将会根据第二步中配置的Hadoop路径寻找jar包,因此最终打包后的jar包也最小,最小是6MB左右。打包后的jar包当然也需要使用hadoop jar命令执行,不支持java -jar命令执行。
方案二:基于Map Reduce项目
第一步,将插件hadoop-eclipse-plugin-2.6.0.jar放在eclispe的plugins目录下,启动eclipse后,新建Project,选择Map Reduce Project建立新项目;
第二步,在Preferences 中配置Hadoop的安装地址,运行项目时程序能够自动加载Hadoop安装目录下的jar包,至此配置完成。
这种方案下不用配置依赖,因为项目已经按照你装好的Hadoop自动装填依赖的jar包。缺点是最终打包后的jar包比较大,最小也有40MB左右,因为包含着所有的需要的Hadoop jar包。正因如此,打包后的jar包既可以使用hadoop jar命令执行,也支持java -jar命令执行。
方案三:基于Maven构建项目
直接新建Maven项目,在项目根目录的pom.xml中添加基础的Hadoop依赖项,maven将会自动引入依赖。添加后可能如下所示。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>malab</groupId> <artifactId>hadoop</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> <!--这是需要的添加的依赖,按需添加,下面的只是基本配置--> <dependencies> <!--hadoop--> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.6.0</version> </dependency> </dependencies> </project>
添加后,静静等上几分钟(取决于网速),就配置完成了。
1.2 配置Spark开发环境:基于Maven构建项目(官网推荐)
在pom.xml中<dependencies></dependencies>添加依赖项(官网上有说明配置信息:http://spark.apache.org/docs/latest/programming-guide.html):
<dependencies> <!--spark--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.0.2</version> </dependency> <!--ml--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-mllib_2.10</artifactId> <version>2.0.2</version> </dependency> <!--sql--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.10</artifactId> <version>2.0.2</version> </dependency> <!--streaming--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.10</artifactId> <version>2.0.2</version> </dependency> <!--hive--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.10</artifactId> <version>2.0.2</version> </dependency> <!--hadoop--> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.6.0</version> </dependency> </dependencies>
显然,以上配置把所有的spark常用的hadoop用到的jar包依赖都配置了。
2. Intellij下配置Hadoop及Spark开发环境(推荐)
由于Intellij下没有插件直接支持,因此推荐使用Maven构建。
第一步,新建project,选择maven,然后一路下一步,完成后配置pom.xml即可。pom.xml文件配置的<dependencies></dependencies>中的内容与1.2节中一致。
第二步,到此开发环境配置完成。
maven配置下导出的jar包会比较大,因为包含了很多maven配置的依赖。如果你想要小一点的导出结果,删除导出的maven依赖即可。当然,这个不是件特别重要的事。
愿世界和平。