Chinaunix首页 | 论坛 | 博客
  • 博客访问: 311406
  • 博文数量: 163
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -40
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-08 00:28
文章分类

全部博文(163)

文章存档

2015年(2)

2014年(35)

2013年(28)

2012年(30)

2011年(22)

2010年(14)

2009年(8)

2008年(13)

2007年(11)

分类: HADOOP

2014-02-28 16:29:31

Hadoop在windows上的安装见另一篇文章:  http://blog.chinaunix.net/uid-11209572-id-4126436.html
本文主要介绍使用Eclipse进行hadoop计算的开发, 比较粗浅,还请见谅.

Eclipse下载
到官网下载最新版本即可. 
注意选择对应的系统.
下载完后,解压到本地路径,注意eclipse的全路径中最好不要包括有空格或中文之类的,可能会有不兼容的现象,这个没有什么好解释的.

然后再找到hadoop-plugin
这个有的文章里说路径是: /contrib/eclipse-plugin
但我在我的路径里面没有找到这个,不是很清楚是不是用源码安装的才会有.
我的是搜索了一个与我安装hadoop对应版本的包.  hadoop-eclipse-plugin-1.2.1

然后把下载到的插件包拷贝至Eclipse的plugin目录下.

重启eclipse,配置hadoop installation directory
如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。

配置Map/Reduce Locations。 
在Window-->Show View中打开Map/Reduce Locations。 
在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-->New Hadoop Location。在弹出的对话框中你需要配置Location name,如Hadoop,还有Map/Reduce Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。如:

Map/Reduce Master
localhost
9001
DFS Master
localhost
9000
此界面还有一个Users的配置,之前用的是默认,感觉不太对,后来就用了我在安装hadoop的时候添加的那个ssh的账号名,后面在查看hadoop目录的时候,也可以正常读出,不确定是不是一定要用这个用户名,还是也可以用其它,其它文章中有见过说一定要指定什么名字.没有测试不太懂这个.
配置完后退出。点击DFS Locations-->Hadoop如果能显示文件夹(2)说明配置正确,如果显示"拒绝连接",请检查你的配置。

到此环境配置就差不多了. 下面创建一个项目,体验一把:
新建项目
File-->New-->Other-->Map/Reduce Project 
项目名可以随便取,如WordCount。 
我是把整个的hadoop的example的目录全部拷贝到了新建的项目下,因为之前只拷1个文件,总是无法运行,不知道是不是配置不对.
另外还需要拷贝 源码路径: hadoop-1.2.1\src\core\org\apache\hadoop\fs
主要是因为上面拷贝后的java程序,运行的时候会报一个checkvalue的错误,修改源码重新编译是最快的方法了.先这样,后面学会了如何玩这个,再来看看如何整.

上面拷贝过来的fs目录的,需要修改1个文件: FileUtil.java
  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("%04o", permission.toShort()));
//    }
  }
如上,按上面的代码,将相应的代码注释掉,然后第一次执行后,会在bin目录下生成对应的class文件, FileUtil.class,将此文件替换掉hadoop-eclipse-plugin-1.2.1.jar中hadoop-core.jar的FileUtil.class文件.  否则后面的运行可能会无法通过.



然后上传一个模拟数据文件到hadoop.
本地新建文件word.txt

java c++ python c java c++ javascript helloworld hadoop mapreduce java hadoop hbase 

通过hadoop的命令在HDFS上创建/tmp/workcount目录,命令如下:bin/hadoop fs -mkdir /tmp/wordcount

通过copyFromLocal命令把本地的word.txt复制到HDFS上,命令如下:
bin/hadoop fs -put /home/mars/word.txt  /tmp/wordcount/word.txt

运行项目
在新建的项目右击WordCount.java, ->Run As -> Run Configurations
在弹出的Run Configurations对话框中,点击Java Application,右键->New,创建一个新的Application,名字可修改.
配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:  hdfs://localhost:9000/tmp/wordcount/word.txt hdfs://localhost:9000/tmp/wordcount/output
然后点击Apply按键,退出Configuraiton界面.
再右击WordCount.java, ->Run As -> Run on Hadoop
稍等片刻,就会执行完.
然后查看目录  bin/hadoop fs -ls /tmp/wordcount/output
会有2个文件,1个有计算的结果,另1个就是告诉你执行成功了.

理解不深,只能写成这样了.  也算是给这个入门体验作个总结了.

参考文章:
http://sishuok.com/forum/blogPost/list/5337.html
http://www.cnblogs.com/EChannel/archive/2013/02/22/2922721.html
http://shitouer.cn/2012/05/build-hadoop-eclipse-development-env-under-windows/
http://blog.csdn.net/savechina/article/details/5656937
http://blog.sina.com.cn/s/blog_3cd4b1ab010195di.html
http://blog.csdn.net/shan9liang/article/details/9842091
http://blog.csdn.net/showmyheart_libo/article/details/12572209

http://www.cnblogs.com/flyoung2008/archive/2011/12/09/2281400.html
http://www.cnblogs.com/flyoung2008/archive/2011/11/29/2268302.html
http://blog.csdn.net/savechina/article/details/5656937
http://blog.csdn.net/shan9liang/article/details/9842091
http://phz50.iteye.com/blog/932373
http://blog.csdn.net/twlkyao/article/details/17578541
http://blog.csdn.net/xw13106209/article/details/6862480
http://worms.blog.51cto.com/969144/1321037
http://blog.csdn.net/qyongkang/article/details/7610887

阅读(2703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~