Eclipse搭建hadoop开发环境

举报
Smy1121 发表于 2019/06/20 11:03:23 2019/06/20
【摘要】 前面已经搭建了一个伪分布模式的Hadoop运行环境。绝大多数同学都习惯在Eclipse中做Java开发,本片主要讲的是如何搭建一个基于Eclipse IDE的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项目。如下图所示:

image.png

(5)创建一个WordCount的项目,然后配置Hadoop安装目录。因为Hadoop-Eclipse插件一边连接着Eclipse,另一边连接着Hadoop,所以还要在Eclipse中对Hadoop进行相关的配置。

image.png

(6)配置Hadoop安装目录。

    需要把下载到本地的hadoop安装包解压(就是提前下载到本地,上传到Linux虚拟机上的Hadoop安装包,因为Hadoop安装包是不分Linux或windows操作系统的)。然后配置Hadoop安装路径即可。然后点击“Apply”和“OK”。


    注意:指定路径指定的是hadoop解压之后的那个文件夹的位置。而不是其他。

image.png

(7)在跳转的如下界面中点击“Finish”即可。

image.png

(8)在跳转的如下界面中点击“Yes”即可。

image.png


(二)Hadoop-Eclipse插件的作用

     Hadoop-Eclipse插件安装完成之后,更能直观的感受到插件安装前后的区别,这也是为什么把插件的作用放在插件安装之后解释的一个原因。


    (1)在Eclipse中显示DFS Locations

            如果以上配置都成功之后,那么在Project Explorer就会多了一个DFS Locations.窗口。这是安装Hadoop-Eclipse的第一个作用。DFS Locations的作用是在Eclipse中显示HDFS文件系统的列表,但是由于还需要启动Hadoop集群,并进行相关连接的配置,比较麻烦且容易出错,且实际工作中也不使用。所以这里暂时可不用处理。


    如果想尝试配置可参考“Eclipse中配置DFS Locations”对应的文档。

image.png

  (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)然后再运行报如下错误:

image.png

    错误原因:hadoop环境变量没有配置或配置有问。


    解决办法:只需要配置并检查HADOOP_HOME和Path变量即可。如下所示:

image.png


3)重启Eclipse,重新运行之后又报如下错误:

image.png

    错误原因:本地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)有时候还会出现一些其他问题:

image.png

解决方法:把winutils.exe和hadoop.dll这两个文件上传到C:\Windows\System32目录下,重新运行代码即可。


    到此为止,Eclipse开发MapReduce项目就部署成功,接下来,大家就可以尽情的在Eclipse中开发MapReduce项目了。


其它可能出现的问题:

1、错误:出现DFS列表无法正常显示的问题该怎么办?且报如下错误:

image.png

解决方法:


1)可能是因为Hadoop集群(hdfs)没有启动或没有启动成功导致的


2)dfs权限:在配置文件中设置成false,或该属性配置有拼写错误


3)HDFS离开安全模式:hadoop dfsadmin -safemode leave


4)检查防火墙是否关闭



2、错误:在搭建eclipse/Myeclipse过程中出现下面问题该如何解决?

image.png

解决方法:

1)点击Window——Open Perspective——Other..

2)然后在弹出的对话框里选择Map/Reduce,点击OK即可。

image.png

3、错误:连接不到hdfs文件系统上,报如下错误:

image.png

解决方法:

把下图的主机名改成对应的IP地址即可;


image.png

这样就可以连接到DFS文件系统了;


4、错误:安装完hadoop-eclipse插件之后报如下错误

image.png

解决方法:

1)如果出现这种情况,把jdk换成1.8就可以了。Jdk1.8 对应52,Jdk1.7 对应51

2)最好把Java安装路径放在path路径最前面

3)路径最好不要有中文。


5、错误:出现下面问题,报NullPointerException异常?

image.png

解决方法:

可能是因为Hadoop相关jar包没有导入到项目或者jar包没导全

那么怎么导入jar包?导入哪些jar包呢?如下所示:


点击项目右键——Build Path——Configure Build Path——进入如下界面

image.png

然后选择你本地hadoop安装目录下的share目录下的hadoop目录下,如下图,然后把这4个文件夹下的jar包导入即可。

image.png


五、如果还有问题怎么办?

      我们可以通过以下步骤来排查:

      1)首先确保Windows下,系统位数、jdk位数、hadoop安装包位数保持一致,否则肯定会报错。 比如,64位的Windows系统,需要安装64位的jdk以及下载64位的hadoop安装包(课程中有下载)。


如果不知道hadoop位数是否正确,可以双击下面的文件。

image.png


如果不出错,说明文件没有问题。如果hadoop的bin目录下没有hadoop.dll、winutils.exe这两个文件,在课程中下载。


2)确保jdk以及hadoop的环境变量配置正确(前面已经讲解)

3)确保Linux下的防火墙已经关闭。

image.png

4)如果出现Myeclipse访问不了hdfs,可以按照上面第5个问题的解决办法。

5)检查C:\Windows\System32目录下是否存在hadoop.dll和winutils.exe文件。

6)如果以上方法还是有错误,可能是系统或者Myeclipse版本的原因造成的,最糟糕的情况可能需要换一个干净的Windows系统了。


童鞋们,是不是已经搞定了,让我们一起Hadoop吧!!!


如有疑问欢迎留言 共同探讨~~



【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。