前提:你搭建好了hadoop 2.x的linux环境,并可以成功执行。还有就是window可以訪问到集群。over

1、

hfds-site.xml 添加属性:关闭集群的权限校验。windows的用户一般与linux的不一样,直接将它关闭掉好了。记住不是core-site.xml 重新启动集群

  <property>

    <name>dfs.permissions</name>

    <value>false</value>

  </property>

2、hadoop-eclipse-plugin-2.7.0.jar将插件放到plugins文件夹下



3、复制linux master已安装好的hadoop文件夹到windows,然后eclipse 配置定位hadoop的文件夹,重新启动eclipse



4、打开配置,hadoop选项,定位hadoop主文件夹。然后打开mapreduce的view 设置配置属性:其它额外属性不要配置,username也不用改,此时能够链接上了。





5、新建MRproject



6、建立wordcount类(自己复制即可)

     在src以下直接新建log4j.properties:

内容例如以下:主要是信息打印:(你能够将info改成debug,内容过多,改成info了)

log4j.rootLogger=info,stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=mapreduce_test.log

log4j.appender.R.MaxFileSize=1MB

log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

log4j.logger.com.codefutures=DEBUG



7、错误多多啊:

执行报:
1)、java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.

2)java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.



解决方案1)人家提示HADOOP_HOME没有设置,那就配置windows的环境变量。定位到hadoop文件夹

执行报:

第一项不报了,第二项继续:

2)java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

说不能定位,看来是HADOOP_HOME没起作用,那就在main里加入代码,否则不报null:

System.setProperty("hadoop.home.dir" , "E:\\bigdata\\hadoop2" );

执行报:

Could not locate executable E:\bigdata\hadoop2\bin\winutils.exe in the Hadoop binaries.

这次变了,检查文件夹,的确没有winutils.exe,由于我们是从linux复制下来的

那就添加呗:

https://github.com/srccodes/hadoop-common-2.2.0-bin 下载bin文件夹,替换到windows中hadoop里的bin文件夹

执行报:

第二项不报了。又来新的了:

Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException :
Input path does not exist: file:/input

这个嘛,嘿嘿,參数设置成绝对的。hadoop1的时候不用,如今是第二代:

乖乖的设置參数为 hdfs://master:9000/input hdfs://master:9000/output

执行 继续报错:

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

说是本地库的问题,那就改改源代码,将本地库的调用屏蔽掉:

拷贝源代码文件org.apache.hadoop.io.nativeio.NativeIO到项目中 。定位: 然后定位到570行(别hadoop2.2是。版本号不一样如今2.7是607行还是直接搜索public static boolean access(String path,
AccessRight desiredAccess)吧,),直接改动为return
true;  不让access了。

复制麻烦,那就新建类,定位包,然后复制类内容即可了。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmhnMTIyMjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



继续执行继续报错:

 org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator,
access=WRITE, inode="/output/_temporary/0":root:supergroup:drwxr-xr-x
权限不够,linux用户是root,window默认用户是Administrator  我都将window改成root了,看来这个改法没起作用。另外我在core-site.xml也添加了不让校验权限啊。无论用。又一次设置參数:换一种方式,之前是在core-site.xml设置的权限为false。改到hdfs-site.xml里试试,假设不行改源代码。

(所以我在第一步提示是在hdfs里而不是core里面改)



执行 继续报,别报了,出结果了:

Input split bytes=100
           Combine input records=179
           Combine output records=131
           Reduce input groups=131
           Reduce shuffle bytes=1836
           Reduce input records=131
           Reduce output records=131


对于: WARN - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable这个警告没事,执行在linux就不报了。



8、最后。尝试将wordcount拆成子类的形式。将mapper移出来试试,由于有的时候多个类会提示报错:

删除output文件夹,又一次执行:OK。没问题。正确出结果了。

9、欢迎訪问下hegou.me这个站点。怎么样,仅仅是在本机搭建个測试环境。工作中就不要在正式集群里跑了。还是乖乖測试好代码先。over。

