使用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,最終幹數據挖掘的活纔是王道。


奮鬥吧,少年,趁如今還年輕!

相關文章
相關標籤/搜索