Hadoop-eclipse-plugin插件安装

学习Hadoop有一段时间了,以前每次的做法都是先在win下用eclipse写好Mapreduce程序,然后打成jar文件,上传到linux下用hadoop集群去运行jar文件。然后这样的话调试起来极其麻烦。

所以想到安装hadoop的eclipse插件,直接在eclipse下调试Mapreduce程序,会节省很多时间。

下面介绍一下hadoop的eclipse插件安装:

首先,下载hadoop-eclipse-plugin插件:我的集群环境是hadoop-1.0.3,所以我下载的插件式hadoop-1.0.3-eclipse-plugin

将hadoop-1.0.3-eclipse-plugin.jar复制到eclipse\plugins下面

重启eclipse

会发现打开open perspective选项卡,点击other,弹出窗口下会多出Mapreduce选项

配置本地Hadoop Install 目录

如下图:

新建一个Hadoop Location

点击 “New Hadoop Location”

会出现以下对话框

根据hadoop环境正确填写General和Advanced parameters内容,点击finish

生效后,就会在左侧导航栏看到以下情景。如下图:

至此,就可以hadoop-eclipse插件配置就已经完成,可以使用eclipse连接至hadoop集群,进行Mapreduce程序开发和调试了。

相关异常信心以及解决办法:

1.

 ERROR security.UserGroupInformation: PriviledgedActionException as: hadoop
cause:java.io.IOException Failed to set permissions of path:\usr\hadoop\tmp\mapred\staging\hadoop753422487\.staging
to 0700 Exception in thread "main" java.io.IOException: Failed to set permissions of path: \usr\hadoop\tmp \mapred\staging\hadoop753422487\.staging to 0700

解决办法:修改主机名与集群用户名一致,或者重新编译core.org.apache.fs.FileUtil类,

修改hadoop源代码,去除权限认证,修改FileUtil.java的checkReturnValue方法,如下:

private static void checkReturnValue(boolean rv, File p,

FsPermission permission

) throws IOException {

// if (!rv) {

// throw new IOException("Failed to set permissions of path: " + p +

// " to " +

// String.format("o", permission.toShort()));

// }

}

2.

org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.
AccessControlException: Permission denied: user=Administrator, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

开放hdfs权限 hadoop fs –chmod 777 /user/MDSS

3. hadoop使用随记Mapreduce

在windows eclipse开发环境提交job到远处linux hadoop集群,运行mapred报错“IOException: Cannot run program "chmod": CreateProcess error=2

原因:安装cygwin,而且需要设置"cygwin\bin"到环境变量PATH中,使用eclipse-plugin提交mapreduce程序,必须在window端安装cygwin,并将cygwin\bin"到环境变量PATH中,否则不行。

如果eclipse-plugin提交任务遇到这个错误:org.apache.hadoop.security.AccessControlException: Permission denied: user=cyg_server, access=EXECUTE, inode="job_201010161322_0003":heipark:supergroup:rwx------

解决:

1、刚开始还使用“./bin/hadoop dfs -chmod 777 ”,后来发现老是这样设置麻烦。可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。注意生产环境处于安全考虑不要这么搞。

2、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为“你的hadoop用户名”,Tardis,这样就不会出现那个错误了

如果运行简单的hadoop mapreduce wordcount程序,点击run on hadoop出现以下错误:

11/08/16 10:31:39 WARN mapred.LocalJobRunner: job_local_0001
java.lang.OutOfMemoryError: Java heap
space
 at
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.(MapTask.java:781)

at
org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:350)

at
org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
 at
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)

11/08/16 10:31:39 INFO mapred.JobClient:  map 0%
reduce 0%
11/08/16 10:31:39 INFO mapred.JobClient:
Job complete: job_local_0001
11/08/16 10:31:39 INFO mapred.JobClient: Counters: 0
Exception in thread "main" java.io.IOException: Job failed!
 at
org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)

at
mapred.WordCount.main(WordCount.java:110)

原因:客户端程序运行时java虚拟机内存分配不够

解决:修改run
configuration(右键要执行的程序,run as >run configurations),弹出窗口中左侧选择要执行的程序,右边选择Arguments选项卡,在VM arguments栏中加入-Xmx1024m,保存后执行没有问题(即将执行时虚拟机内存调大)

