【简介】java
因为hadoop是安装在linux系统,所以须要在linux系统使用eclipse开发java。如今不少公司都要求有在linux上开发java的经验 ,所以这也是一个练手的绝好机会。学习hadoop不只仅是学习了hadoop,我相信等hadoop入门,linux也入门了,shell也入门了,linux上开发java也会了,或许这就是学习的魅力吧,让人欲罢不能!废话很少说,进入正题。python
【安装eclipse】linux
工欲善其事,必先利其器,想在linux上用java开发hadoop程序,搭建环境是必不可少的。程序员
因为已经在linux上安装好了jdk和hadoop了,所以只须要在linux上安装eclipse便可,我安装的是eclipse-standard-kepler-SR1-linux-gtk.tar.gz这个eclipse版本。首先使用secureFX将压缩包上传到linux系统上。web
解压eclipse-standard-kepler-SR1-linux-gtk.tar.gz到/usr/local/src目录下(我的习惯)。shell
tar -zxvf eclipse-jee-luna-SR1a-linux-gtk.tar.gz -C /usr/local/src
解压完理论上就能直接打开eclipse进行开发了。进入linux桌面,到/usr/local/src/eclipse目录下:apache
设置eclipse的快捷方式bash
点击eclipse就能启动eclipse程序了,可是这样很麻烦,每次都须要去/usr/local/src/eclipse目录下启动,所以设置快捷方式是很是有必要的。app
首先回到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,最终干数据挖掘的活才是王道。
奋斗吧,少年,趁如今还年轻!