码迷,mamicode.com
首页 > 编程语言 > 详细

使用java调用hadoop接口学习笔记

时间:2015-02-27 01:34:53      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:hadoop接口 java linux


【简介】

由于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

使用java调用hadoop接口学习笔记

标签:hadoop接口 java linux

原文地址:http://flycc258.blog.51cto.com/8624126/1615545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!