Hadoop-eclipse-plugin插件安装的更多相关文章

  1. scala eclipse plugin 插件安装

    最近在看Apache Apollo 代码,其中有很多scala代码,没办法需要安装一个scala插件. 我试过zip 安装,直接下载的update-site.zip 不能直接安装到位.我又特别懒,不想 ...

  2. eclipse maven plugin 插件 安装 和 配置

      离线插件 点击下载离线安装包:eclipse-maven-plugin.zip ( for eclipse helios or higher ) .解压缩到任意目录(如这里的plugins目录): ...

  3. eclipse svn插件安装方法

    eclipse svn插件安装方法 使用dropins安装插件 从Eclipse3.5开始,安装目录下就多了一个dropins目录.只要将插件解压后拖到该目录即可安装插件.比如安装svn插件subcl ...

  4. Eclipse Jetty插件安装

    Eclipse Jetty插件安装 使用方法一: 本地资源包插件下载地址:http://pan.baidu.com/s/1sjNP5Id 或者是地址:http://pan.baidu.com/s/1b ...

  5. Windows平台上使用ANT编译Hadoop Eclipse Plugin

    一.准备工作:   1.安装JDK 下载页面:http://www.oracle.com/technetwork/java/javase/downloads/index.html JDK6,JDK7都 ...

  6. eclipse maven 插件 安装 和 配置

    eclipse 安装插件的方式最常见的有两种: 离线安装,用 link 的方式来安装,这种方式可拔性更好,可以随时将插件插上和拔下,非常方便.  link 离线安装 eclipse maven 插件 ...

  7. eclipse的插件安装

    如何安装:http://my.oschina.net/linjunlong/blog/126961 插件安装方法:eclipse和myeclipse版本不一样,略有区别 在线安装: 第一种:知道在线安 ...

  8. Eclipse Velocity插件安装

    打开eclipse安装velocity插件,这里有两种eclipse velocity的安装 方式一:不推荐的安装(安装会失败) Help>install new software>add ...

  9. IDE eclipse PyDev插件安装

    Python安装成功后,即要配置开发环境,这里选用Eclipse, 在Eclipse中安装PyDev插件,有多种方法,这里介绍最最常用的两种. 1)使用Eclipse安装插件,打开eclipse,进入 ...

  10. Eclipse安卓插件安装

    首先说明下载的ADT专门真安卓开发的Eclipse下载下来后就集成了可以直接使用了 但是使用j2EE版本的Eclipse就需要安装插件支持安卓开发了 首先下载ADT Eclipse安卓插件 下载完成后 ...

随机推荐

  1. 常用sql时间字符转化

    这边主要用到2个函数  convert()  cast() cast是对数据字符类型的转化,例如: cast(date as datetime)   这样就将date字段转化成为时间类型了 因为常用到 ...

  2. 【Qt】Qt之密码框不可选中、复制、粘贴、无右键菜单等【转】

    简述 在做用户登录.修改密码的时候,往往会用到密码框,其中一些功能要求与普通的输入框不同,例如:不能选中.复制.粘贴.无右键菜单等功能,当然设置密码不可见是必须的! 下面介绍两种方式来实现相同的效果. ...

  3. Mongodb Java Driver 参数配置解析

    要正确使用Mongodb Java Driver,MongoClientOptions参数配置对数据库访问的并发性能影响极大. connectionsPerHost:与目标数据库能够建立的最大conn ...

  4. Python开发【第一篇】Python基础之反射

    反射 反射的作用:反射得作用是提高代码可读行. __import__导入模块和import导入模块的区别: __import__导入模块是通过字符串进行导入. import是常用得导入模块方法. 扩展 ...

  5. 开源免费的C/C++网络库(c/c++ sockets library)

    (1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html (2)Asio Asio基于Boo ...

  6. oracle中的记录类型

    单词RECORD有“记录”的意思,因此RECORD也称为“记录类型”,使用该类型的变量可以存储由多个列值组成的一行数据. 在声明记录类型变量之前,首先需要定义记录类型,然后才可以声明记录类型的变量. ...

  7. Arrays.asList方法总结

    import java.util.Arrays; import java.util.List; /** * * 本类演示了Arrays类中的asList方法 * 通过四个段落来演示,体现出了该方法的相 ...

  8. MVC中System.InvalidOperationException: 传入字典的模型项的类型为“XXX”,但此字典需要类型“XXA”的模型项

    出现此类错误的一个原因是Controller传过去的Model和View中的Model不是同一个Model

  9. 从零开始学ios开发(八):Autorotation and Autosizing

    不好意思,这一篇间隔的时间有点长,最近实在是事情太多,耽搁了,好了,长话短说,下面继续学习ios. 这次学习的内容是Autorotation和Autosizing,Autorotation就是屏幕内容 ...

  10. KVM通过qemu实现USB重定向

    KVM是通过qemu来支持USB设备的,可以在启动的时候就指定需要连接的USB设备,也可以系统启动后动态的添加删除.通过qemu的help可知,使用qemu的usb_add host:xxx:xxx来 ...