Eclipse搭建hadoop开发环境
前面已经搭建了一个伪分布模式的Hadoop运行环境。绝大多数同学都习惯在Eclipse中做Java开发,本片主要讲的是如何搭建一个基于Eclipse IDE的Hadoop开发环境。
闲话少说,走起!
一、JDK安装配置
(一)为什么要安装JDK
由于Eclipse 是基于 Java 开发的一个可扩展的开发平台,所以在安装 Eclipse 前需要确保你的电脑已经成功安装了JDK。
(二)如何安装配置JDK
1、下载并解压JDK
首先需要注意的是下载的jdk的位数需要与Windows系统位数一致,课程中我们使用的是64位Windows系统,所以我们需要下载安装64位的jdk。
jdk的下载、安装还是比较简单的,所以这里就不再多讲,相信大家参照本任务视频内容可以轻松搞定。下面我们重点来配置JDK的环境变量。
2、配置JDK的环境变量
(1)点击“计算机”,然后“右键”——“属性”——“高级系统设置”——“环境变量”;
(2)配置系统变量JAVA_HOME,即配置JDK的安装目录。
(3)配置系统变量Path,即配置JDK安装目录的bin目录。
3、验证JDK是否安装成功
java -version
二、安装部署Eclipse开发环境
(一)下载Eclipse
大家可以通过官网下载对应版本的Eclipse,也可以直接点击下载获取Eclipse的安装包。
(二)安装Eclipse
(1)双击Eclipse安装包,然后选择“Java Developers”,满足基本的java开发即可。
(2)在界面选择Eclipse的安装路径,然后点击“INSTALL”即可。
(3)在界面点击“LAUNCH”,然后就正式开始安装。
(4)在如下界面选择项目的工作空间,可以使用默认的路径和工作空间,也可以选择其他工作空间。勾选“Use this as the default and do not ask again”,然后点击“OK”即可。
(三)创建java项目,验证Eclipse开发环境是否部署成功
(1)创建一个HelloWorld的项目。
(2)在项目下创建一个包com.dajiangtai.java。
(3)在包中创建一个类HelloWorld。
(4)在类中编写代码并运行,如果能正确输出结果则表明Eclipse开发环境已经搭建成功,接下来开发者就可以正常开发普通的java项目了。
三、构建MapReduce项目
在创建项目的时候,我们发现不能直接通过勾选MapReduce项目来创建MapReduce项目,因为没有对应的选择,这里有两种解决方法:
方法一:通过构建普通的java项目,然后导入MapReduce相关的依赖包即可,但是需要导入哪些包,怎么导入呢?这样操作就有点麻烦了。
方法二:通过安装对应版本的Hadoop-Eclipse插件,即可显示对应的MapReduce项目选项。然后就可以像创建普通的java项目一样创建MapReduce项目了。
这里我们重点介绍方法二的实现。
(一)Hadoop-Eclipse插件的安装配置
(1)点击下载对应版本的Hadoop-Eclipse插件
(2)将插件放到Eclipse安装目录下的dropins目录中
(3)然后重启Eclipse
(4)创建MapReduce项目
如果插件安装成功,那么在新建项目选择时就会显示MapReduce项目。如下图所示:
(5)创建一个WordCount的项目,然后配置Hadoop安装目录。因为Hadoop-Eclipse插件一边连接着Eclipse,另一边连接着Hadoop,所以还要在Eclipse中对Hadoop进行相关的配置。
(6)配置Hadoop安装目录。
需要把下载到本地的hadoop安装包解压(就是提前下载到本地,上传到Linux虚拟机上的Hadoop安装包,因为Hadoop安装包是不分Linux或windows操作系统的)。然后配置Hadoop安装路径即可。然后点击“Apply”和“OK”。
注意:指定路径指定的是hadoop解压之后的那个文件夹的位置。而不是其他。
(7)在跳转的如下界面中点击“Finish”即可。
(8)在跳转的如下界面中点击“Yes”即可。
(二)Hadoop-Eclipse插件的作用
Hadoop-Eclipse插件安装完成之后,更能直观的感受到插件安装前后的区别,这也是为什么把插件的作用放在插件安装之后解释的一个原因。
(1)在Eclipse中显示DFS Locations
如果以上配置都成功之后,那么在Project Explorer就会多了一个DFS Locations.窗口。这是安装Hadoop-Eclipse的第一个作用。DFS Locations的作用是在Eclipse中显示HDFS文件系统的列表,但是由于还需要启动Hadoop集群,并进行相关连接的配置,比较麻烦且容易出错,且实际工作中也不使用。所以这里暂时可不用处理。
如果想尝试配置可参考“Eclipse中配置DFS Locations”对应的文档。
(2)项目自动导入MapReduce相关的依赖包
安装完Hadoop-Eclipse插件之后,创建的MapReduce项目会自动导入hadoop相关的依赖包,而无需手动创建。(大家可以和创建的java项目引入的包做个对比)
(三)创建一个WordCount类,验证Eclipse是否可以成功开发MapReduce项目
(1)WordCount代码可以直接从官网上下载
http://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Example:_WordCount_v1.0
(2)准备输入数据源(自己可以创建一个文件,然后随便写几条数据),并指定输入输出路径。
注意:一定要保证输入路径存在且正确,输出路径不能提前存在,否则代码运行将会报对应的错误,然后运行代码。(具体操作可参照本任务对应的视频内容)
(3)代码运行常见错误及解决方法
1)报log4j问题
只需要在src中导入log4j文件即可,下载log4j文件。
2)然后再运行报如下错误:
错误原因:hadoop环境变量没有配置或配置有问。
解决办法:只需要配置并检查HADOOP_HOME和Path变量即可。如下所示:
3)重启Eclipse,重新运行之后又报如下错误:
错误原因:本地Hadoop运行目录的bin目录下中没有winutils.exe或者32位/64位版本不匹配
解决办法:下载相应的winutils.exe和hadoop.dll放到Hadoop运行目录的bin文件夹下,注意选择正确的32位/64位版本把对应版本的那两个文件放到hadoop安装目录的bin目录下即可。
可点击下载和Hadoop2.6.0对应的64位的winutils.exe和hadoop.dll,在下载的包的子目录下即可找到winutils.exe和hadoop.dll这两个文件。
然后重新Eclipse并运行WordCount,发现就没有问题了。(包括前边报的空指针异常也一并解决了);
4)有时候还会出现一些其他问题:
解决方法:把winutils.exe和hadoop.dll这两个文件上传到C:\Windows\System32目录下,重新运行代码即可。
到此为止,Eclipse开发MapReduce项目就部署成功,接下来,大家就可以尽情的在Eclipse中开发MapReduce项目了。
其它可能出现的问题:
1、错误:出现DFS列表无法正常显示的问题该怎么办?且报如下错误:
解决方法:
1)可能是因为Hadoop集群(hdfs)没有启动或没有启动成功导致的
2)dfs权限:在配置文件中设置成false,或该属性配置有拼写错误
3)HDFS离开安全模式:hadoop dfsadmin -safemode leave
4)检查防火墙是否关闭
2、错误:在搭建eclipse/Myeclipse过程中出现下面问题该如何解决?
解决方法:
1)点击Window——Open Perspective——Other..
2)然后在弹出的对话框里选择Map/Reduce,点击OK即可。
3、错误:连接不到hdfs文件系统上,报如下错误:
解决方法:
把下图的主机名改成对应的IP地址即可;
这样就可以连接到DFS文件系统了;
4、错误:安装完hadoop-eclipse插件之后报如下错误
解决方法:
1)如果出现这种情况,把jdk换成1.8就可以了。Jdk1.8 对应52,Jdk1.7 对应51
2)最好把Java安装路径放在path路径最前面
3)路径最好不要有中文。
5、错误:出现下面问题,报NullPointerException异常?
解决方法:
可能是因为Hadoop相关jar包没有导入到项目或者jar包没导全
那么怎么导入jar包?导入哪些jar包呢?如下所示:
点击项目右键——Build Path——Configure Build Path——进入如下界面
然后选择你本地hadoop安装目录下的share目录下的hadoop目录下,如下图,然后把这4个文件夹下的jar包导入即可。
五、如果还有问题怎么办?
我们可以通过以下步骤来排查:
1)首先确保Windows下,系统位数、jdk位数、hadoop安装包位数保持一致,否则肯定会报错。 比如,64位的Windows系统,需要安装64位的jdk以及下载64位的hadoop安装包(课程中有下载)。
如果不知道hadoop位数是否正确,可以双击下面的文件。
如果不出错,说明文件没有问题。如果hadoop的bin目录下没有hadoop.dll、winutils.exe这两个文件,在课程中下载。
2)确保jdk以及hadoop的环境变量配置正确(前面已经讲解)
3)确保Linux下的防火墙已经关闭。
4)如果出现Myeclipse访问不了hdfs,可以按照上面第5个问题的解决办法。
5)检查C:\Windows\System32目录下是否存在hadoop.dll和winutils.exe文件。
6)如果以上方法还是有错误,可能是系统或者Myeclipse版本的原因造成的,最糟糕的情况可能需要换一个干净的Windows系统了。
童鞋们,是不是已经搞定了,让我们一起Hadoop吧!!!
如有疑问欢迎留言 共同探讨~~
- 点赞
- 收藏
- 关注作者
评论(0)