首先,在windows下使用eclipse来搭建开发环境是非常麻烦的。安装插件后,会出现各种各样的问题。

建议在Ubuntu下配置eclipse开发环境。

前提:hadoop已经运行。当前windows用户名为hadoop。

不使用hadoop用户名,eclipse运行程序的时候会有一些路径问题。

右键计算机-》管理-》本地用户和组


名称和全名要相同

1、下载eclipse

https://eclipse.org/downloads/

使用for java Developer就可以。

2、安装java

https://java.com/zh_CN/download/

我下载的java是1.7的,hadoop是2.7.1。java版本和安装的hadoop相对应。

下载安装后,需要配置环境变量JAVA_HOME

3、下载hadoop插件,

https://github.com/winghc/hadoop2x-eclipse-plugin

将hadoop-eclipse-plugin-2.6.0.jar放入eclipse的plugins目录。

(找了一个hadoop-eclipse-plugin-2.7.1.jar无法使用,导入eclipse之后看不到DFS Location,而且无法看到下图)

切换到eclipse安装目录,eclipse.exe -clean


自动打开eclipse之后,如果你的电脑和hadoop集群在同一个网段,就可以看到DFS Location。该目录需要手动刷新。


4、没有下载hadoop-2.7.1,需要下载到本地并解压

http://mirror.bit.edu.cn/apache/hadoop/common/

5、如果没有DFS Location,配置Windows下的preference后就会出现了。Hadoop installation directory是本地下载的目录hadoop2.7.1


6、在window-》show views中打开map reduce location


7、然后就会出现Map/Reduce Location标签

在空白处,右键新建一个蓝色大象



因为我的Hadoop Master安装在192.168.50.60,所以Host填写这个ip地址

Map/Reduce(V2)Master端口号是9001

因为如下配置:

mapred-site.xml

<configuration> 
  
		<property> 
      	<name>mapreduce.job.tracker</name> 
        	<value>hdfs://master:9001</value> 
        	<final>true</final> 
       </property> 
  
  
       <property> 
               <name>mapreduce.framework.name</name> 
               <value>yarn</value> 
       </property> 
       <property> 
               <name>mapreduce.jobhistory.address</name> 
               <value>Master:10020</value> 
       </property> 
       <property> 
               <name>mapreduce.jobhistory.webapp.address</name> 
               <value>Master:19888</value> 
        </property> 
  
</configuration> 


DFS Master 端口号看如下配置:

coresite.xml

<configuration> 
   <property> 
       <name>hadoop.tmp.dir</name> 
       <value>file:/usr/local/hadoop/tmp</value> 
       <description>Abase for other temporary directories.</description> 
   </property> 
   <property> 
       <name>fs.defaultFS</name> 
       <value>hdfs://Master:9000</value> 
   </property> 
</configuration> 

高级参数需要修改一个目录:这个目录要和你自己的coresite.xml中目录配置相同


确认后,就可以看到Master那台机器HDFS的文件了


9、新建一个map reduce project


配置hadoop环境变量

HADOOP_HOME=D:\hdp\hadoop-2.7.1

HADOOP_BIN_PATH=%HADOOP_HOME%\bin

HADOOP_PREFIX=D:\hdp\hadoop-2.7.1

PATH变量在最后追加;%HADOOP_HOME%\bin


下载windows平台的hadoop2.7.1插件包(hadoop.dll,winutils.exe)

http://download.csdn.net/detail/n1007530194/9221605

将winutils.exe复制到$HADOOP_HOME\bin目录,

将hadoop.dll复制到%windir%\system32目录

配置完系统环境变量,需要重启计算机。

新建一个项目后,需要再新建一个class文件,WordCount.java

包名为package org.apache.hadoop.examples;

WordCount测试代码:


10、运行程序前,需要将修改过的文件复制到项目中


如果使用SecureCRT,可以直接sz core-site.xml hdfs-site.xml log4j.properties mapred-site.xml yarn-site.xml

下载目录在会话选项


提交运行:

Run Configuration

设置参数目录。

运行前需要删除output目录。


可能出现的问题

1、An internal error occurred during Connecting to DFS

原因:2.7.1jar包有问题,导入插件后无法看到hdfs目录。

eclipse导入插件hadoop 2.7.1 看不到DFS Locations

更换为2.6 的eclipse 插件后就可以看到hdfs文件目录了

记得需要eclipse.exe -clean 刷新一下

2、Exception message:/bin/bash:第0行fg:无任务控制

windows下的eclipse提交给集群服务器出现的问题,需要在代码中添加

 conf.set(“mapreduce.app-submission.cross-platform”, “true”);

3、提示无法解析Master

需要在C:\Windows\System32\drivers\etc目录下添加host,每重启该文件都会重写


右键获得管理员权限后,编辑


org.apache.hadoop.security.AccessControlException: Permissiondenied: user=chris, access=WRITE,inode=”/user/chris/output”:chris:supergroup:drwxr-xr-x

我们在执行运行WordCount.java代码时,出现这样的问题


分析:

我们没权限访问output目录。

解决:

我们 在设置hdfs配置的目录是在hdfs-site.xml配置hdfs文件存放的地方

我们在这个etc/hadoop下的hdfs-site.xml添加

设置false,不过我们在正式的 服务器上不能这样设置。

false的意思是不进行权限检查

然后开始提示无法找到目录

/user/chris/input”:chris:supergroup:drwxr-xr-x

因为Master的hdfs输入目录是user/hadoop/input

所以我改了计算机的用户名,并将提示没有权限的目录全部设置为777

最终运行成功:


参考:

http://my.oschina.net/muou/blog/408543?fromerr=OAJJmgA5

http://www.powerxing.com/hadoop-build-project-using-eclipse/

http://dawxy.com/article/windows-eclipse%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95hadoop-2-7-1%E9%85%8D%E7%BD%AE/

http://www.ithao123.cn/content-10617910.html

http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.html

http://www.ithao123.cn/content-10682637.html

 
 



分类: Hadoop

发表评论

电子邮件地址不会被公开。 必填项已用*标注