Win7下通过eclipse远程连接CDH集群来执行相应的程序以及错误说明
最近尝试这用用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集群来执行相应的程序以及错误说明的更多相关文章
- windows下eclipse远程连接hadoop集群开发mapreduce
转载请注明出处,谢谢 2017-10-22 17:14:09 之前都是用python开发maprduce程序的,今天试了在windows下通过eclipse java开发,在开发前先搭建开发环境.在 ...
- Eclipse远程提交hadoop集群任务
文章概览: 1.前言 2.Eclipse查看远程hadoop集群文件 3.Eclipse提交远程hadoop集群任务 4.小结 1 前言 Hadoop高可用品台搭建完备后,参见<Hadoop ...
- kubectl客户端工具远程连接k8s集群
一.概述 一般情况下,在k8smaster节点上集群管理工具kubectl是连接的本地http8080端口和apiserver进行通讯的,当然也可以通过https端口进行通讯前提是要生成证书.所以说k ...
- CDH集群spark-shell执行过程分析
目的 刚入门spark,安装的是CDH的版本,版本号spark-core_2.11-2.4.0-cdh6.2.1,部署了cdh客户端(非集群节点),本文主要以spark-shell为例子,对在cdh客 ...
- windows下在eclipse上远程连接hadoop集群调试mapreduce错误记录
第一次跑mapreduce,记录遇到的几个问题,hadoop集群是CDH版本的,但我windows本地的jar包是直接用hadoop2.6.0的版本,并没有特意找CDH版本的 1.Exception ...
- Win7下无法提交MapReduce Job到集群环境(转)
一. 对hadoop eclipse plugin认识不足 http://zy19982004.iteye.com/blog/2024467曾经说到我最hadoop eclipse plugin作用的 ...
- 配置kubectl在Mac(本地)远程连接Kubernetes集群
集群部署在云服务器的ECS上,但是有时需要本地原创连接集群,这就需要通过ApiServer的外网地址去访问集群,但是-/.kube/config下的地址又都是内网,所以可以使用如下方式解决: Mac安 ...
- Eclipse/MyEclipse连接Hadoop集群出现:Unable to ... ... org.apache.hadoop.security.AccessControlExceptiom:Permission denied问题
问题详细如下: 解决办法: <property> <name>dfs.premissions</name> <value>false</value ...
- Eclipse远程连接Hadoop
Windows下面调试程序比在Linux下面调试方便一些,于是用Windows下的Eclipse远程连接Hadoop. 1. 下载相应版本的hadoop-eclipse-plugin插件,复制到ecl ...
随机推荐
- 用CSS3实现文字描边
CSS3作为新兴的前端技术可以实现很多复杂变化的效果,比如文字描边. 这里主要用到text-shadow属性,顾名思义就是为文字加上阴影效果.例: text-shadow:10px 5px 2px # ...
- 如何使官方提供的AppRTCDemo 运行在自己搭建的server(官方提供的apprtc)上(官方的server源码)
原文转自 http://stackoverflow.com/questions/21085261/apprtcdemo-with-local-server-works-between-browsers ...
- [课程设计]Scrum 3.1 多鱼点餐系统开发进度(第三阶段项目构思与任务规划)
Scrum 3.1 多鱼点餐系统开发进度(第三阶段项目构思与任务规划) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到 ...
- Java 基础知识 问答
1,Java为什么能跨平台运行?请简述原理. 因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码.然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由J ...
- hdu 3966 Aragorn's Story 树链剖分 按点
Aragorn's Story Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4048 Zhuge Liang's Stone Sentinel Maze
Zhuge Liang's Stone Sentinel Maze Time Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/327 ...
- python学习笔记十三 JS,Dom(进阶篇)
JS介绍 JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用:JavaScript 是因特网上最流 ...
- ATI Radeon HD 5450 with full QE/CI Support ( 转载 )
ATI Radeon HD 5450 with full QE/CI Support - DSDT (Contains HDMI Audio Edit Too) & AGPM included ...
- Criterion & DetachedCriteria
今天笔记主要是记录笔记,以及代码: criteria: 创建查询接口:createCriteria(class) 查询条件接口:add(各种条件); Restrictions 提供了设置参数的各种接口 ...
- Div的宽度与高度的100%设定
div的100%是从其上一级div的宽高继承来的,所以必须设置其上一级div的宽度或高度,否则无效. 举例说明:父div(deman)宽300高200,子div(cc)如果在这个条件下设置divcc的 ...