eclipse 配置执行hadoop 2.7 程序样例參考步骤的更多相关文章

  1. [b0011] windows 下 eclipse 开发 hdfs程序样例 (三)

    目的: 学习windows 开发hadoop程序的配置. [b0007] windows 下 eclipse 开发 hdfs程序样例 太麻烦 [b0010] windows 下 eclipse 开发 ...

  2. [b0010] windows 下 eclipse 开发 hdfs程序样例 (二)

    目的: 学习windows 开发hadoop程序的配置 相关: [b0007] windows 下 eclipse 开发 hdfs程序样例 环境: 基于以下环境配置好后. [b0008] Window ...

  3. [b0007] windows 下 eclipse 开发 hdfs程序样例

    目的: 学习使用hdfs 的java命令操作 相关: 进化: [b0010] windows 下 eclipse 开发 hdfs程序样例 (二) [b0011] windows 下 eclipse 开 ...

  4. Hadoop 2.6.0分布式部署參考手冊

    Hadoop 2.6.0分布式部署參考手冊 关于本參考手冊的word文档.能够到例如以下地址下载:http://download.csdn.net/detail/u012875880/8291493 ...

  5. Hadoop AWS Word Count 样例

    在AWS里用Elastic Map Reduce 开一个Cluster 然后登陆master node并编译下面程序: import java.io.IOException; import java. ...

  6. HBase Filter程序样例及Shell(图)

    ==过滤器执行流程== reset() : reset the filter state before filtering a new row. filterAllRemaining(): true ...

  7. Android Studio 配置使用百度api (附带简单样例)

    还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明.  难道,是因为后者是 "Doo ...

  8. Visual C++ Windows 桌面应用程序样例(摘抄)

    //================================== //Windows应用程序框架结构(例子) //参考:<Visual C++宝典>陈国建等编著 //======= ...

  9. OpenCL多次循环执行内核的一个简单样例

    最近有不少朋友在多次循环执行OpenCL内核程序的时候碰到一些问题.由于对OpenCL初学者而言可能比较普遍,因此我这里给出一个清晰简单的demo来掩饰如何简单又高效地执行循环执行OpenCL内核. ...

随机推荐

  1. Python9-内置函数2-day16

    #zip方法 l = [1,2,3] l2 = ['a','b','c'] l3 = ('*','**',[1,2]) l4 = {'k1':1,'k2':2} for i in zip(l,l2,l ...

  2. (转)iOS开发之Pch预编译文件的创建

    本文转自 http://www.cnblogs.com/496668219long/p/4568265.html 在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹 ...

  3. 利用Vert.x构建简单的API 服务、分布式服务

    目前已经使用Vertx已经一年多了,虽然没有太多的造诣,但也已在项目中推广了下:从最初的vertx搭建web服务,到项目上线运营,还算比较稳定.再到后来尝试搭建基于vertx的分布式服务,一路下来也积 ...

  4. Knockout v3.4.0 中文版教程-7-计算监控-依赖跟踪如何工作

    3.依赖跟踪如何工作 初学者不需要知道这一点,但更高级的开发人员将想知道为我们怎么实现KO自动跟踪依赖性和自动更新UI的正确部分... 它其实相当简单优雅,跟踪算法如下: 当你定义一个计算监控,KO立 ...

  5. android 之 View

    在进行游戏开发时,需要自定义各种控件和界面. 自定义View的使用: 绘制屏幕 刷新屏幕:后台数据发生了变化,需要开发人员自己刷新屏幕以显示最新数据 例子: MyView开发,绘制界面View内容: ...

  6. Service Broadcast简单音乐播放功能

    在Activity上有两个ImageButton,分别控制播放/暂停.停止. @Override    public void onCreate(Bundle savedInstanceState) ...

  7. jsp jstl标签库 el表达式

    一.JSTL标签是什么? 提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言. 同时还提供了格式化数据和日期的方法.实现这些功能需要I18N格式标签库(I18N-c ...

  8. pytorch将cpu训练好的模型参数load到gpu上,或者gpu->cpu上

    假设我们只保存了模型的参数(model.state_dict())到文件名为modelparameters.pth, model = Net() 1. cpu -> cpu或者gpu -> ...

  9. 九度oj 题目1250:矩阵变换

    题目描述: 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一, 现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到. 输入: 输出: 如果可以 ...

  10. 九度oj 题目1499:项目安排

    题目描述: 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个项目后,拿到报酬都是不同的.由于小明马上就要硕士毕业了,面临着买房.买车.给 ...