搭建Hadoop的Eclipse开发环境

来源:互联网 发布:金融大数据对股市预测 编辑:程序博客网 时间:2024/05/21 17:06

引语:为了搭建eclipse的hadoop开发环境我尝试了网上的不止一种方法,可是我遇到的情况和网上的问题都不太一样,于是我自己总结了一下安装方法以及用到的软件,因为我的版本是2.6.4所以软件也都统一一致,下面就开始部署环境并运行一个实例。

首先要用到的软件如下:
hadoop-2.6.4.tar.gz
hadoop-2.6.4-src.tar.gz
hadoop2.6-common-bin(x64).zip
apache-ant-1.9.9-bin.zip
hadoop-eclipse-plugin-2.6.4.jar

首先先解压hadoop-2.6.4.tar.gz、hadoop-2.6.4-src.tar.gz、hadoop2.6-common-bin(x64).zip、apache-ant-1.9.9-bin.zip
到磁盘。

首先需要把hadoop-eclipse-plugin-2.6.4.jar放到eclipse中的plugins文件夹下就算是插件安装好了。
之后打开eclipse
这里写图片描述
在首选项mapreduce里面选择好路径指向解压后的hadoop-2.6.4文件夹
并把电脑环境变量新建个HADOOP_HOME指向hadoop-2.6.4文件夹
并把里面的bin路径添加进path中
同样新建个ANT_HOME指向apache-ant-1.9.9文件夹
同样把里面的bin路径添加进path中
注意,这个hadoop-2.6.4文件夹现在还不完美,下面需要让它变得完美
这就需要用到hadoop2.6-common-bin(x64),把里面的文件全部复制到hadoop-2.6.4文件夹的bin中
复制完如图所示

这里写图片描述

接下来需要把里面的hadoop.dll文件复制到C:\Windows\System32里面
之后需要在eclipse中配置一些内容
这里写图片描述
右键
这里写图片描述
配置如下
这里写图片描述

之后应该可以在文档结构中看到linux中的结构了
这里写图片描述

创建示例程序

新建一个WordCount类

打开eclipse,创建一个Map/Reduce Project,并创建一个org.apache.hadoop.examples.WordCount类。

拷贝hadoop-2.6.4-src.tar.gz中hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples下的WordCount.java文件中的内容到新创建的类中。

配置log4j

在src目录下,创建log4j.properties文件

log4j.rootLogger=debug,stdout,Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=mapreduce_test.loglog4j.appender.R.MaxFileSize=1MBlog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%p %t %c - %m%log4j.logger.com.codefutures=DEBUG

至此配置大致完毕了,运行示例程序,目标文件依旧是/wordcount/input里面的文件,为了和之前区分,新建了一个big.txt
运行方式,右键
这里写图片描述
这里写图片描述

运行过程中目前出现过权限问题,如下

Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=Administrator, access=WRITE, inode="/user":root:supergroup:drwxr-xr-x

这是因为当前执行Spark Application的用户没有Hdfs“/user”目录的写入权限。
只要将执行操作的用户添加到supergroup用户组就可以了

如果是linux环境,将执行操作的用户添加到supergroup用户组。

groupadd supergroupusermod -a -G supergroup spry

如果是Windows用户,在hdfs namenode所在机器添加新用户,用户名为执行操作的Windows用户名,然后将此用户添加到supergroup用户组。

adduser Administratorgroupadd supergroupusermod -a -G supergroup Administrator

执行了上面的语句之后程序便可以顺利运行了。

这里写图片描述

这里写图片描述