最近尝试这用用eclipse连接CDH的集群,由于之前尝试过很多次都没连上,有一次发现Cloudera Manager是将连接的端口修改了,所以才导致连接不上CDH的集群,之前Apache hadoop采用的端口是9000和9001,而Cloudera Manager采用的端口是8020端口,于是通过eclipse中的MapReduce选项卡,edit一个选项连接,发现连上了。这给我带来了一些意外。

  在这里有一个问题需要说明一下,这个eclipse的插件我还是用的Apache hadoop的hadoop2.5.2时编译的插件,而我上面能够连上的集群是CDH5.4.4,它采用的Apache hadoop是hadoop2.6.0的版本。这说明什么?说明eclipse的插件与hadoop的版本没多大关系,但是这里需要注意一个问题,我在创建MapReduce工程的时候,是没有加载hadoop2.5.2的jar包,所以我们需要在创建的工程下面手动添加你的CDH版本的jar包。这是由于我将MapReduce的的hadoop的安装目录设置成我的CDH5.4.4的路径(具体:Window--->Preferences---->Hadoop Map/Reduce)。通常情况下,如果版本相同的话,创建一个工程是会自动加载对应的jar包的。

  好了,现在我们可以创建我们想要的版本的MapReduce的工程了,那么接下来就是是否能正常的运行呢?答案当然是否定的。那么怎么办呢?请继续耐心的看完下面内容。

  当我按照上面创建好工程后,添加了WordCount的例子,运行发现出现了错误,错误一次列举如下:

错误1:Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V

  这个错误,网上也有很多人遇到过,开始以为我们有在C:/Windows/System32/和Hadoop—Home/bin目录下添加hadoop.dll文件,但是我进去查看发现我添加了,再认为是我的hadoop_home的环境变量没有配置,再次检查发现我配置了环境变量啊。于是继续在网上查找该问题的解决方案。后来发现有人说是hadoop.dll的版本的问题,hadoop2.4之前和之后对hadoop.dll的要求不一样。因此需要在网上下载对应的hadoop.dll文件即可。(在这里我没有提供下载的连接,需要的可以留言)

错误2:Exception in thread "main"java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

  错误2是紧接着错误1的,网上说目前错误的解决办法还没有解决,采用一种临时的方式来解决,解决的办法是:通过下载你的CDH的版本的源码(hadoop2.6.0-cdh5.4.4-src.zip),在对应的文件下,hadoop2.6.0-cdh5.4.4-src\hadoop-common-project\hadoop- common\src\main\java\org\apache\hadoop\io\nativeio下NativeIO.java 复制到对应的Eclipse的project(复制的过程中需要注意一点,就是在当前的工程下创建相同的包路径,这里的包路径org.apache.hadoop.io.nativeio,再将对应NativeIO.java文件复制到对应的包路径下即可。)

  最后修改NativeIO.java文件中的557行的代码,如下所示:

  源代码如下:

    public static boolean access(String path, AccessRight desiredAccess)
throws IOException {
return access0(path, desiredAccess.accessRight());
}

  修改后的代码如下:

    public static boolean access(String path, AccessRight desiredAccess)
throws IOException {
return true;
//return access0(path, desiredAccess.accessRight());
}

再次执行,发现ok了。

  前面几篇文章介绍了如何通过eclipse来调试mapreduce程序,其中一篇文章是介绍调试技巧:http://www.cnblogs.com/ljy2013/p/4686005.html   通过这篇文章现在可以直接写对应版本的CDH的MapReduce的工程了。并且可以调试。

  

