http://blog.csdn.net/u012852986/article/details/51488496
明明之前已經(jīng)在Ubuntu上部署過Hadoop了,換到CentOS又卡了好久,還是好弱,趕緊寫篇博客記錄下來。
一、安裝JDK,配置環(huán)境變量
(1)查看CentOS自帶JDK是否已安裝
yum list installed|grep java
[圖片上傳中...(image-714da0-1513668920940-33)]
[圖片上傳中...(image-b5ea8f-1513668920938-20)]
**這里
我已經(jīng)安裝過了java-1.8.0-openjdk,為了方便演示所以就當做自帶環(huán)境了,不影響接下來的操作。(這里補充一下jdk和openjdk的區(qū)別:簡單來講,openjdk只包含最精簡的jdk,而且兩者授權(quán)協(xié)議不同,openjdk采用GPL V2協(xié)議,jdk采用JRL,雖然都是開源,但前者可以用于商業(yè),后者只能用于個人)**
(2)卸載自帶的Java環(huán)境
yum -y remove java-1.8.0-openjdk
(注意不要漏掉*,表示卸載所有openjdk相關文件,-y表示選項默認選yes)
[圖片上傳中...(image-b60898-1513668920937-4)]
[圖片上傳中...(image-9b7fb-1513668920937-7)]
(3)查看yum庫中的Java包
*yum -y list java
(
注意*
)**
[圖片上傳中...(image-5cfd82-1513668920938-19)]
[圖片上傳中...(image-220169-1513668920937-6)]
(4)使用yum安裝Java環(huán)境
*yum -y install java-1.8.0-openjdk
(
注意*
)**
[圖片上傳中...(image-990a11-1513668920937-3)]
[圖片上傳中...(image-385943-1513668920936-0)]
安裝
完成后,就可以通過java -version和javac來查看剛安裝的Java版本信息了
[圖片上傳中...(image-b4f49b-1513668920937-2)]
[圖片上傳中...(image-203962-1513668920937-1)]
(5)配置環(huán)境變量
vim /etc/profile
添加下面幾行內(nèi)容
[圖片上傳中...(image-35926f-1513668920938-18)]
[圖片上傳中...(image-989626-1513668920937-5)]
保存退出之后,再執(zhí)行source /etc/profile
至此Java環(huán)境就配置成功了,接下來是Hadoop的配置。
二、配置Hadoop
(1)下載Hadoop壓縮包
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
[圖片上傳中...(image-48952e-1513668920938-17)]
**(
2)解壓縮**
tar -zxvf hadoop-1.2.1.tar.gz
[圖片上傳中...(image-9d28ce-1513668920939-32)]
[圖片上傳中...(image-ca525a-1513668920938-16)]
**(
3)4個需要配置的文件**
[圖片上傳中...(image-92961a-1513668920939-31)]
[圖片上傳中...(image-b6991b-1513668920938-15)]
**(
3-1)配置hadoop-env.sh**
這個文件是hadoop配置的環(huán)境變量等信息
vim hadoop-env.sh
[圖片上傳中...(image-58f914-1513668920939-30)]
[圖片上傳中...(image-dbfe6e-1513668920938-14)]
**將
這行的注釋取消(去掉#)同時修改JAVA_HOME路徑為上文配置Java環(huán)境變量時的JAVA_HOME路徑**
(3-2)配置core-site.xml
這個文件是用做全局配置
vim core-site.xml
[圖片上傳中...(image-783d57-1513668920939-29)]
[圖片上傳中...(image-e37302-1513668920938-13)]
**具體
配置情況如上圖,其中doarcutine為我主機的hostname,hostname通過輸入**
hostname
就可以得到,這里還要注意主機名盡量不要包含特殊符號,centos修改主機名可以通過如下指令
sudo hostname doarcutine
[圖片上傳中...(image-b7c2b7-1513668920939-28)]
(3-3)配置hdfs-site.xml
這個文件是hdfs的局部配置(hadoop的關鍵就是hdfs和MapReduce,自然要對這兩個分別做設置)
vim hdfs-site.xml
[圖片上傳中...(image-a350f8-1513668920939-27)]
[圖片上傳中...(image-283547-1513668920938-12)]
**配置
情況如上圖**
(3-4)配置mapred-site.xml(mapred其實就是MapReduce的意思)
vim mapred-site.xml
[圖片上傳中...(image-8075e5-1513668920939-26)]
[圖片上傳中...(image-f7ef66-1513668920938-11)]
(4)配置環(huán)境變量
vim /etc/profile
添加如下兩項內(nèi)容
[圖片上傳中...(image-ef91ed-1513668920939-25)]
[圖片上傳中...(image-f2f862-1513668920938-10)]
**s
ource /etc/profile**
執(zhí)行之后,可以通過執(zhí)行
hadoop
[圖片上傳中...(image-582199-1513668920939-24)]
查看hadoop是否可以正常找到執(zhí)行程序
[圖片上傳中...(image-c399fc-1513668920938-9)]
**(
5)格式化namenode**
這里可能遇到問題,見下文(7)
這是執(zhí)行之前的第一步,為什么要格式化呢?因為hadoop可以看做一個單獨的文件系統(tǒng)(準確的說是hdfs),所以就像空硬盤需要格式化一樣,通過格式化讓存儲空間知道以什么方式組織數(shù)據(jù)。
**hadoop namenode -format (
建議在bin目錄下執(zhí)行
)**
[圖片上傳中...(image-22f042-1513668920938-23)]
[圖片上傳中...(image-e3f021-1513668920937-8)]
**(
6)啟動start-all.sh**
這里可能遇到問題,見下文(7)
cd /opt/hadoop-1.2.1/bin
進入這個目錄下,我們可以看到有start-all.sh這樣一個文件,我們可以在任意一個地方執(zhí)行這個文件。
start-all.sh
啟動成功后如下圖,輸入jps可以看到啟動的項目
[圖片上傳中...(image-954755-1513668920938-22)]
[圖片上傳中...(image-cf3756-1513668920938-21)]
大功告成
!
(7)一些可能遇到的問題
(7-1)執(zhí)行(5)時如果報錯,則很有可能是Java路徑配置有問題,注意查看/etc/profile和/opt/hadoop-1.2.1/conf/hadoop-env.sh這兩個文件中Java路徑是否正確。
**(7-2)執(zhí)行(6)時
如果報錯異常了,并且有一句是Caused by: java.lang.RuntimeException: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence。那么原因就是當前系統(tǒng)用的語言是GBK,所以需要前面配置的3個xml用GBK編碼,當然更好的方式是把系統(tǒng)語言改成utf8,具體修改方法參考http://blog.csdn.net/wave_1102/article/details/45116783**
(7-3)執(zhí)行(6)總提示localhost的密碼不對。
**執(zhí)行命令 ssh localhost,查看ssh是否可以免密碼登錄,如果不可以,啟動下面命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys**
之后應該可以了 如果還是不可以就從新設置一下ssh文件權(quán)限之后再執(zhí)行上述命令應該就可以了
**(7-4)執(zhí)行jps后,進程數(shù)目不正常(比截圖中要少,只有其中的個別幾個),這個原因在于配置文件中主機名錯誤,建議修改為一個沒有特殊字符的主機名,修改方式見(3-2),然后/opt/hadoop-1.2.1/conf/core-site.xml和
/opt/hadoop-1.2.1/conf/mapred-site.xml修改兩個文件中主機名。**