1. 程式人生 > >Hadoop 0.20.2+Ubuntu13.04配置和WordCount測試

Hadoop 0.20.2+Ubuntu13.04配置和WordCount測試

password trac 讓我 說明 core jvm -m launchpad 1.7

事實上這篇博客寫的有些晚了。之前做過一些總結後來學校的事給忘了,這幾天想又一次拿來玩玩發現有的東西記不住了。翻博客發現居然沒有。好吧,所以趕緊寫一份留著自己用吧。這東西網上有非常多,只是也不是全然適用。所以還是自己留一份吧,廢話完成。

由於之前留的資料室寫在記事本上的。所以沒有圖片= =





Full name: MyHadoop
User name: uit
Password: 000


系統:ubuntu13.04
Hadoop版本號:0.20.2

虛擬機:
這個我感覺是最主要的了。應該不用多說什麽,虛擬機,我用的是vmware,然後是ubuntu13.04的鏡像,這個不會的話。就隨便問問會的好了,非常好搞的



先裝java環境(這個實在ubuntu13.04下裝的,與以下的就路徑不同而已)
1.首先確認jdk的包在你u盤或者硬盤裏
2.把u盤裏的壓縮包拷到這個的目錄下------cp -r /media/uit/MyDisk/Hadoop/jdk-7u45-linux-i586.tar.gz


/usr/lib/jvm(須要註意的是,這個版本號的ubuntu是自帶jdk的。只是。我還是自己裝了一次,由於自帶的路徑不知道在哪


,還是自己裝一遍吧)
3.進入到目錄下--cd /usr/lib/jvm;
4.解壓這個包----- sudo tar -zxvf jdk-7u45-linux-i586.tar.gz 不寫別的路徑,就是直接解壓到當前文件夾


。假設要解壓到別的文件夾在後面加上就可以(假設解壓的時候須要權限的話。輸入sudo -s 然後輸入你的登錄password就可以)
5.解壓完後--sudo gedit /etc/profile
6.在最後面加上-------#Set Java Environment

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
(這些路徑要依據自己的實際情況來填寫)


7.改掉系統的默認設置---sudo update-alternatives --install /usr/bin/java java
/usr/lib/jvm/jdk1.7.0_45/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac

/usr/lib/jvm/jdk1.7.0_45/bin/javac 300


sudo update-alternatives --config java(這裏假設裝ubuntu已經自帶jdk的話會讓你做出選擇。這裏選自己裝的jdk那個選項)

sudo update-alternatives --config javac


8.輸入java -version能看到版本號信息就可以:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode)







/*
裝java環境(這個實在xbuntu 13.10下裝的java環境):
1.首先在ubuntu下建立一個目錄-------cd usr ;
mkdir java;
2.把u盤裏的壓縮包拷到這個的目錄下------cp -r /media/uit/MyDisk/Hadoop/jdk-7u45-linux-i586.tar.gz /usr/java
3.進入到目錄下--cd java;
4.解壓這個包----- sudo tar -zxvf jdk-7u45-linux-i586.tar.gz 不寫別的路徑,就是直接解壓到當前文件夾,假設要解壓到別的文件夾在後面加上就可以(假設解壓的時候須要權限的話,輸入sudo -s 然後輸入你的登錄password就可以)
5.解壓完後--sudo gedit /etc/profile
6.在最後面加上-------#Set Java Environment
export JAVA_HOME=/usr/java/jdk1.7.0_45
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
(這些路徑要依據自己的實際情況來填寫)


7.改掉系統的默認設置---sudo update-alternatives --install /usr/bin/java java

/usr/java/jdk1.7.0_45/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac
/usr/java/jdk1.7.0_45/bin/javac 300

sudo update-alternatives --config java(這裏假設裝ubuntu已經自帶jdk的話會讓你做出選擇,這裏選自己裝的jdk那個選項)

sudo update-alternatives --config javac


8.輸入java -version能看到版本號信息就可以:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode)
*/