Win7下通过eclipse远程连接CDH集群来执行相应的程序以及错误说明的更多相关文章

  1. windows下eclipse远程连接hadoop集群开发mapreduce

    转载请注明出处,谢谢 2017-10-22 17:14:09  之前都是用python开发maprduce程序的,今天试了在windows下通过eclipse java开发,在开发前先搭建开发环境.在 ...

  2. Eclipse远程提交hadoop集群任务

    文章概览: 1.前言 2.Eclipse查看远程hadoop集群文件 3.Eclipse提交远程hadoop集群任务 4.小结   1 前言 Hadoop高可用品台搭建完备后,参见<Hadoop ...

  3. kubectl客户端工具远程连接k8s集群

    一.概述 一般情况下,在k8smaster节点上集群管理工具kubectl是连接的本地http8080端口和apiserver进行通讯的,当然也可以通过https端口进行通讯前提是要生成证书.所以说k ...

  4. CDH集群spark-shell执行过程分析

    目的 刚入门spark,安装的是CDH的版本,版本号spark-core_2.11-2.4.0-cdh6.2.1,部署了cdh客户端(非集群节点),本文主要以spark-shell为例子,对在cdh客 ...

  5. windows下在eclipse上远程连接hadoop集群调试mapreduce错误记录

    第一次跑mapreduce,记录遇到的几个问题,hadoop集群是CDH版本的,但我windows本地的jar包是直接用hadoop2.6.0的版本,并没有特意找CDH版本的 1.Exception ...

  6. Win7下无法提交MapReduce Job到集群环境(转)

    一. 对hadoop eclipse plugin认识不足 http://zy19982004.iteye.com/blog/2024467曾经说到我最hadoop eclipse plugin作用的 ...

  7. 配置kubectl在Mac(本地)远程连接Kubernetes集群

    集群部署在云服务器的ECS上,但是有时需要本地原创连接集群,这就需要通过ApiServer的外网地址去访问集群,但是-/.kube/config下的地址又都是内网,所以可以使用如下方式解决: Mac安 ...

  8. Eclipse/MyEclipse连接Hadoop集群出现:Unable to ... ... org.apache.hadoop.security.AccessControlExceptiom:Permission denied问题

    问题详细如下: 解决办法: <property> <name>dfs.premissions</name> <value>false</value ...

  9. Eclipse远程连接Hadoop

    Windows下面调试程序比在Linux下面调试方便一些,于是用Windows下的Eclipse远程连接Hadoop. 1. 下载相应版本的hadoop-eclipse-plugin插件,复制到ecl ...

随机推荐

  1. 《C#编程》课件 - C#基础

    声明多维数组• 创建一个多维数组int[,] intMatrix;float[,] floatMatrix;string[,,] strCube;使用new关键字• 必须指定每个维度的大小int[,] ...

  2. LeetCode----172. Factorial Trailing Zeroes(Java)

    package singlenumber136; //Given an array of integers, every element appears twice except for one. F ...

  3. document.compatMode属性和获取鼠标的位置

    document.compatMode属性 document.compatMode用来判断当前浏览器采用的渲染方式. 官方解释: BackCompat:标准兼容模式关闭.CSS1Compat:标准兼容 ...

  4. Cheatsheet: 2015 06.01 ~ 06.30

    Web The Front-End Optimization Checklist [ASP.NET 5] Production Ready Web Server on Linux. Kestrel + ...

  5. Linux - 进程查看与管理

    标签(空格分隔): Linux 进程的静态查看 查看系统所有进程 ps -ef -- 输出来好乱,看不懂..: ps aux -- a表示所有与终端相关的进程,u表示所有以用户组织的进程状态的信息,x ...

  6. pip 添加trusted host 一劳永逸

    继上一篇<Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED>出现的问题进行一个一劳永逸的操作 pip升级到7.0以后,在使用http ...

  7. iOS - Project 项目

    1.项目流程 1.1 分析项目的架构 iOS 常见的几种架构 标签式 Tab Menu 列表式 List Menu 抽屉式 Drawer 瀑布式 Waterfall 跳板式 Springborad 陈 ...

  8. Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸

    一.引言 Android的开源使厂商无需自行研发OS,大大降低了研发.生产的成本,使得Android平板品牌如雨后春笋般爆发,山寨机厂商们似乎又找到了一丝希望.与此同时带来的是广大开发者的苦不堪言,各 ...

  9. jquery.SuperSlide.2.1.2--轮播(兼容到IE7 适用于整屏)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  10. SAP NWBC for HTML and Desktop configuration steps[From sdn]

    Summary :- This dcoumnenst conatin the information about requirement , hardware , configuration step ...