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


【简介】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

wKioL1TvFNzCYLsFAALXxvP6SeY349.jpg



设置eclipse的快捷方式bash

点击eclipse就能启动eclipse程序了,可是这样很麻烦,每次都须要去/usr/local/src/eclipse目录下启动,所以设置快捷方式是很是有必要的。app

首先回到centerOS的桌面,右键--》建立启动器,如图:框架

wKioL1TvGByCR63BAAQv9uOz8B4851.jpg输入名称--》点击浏览,选择/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。最终成果:

wKioL1TvHbXxGchPAARx2_ze7DE207.jpg


导入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,最终干数据挖掘的活才是王道。


奋斗吧,少年,趁如今还年轻!

相关文章
相关标签/搜索