【簡介】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,最終幹數據挖掘的活纔是王道。
奮鬥吧,少年,趁如今還年輕!