【简介】
由于hadoop是安装在linux系统,因此需要在linux系统使用eclipse开发java。现在很多公司都要求有在linux上开发java的经验 ,因此这也是一个练手的绝好机会。学习hadoop不仅仅是学习了hadoop,我相信等hadoop入门,linux也入门了,shell也入门了,linux上开发java也会了,或许这就是学习的魅力吧,让人欲罢不能!废话不多说,进入正题。
【安装eclipse】
工欲善其事,必先利其器,想在linux上用java开发hadoop程序,搭建环境是必不可少的。
由于已经在linux上安装好了jdk和hadoop了,因此只需要在linux上安装eclipse即可,我安装的是eclipse-standard-kepler-SR1-linux-gtk.tar.gz这个eclipse版本。首先使用secureFX将压缩包上传到linux系统上。
解压eclipse-standard-kepler-SR1-linux-gtk.tar.gz到/usr/local/src目录下(个人习惯)。
tar -zxvf eclipse-jee-luna-SR1a-linux-gtk.tar.gz -C /usr/local/src
解压完理论上就能直接打开eclipse进行开发了。进入linux桌面,到/usr/local/src/eclipse目录下:
设置eclipse的快捷方式
点击eclipse就能启动eclipse程序了,但是这样很麻烦,每次都需要去/usr/local/src/eclipse目录下启动,因此设置快捷方式是非常有必要的。
首先回到centerOS的桌面,右键--》创建启动器,如图:
输入名称--》点击浏览,选择/usr/local/src/eclipse/eclipse--》点击弹簧图标,选择/usr/local/src/eclipse/icon.xpm--》确定
ok,大功告成。
【导入hadoop的jar包】
打开eclipse,是不是很熟悉呢,这里我的工作空间选择的是默认的/root/workspace
创建一个java Project,我的project名称为hadoop。在项目里新建一个文件夹lib用于存放jar包,这些操作是不是很简单?
接下来就是导入hadoop的jar包了,我选择用命令行的方式导入jar包,练练手!
[root@hucc01 ~]# cd /usr/local/src/hadoop-2.2.0/share/hadoop/ [root@hucc01 hadoop]# ll 总用量 24 drwxr-xr-x. 6 67974 users 4096 10月 7 2013 common drwxr-xr-x. 7 67974 users 4096 10月 7 2013 hdfs drwxr-xr-x. 3 67974 users 4096 10月 7 2013 httpfs drwxr-xr-x. 5 67974 users 4096 2月 19 23:19 mapreduce drwxr-xr-x. 4 67974 users 4096 10月 7 2013 tools drwxr-xr-x. 6 67974 users 4096 10月 7 2013 yarn
我们可以看到在/usr/local/src/hadoop-2.2.0/share/hadoop/ 目录下,有hadoop的所有的jar包,
首先需要导入common目录下的jar包。
[root@hucc01 hadoop]# cd common/ [root@hucc01 common]# ll 总用量 4152 -rw-r--r--. 1 67974 users 2735584 10月 7 2013 hadoop-common-2.2.0.jar -rw-r--r--. 1 67974 users 1352859 10月 7 2013 hadoop-common-2.2.0-tests.jar -rw-r--r--. 1 67974 users 139536 10月 7 2013 hadoop-nfs-2.2.0.jar drwxr-xr-x. 2 67974 users 4096 10月 7 2013 jdiff drwxr-xr-x. 2 67974 users 4096 10月 7 2013 lib drwxr-xr-x. 2 67974 users 4096 10月 7 2013 sources drwxr-xr-x. 2 67974 users 4096 10月 7 2013 templates [root@hucc01 common]#
我们需要导入common下的所有jar包以及common中lib目录下的所有jar包
[root@hucc01 common]# cp *.jar /root/workspace/hadoop/lib/ #导入common下的所有jar [root@hucc01 common]# cd lib/ [root@hucc01 lib]# cp *.jar /root/workspace/hadoop/lib/ #导入common下lib目录中的所有jar [root@hucc01 lib]#
因为接下来的主要是先开发一个hdfs程序,因此还需要导入hdfs的相关jar包
[root@hucc01 lib]# cd .. [root@hucc01 common]# cd .. [root@hucc01 hadoop]# cd hdfs/ #跳转到hdfs目录 [root@hucc01 hdfs]# ll 总用量 7156 -rw-r--r--. 1 67974 users 5242252 10月 7 2013 hadoop-hdfs-2.2.0.jar -rw-r--r--. 1 67974 users 1988460 10月 7 2013 hadoop-hdfs-2.2.0-tests.jar -rw-r--r--. 1 67974 users 71689 10月 7 2013 hadoop-hdfs-nfs-2.2.0.jar drwxr-xr-x. 2 67974 users 4096 10月 7 2013 jdiff drwxr-xr-x. 2 67974 users 4096 10月 7 2013 lib drwxr-xr-x. 2 67974 users 4096 10月 7 2013 sources drwxr-xr-x. 2 67974 users 4096 10月 7 2013 templates drwxr-xr-x. 7 67974 users 4096 10月 7 2013 webapps [root@hucc01 hdfs]# cp *.jar /root/workspace/hadoop/lib/ #导入hdfs相关的jar包 [root@hucc01 hdfs]#
好了,已经将开发需要的jar包放到项目中了
回到eclipse界面,刷新项目,将jar刷新出来。因为是java项目,所以还要将lib下的所有jar包变成小奶瓶,这个相信大家都不会陌生吧。
新建一个包,cn.hucc.hadoop,新建一个Java文件,HadoopDemo.java。最终成果:
导入hadoop的源码包
现在虽然可以开发了,但是还是需要导入hadoop的源码包,因为作为一个高素质的程序员,看源码是必不可少的(嘿嘿~)。点击FileSystem类查看源码,这时时肯定看不了源码的,因此需要下载源码包并且上传到linux上。下载并且使用SecureFX将hadoop-2.2.0-src.tar.gz上传到linux系统上。
解压源码包到/usr/local/src/resource目录下(个人习惯)
tar -zxvf hadoop-2.2.0-src.tar.gz -C hadoop-2.2.0-src.tar.gz
接下来回来eclipse将目录给链接上即可,这个对于有java开发经验的人来说并不是难事。
【开发hadoop程序】
在HadoopDemo.java中写入如下代码:
package cn.hucc.hadoop; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; public class HadoopDemo { public static void main(String[] args) throws Exception { URI uri = new URI("hdfs://hucc01:9000");//NameNode address Configuration config = new Configuration(); FileSystem fs = FileSystem.get(uri, config); InputStream is = fs.open(new Path("/jdk")); OutputStream os = new FileOutputStream("/root/jdk1.7.tar.gz"); IOUtils.copyBytes(is, os, 4096, true); } }
运行该程序,执行成功,回到root目录下,看看jdk1.7.tar.gz是不是安静的躺在哪儿了呢!到这里,用java程序开发的第一个hadoop程序就完成了,想想还有点小激动呢!
【总结】
整体看下来,其实也没有多大难度,hadoop看起来很神秘,真正去学的时候感觉也就这样,还没当初学三大框架时候那种死去活来的感觉呢!
每天还要上班,回来能够学大概3个小时,坚持下去,并且用博客记录下来,我相信长期以往,hadoop始终会被我征服的...
毕业马上半年了,一直在做着CRUD的活,用着那几个框架,我不想一直这样,不想当没有思想的码农,我要学会大数据,学会python,最终干数据挖掘的活才是王道。
奋斗吧,少年,趁现在还年轻!
本文出自 “陌途” 博客,请务必保留此出处http://flycc258.blog.51cto.com/8624126/1615545
原文地址:http://flycc258.blog.51cto.com/8624126/1615545