安裝ssh:(安的時候註意不要在根權限root下安裝,而且必須先於hadoop裝,別裝完hadoop再裝ssh。有可能hadoop執行不起來)
1. sudo apt-get install ssh
sudo apt-get install rsync
2.執行ssh -version看看是否已經安裝
3.查看ssh的狀態ps -ef | grep ssh------假設有個sshd執行著就說明好用,假設沒有請往下看
4.(假設運行完上面的後查看ssh並沒有sshd這個進程,進行例如以下操作)--------
①到https://launchpad.net/ubuntu/lucid/i386/openssh-client/1:5.3p1-3ubuntu3下載文件,

下載完後安裝-----cd /home/uit/Downloads
sudo dpkg -i openssh-client_5.3p1-3ubuntu3_i386.deb
②到https://launchpad.net/ubuntu/lucid/i386/openssh-server/1:5.3p1-3ubuntu3下載文件,

完後安裝------sudo dpkg -i openssh-server_5.3p1-3ubuntu3_i386.deb
③到https://launchpad.net/ubuntu/lucid/i386/ssh/1:5.3p1-3ubuntu3下載文件,

完後安裝----sudo dpkg -issh_5.3p1-3ubuntu3_all.deb
須要註意的是有時候安裝第二三步的時候會出錯。提示一個錯誤,我剛開始裝的也出錯了。這時候能夠用命令行


下載一個東西----apt-get install libssl0.9.8,然後再又一次運行上面的命令(不用在下載了)
④這些都下完裝完後,執行ssh-------cd /etc/init.d
./ssh start
⑤OK,在執行ps -ef | grep ssh看看,此時應該就有sshd這個進程了


⑥配置文件改動------------------gedit /etc/ssh/sshd_config
(要確保這些字符前無凝視符號“#”)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PeimitEmptyPasswords yes


5.配置無password登錄
①首先看看是否在根目錄下有沒有.ssh目錄--------ll /home/uit,有。下一步;沒有,創建------mkdir ~/.ssh
②創建密匙---------ssh-keygen -t rsa(這裏會讓你填一個保存密匙的文件,就把括號妮的那個即可)
③cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
④chmod 600 ~/.ssh/authorized_keys
6.命令行-----ssh localhost---------------第一次會出來讓你輸入yes或則on。這裏輸yes,我配的時候第一次進的時候


要輸password,我一路回車。後來我關機,然後開機後再試好像就不用了- -,好奇妙的說。

。。。
7.成功---------------- [email protected]:~/.ssh$ ssh localhost
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic i686)


* Documentation: https://help.ubuntu.com/


288 packages can be updated.
178 updates are security updates.


New release ‘13.10‘ available.
Run ‘do-release-upgrade‘ to upgrade to it.


Last login: Fri Dec 20 19:56:36 2013 from localhost












裝hadoop:(網上說hadoop必須和ssh都裝在/home/username/下,不然配置無password登陸hadoop時,仍然要輸入password。可是現


在沒有裝在同文件夾下,再裝的時候要註意)
(首次裝的是hadoop0.20.2版本號)
1.把u盤裏的壓縮包拷到這個的/home/uit目錄下------cp -r /media/uit/MyDisk/Hadoop/hadoop.zip /home/uit
2.解壓那個zip文件----- unzip hadoop.zip 之後會出來一個目錄。裏面還包括一個 hadoop0.20.2.tar.gz和兩個亂


碼文件
3.把那個hadoop-0.20.2.tar.gz取出來------cp -r /home/uit/hadoop/hadoop-0.20.2.tar.gz /home/uit
4.解壓hadoop-0.20.2.tar.gz--------tar -zxvf hadoop-0.20.2.tar.gz(我在ubuntu13.04下試的。在根目 錄下不能直


接解壓,不知道怎麽回事,但能夠變一下,能夠如今剛才的目錄裏面解壓,然後把解壓完的拿出 來)(似乎是由於我所


在的cd路徑是在/home/uit/hadoop裏,假設切換成根路徑下,就試的沒問題了)
5.解壓完後刪除無用的文件-------rm -r /home/uit/hadoop.zip
rm -r /home/uit/hadoop
rm -r /home/uit/hadoop-0.20.2.tar.gz
6.改動hadoop中的java路徑---------cd /home/uit/hadoop-0.20.2/conf
gedit hadoop-env.sh-----------------在最後面加上 export


JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
(假設用gedit無用的話就關閉終端然後再開一個終端)
gedit core-site.xml-------------------增加一個子元素
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>()
<name>hadoop.tmp.dir</name>
<value>/home/uit/hadoop-0.20.2/tmp</value>
<description>A base for other temporary


directories.</description>
</property>
那個hadoop.tmp.dir不配置的話會導致重新啟動後hadoop無法使用。還得刪掉原來的tmp文件,在格


式化文件系統,在start-all.sh 才幹用,這裏糾結了我好久= =(這個文件以下會創建的,不急)


gedit hdfs-site.xml-------------------增加一個子元素
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
gedit mapred-site.xml-------------增加一個子元素
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>


7.給用戶分配目錄的讀權限----------------sudo chown -R uit:uit /home/uit/hadoop-0.20.2
權限這著實讓我蛋疼了好一段時間。總以為是自己沒配好,原來是權限沒弄好,後來才發現解壓完後權


限什麽的都有,就是由於沒加這一句。加上就好了,都屬於當前用戶


8.改動環境變量-------------------gedit /etc/profile---------------在最後面加上# set hadoop path
export HADOOP_HOME=/home/uit/hadoop-0.20.2
export PATH=$PATH:$HADOOP_HOME/bin(須要註意的是。如


果加上這個,就不用在打命令的時候前面加bin/了。有的書上命令都是以bin/開頭,原因是環境變量裏沒有加)


9.改動完環境變量後更新一下----------------source /etc/profile


10.創建一個緩沖文件------------------mkdir /home/uit/hadoop-0.20.2/tmp

11.格式化hadoop文件系統-----------------------hadoop namenode -format
12.開啟線程----------------------start-all.sh
13.配置完畢,驗證,在瀏覽器裏輸入http://localhost:50030/ (mapreduce的頁面) http://localhost:50070(hdfs的頁面)
(裝ssh的時候出了點問題。所以最後啟動線程的時候提示有錯誤,可是仍然能出來頁面= =!)


14。最後須要註意的是,關機前,一定要註意stop-all.sh,不然在打開虛擬機。不然,。。反正我當時是一萬僅僅神獸奔騰而過
(有時候啟動後在瀏覽器裏打不開hdfs的界面。能夠再次運行格式化文件系統,在重新啟動,假設還不行就上網搜。通常是那個id不匹配須要改)




15.執行WordCount樣例
①首先你得確保有個程序的jar包,沒有的話就自行上網搜
②然後在主機裏創建兩個文件------mkdir ~/input
vi ~/input/file01.txt--------隨便輸寫內容
vi ~/input/file02.txt--------隨便輸入
③在hadoop裏創建目錄-------hadoop fs -mkdir /tmp/input
④把之前的兩個文件傳進去-----hadoop fs -put ~/input/file0*.txt /tmp/input
⑤查看一下-----------hadoop fs -ls /tmp/input 應該就有了兩個文件
⑥執行程序(jar包)----hadoop jar ~/hadoop-0.20.2/hadoopFirstDemo.jar WordCount


/tmp/input /tmp/output01
(7)查看結果 ----hadoop fs -ls /tmp/output01
hadoop fs -cat /tmp/output01/part-00000




總算。。。總算把這個玩意配好了,╮(╯▽╰)╭。開源的東西的嘛。,習慣就好


=。 =,。中間也是經歷非常多波折。讓我學到了非常多。只是當結果出來的時候還是心中好處一口氣,這樣的感覺
僅僅有感受過的童鞋才明確啊。,希望假設以後有人看到過這個東西的話,我僅僅能說。加油,學長僅僅能幫你到這了。。
2013年12月21日16:08:58 wsr

Hadoop 0.20.2+Ubuntu13.04配置和WordCount測試