• Hadoop-eclipse-plugin插件安装


    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复制到eclipseplugins下面

    重启eclipse

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

    Hadoop-eclipse-plugin插件安装

    配置本地Hadoop Install 目录

    如下图:

    Hadoop-eclipse-plugin插件安装

    新建一个Hadoop Location

    点击 “New Hadoop Location”

    Hadoop-eclipse-plugin插件安装

    会出现以下对话框

    Hadoop-eclipse-plugin插件安装

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

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

    Hadoop-eclipse-plugin插件安装

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

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

    1. 

     ERROR security.UserGroupInformation: PriviledgedActionException as: hadoop
    cause:java.io.IOException Failed to set permissions of path:usrhadoop mpmapredstaginghadoop753422487.staging
    to 0700 Exception in thread "main" java.io.IOException: Failed to set permissions of path: usrhadoop mp mapredstaginghadoop753422487.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)

    Hadoop-eclipse-plugin插件安装

    开放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,而且需要设置"cygwinin"到环境变量PATH中,使用eclipse-plugin提交mapreduce程序,必须在window端安装cygwin,并将cygwinin"到环境变量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,保存后执行没有问题(即将执行时虚拟机内存调大)

  • 相关阅读:
    带你去草原
    为爱痴狂
    打造值得信任的个人品牌究竟靠什么?
    【缅怀妈妈系列诗歌】之二十二:没妈的孩子像根草
    缅怀妈妈系列诗歌】之二十三:妈妈,我学会了坚强
    要创业?想自己当老板?先学会老板法则三十六计
    【缅怀妈妈系列诗歌】之二十一:妈妈,没有了您,就没有了家
    sql server text类型替换
    网页中插入天气预报
    超出了存储过程、函数、触发器或视图的最大嵌套层数最大层数为 32
  • 原文地址:https://www.cnblogs.com/longshiyVip/p/4802394.html
Copyright © 2020-2023  润新知