《Hadoop》之"踽踽獨行"(六)Hadoop的單節點叢集設定
在《Hadoop》之"踽踽獨行"(五)這一篇中,我們對Hadoop進行了簡單的概述。接下來,我們就來了解一下Hadoop叢集的安裝。而Hadoop的安裝模式有以下三種,我們一一來了解一下
- 單節點上的本地模式(獨立模式) :Local(Standalone)Mode
- 單節點的偽分佈模式:Pseudo-Distributed Mode
- 多節點的安全分散式叢集模式:Fully-Distributed Cluster
一、準備工作
1、操作平臺:
VMware裡的Linux系統。可安裝CentOS-6.5-x86_64-bin-DVD1.iso 點選連線進行下載centos6.5
2、使用者要求
使用普通使用者,進行解壓、安裝所需軟體(許可權問題,不到萬不得已的情況下,堅決不要使用root身份)。
如:建立一個普通使用者hyxy
useradd hyxy
passwd hyxy
使用hyxy這個普通使用者進行一系列的操作
3、必備軟體:
jdk開發環境。可選jdk1.7,點選檢視jdk的下載連結地址
ssh軟體。CentOS - DVD1.iso內建的軟體, 可執行指令串 rpm -qa | grep ssh 檢視是否已安裝。
rsync軟體。CentOS - DVD1.iso內建的軟體,可執行指令串 :rpm -qa | grep rsync
4、Hadoop下載
以Hadoop2.7.3版本為例進行安裝。點選檢視hadoop的下載連結地址。
5、軟體管理說明
以普通使用者安裝程式時,儘可能的將軟體安裝到自己的主目錄下,如在主目錄下建立一個apps目錄,用於管理軟體的安裝路徑。
/home/hyxy/apps/ #所有軟體的父目錄 [[email protected] apps]$ ls #檢視apps目錄下的軟體包 hadoop-2.7.3.tar.gz jdk-7u80-linux-x64.tar.gz
二、local(standalone) mode
1、簡介
local(standalone) mode,即安裝在單節點(一臺主機)的本地模式,也叫獨立模式。所有程式都在單個JVM上執行。使用本地檔案系統,而不是分散式檔案系統。無需執行任何守護程序(daemon),hadoop不會啟動NameNode、DataNode等守護程序,Map()和Reduce()任務作為同一個程序的不同部分來執行的。
2、用途
用於對MapReduce程式的邏輯進行除錯,確保程式的正確。由於在本地模式下測試和除錯MapReduce程式較為方便,因此,這種模式適宜用在開發階段。
3、安裝詳細步驟
第一步、安裝JDK,配置環境變數
將jdk-7u80-linux-x64.tar.gz上傳到apps目錄下,然後使用tar指令解壓到apps目錄下,後刪除軟體包:
[[email protected] apps ]$ tar -zxv -f jdk-7u80-linux-x64.tar.gz。
[[email protected] apps]$ rm jdk-7u80-linux-x64.tar.gz #解壓後刪除軟體包,節省空間
再給jdk1.7 建立一個軟連結jdk.soft
[[email protected] apps]$ ln -s jdk1.7.0_80/ jdk.soft #軟連結叫jdk.soft
我們在~/.bash_profile配置檔案內,配置jdk的環境變數。
[[email protected] apps]$ vim ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin #可要可不要
# jdk environment
JAVA_HOME=/home/hyxy/apps/jdk.soft #配置環境變數JAVA_HOME
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH #千萬別忘記拼接$PATH
export PATH JAVA_HOME
然後使用source命令,重新載入~/.bash_profile,後檢查是否配置成功:java -version 。javac
[[email protected] apps]$ source ~/.bash_profile
[[email protected] apps]$ java -version #檢測jdk版本
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[[email protected] apps]$ javac #測試javac命令
第二步、解壓hadoop。
[[email protected] apps]$ tar -zxv -f hadoop-2.7.3.tar.gz #1.解壓軟體包
[[email protected] apps]$ rm hadoop-2.7.3.tar.gz #2.刪除軟體包
[[email protected] apps]$ ln -s hadoop-2.7.3/ hadoop.soft #3.建立軟連結hadoop.soft
[[email protected] apps]$ ll
drwxr-xr-x. 9 hyxy hyxy 4096 8月 18 2016 hadoop-2.7.3
lrwxrwxrwx. 1 hyxy hyxy 13 1月 8 11:04 hadoop.soft -> hadoop-2.7.3/
drwxr-xr-x. 8 hyxy hyxy 4096 4月 11 2015 jdk1.7.0_80
lrwxrwxrwx. 1 hyxy hyxy 12 1月 8 10:45 jdk.soft -> jdk1.7.0_80/
上述步驟完成後,再配置hadoop的環境變數
[[email protected] apps]$ vim ~/.bash_profile
...............
...............
# hadoop environment #追加hadoop環境變數
HADOOP_HOME=/home/hyxy/apps/hadoop.soft #配置HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH #配置path,千萬別忘記拼接$PATH
export PATH HADOOP_HOME
然後,再重新載入~/.bash_profile,測試hadoop命令
[[email protected] apps]$ source ~/.bash_profile #重新載入配置檔案
[[email protected] apps]$ hadoop version #測試hadoop命令
Hadoop 2.7.3
當完成上述兩大步驟,local(standalone) mode,就已經完美收官,是不是超級簡單呀。不過我們可以進行下面的程式測試環節哦。
4、程式測試
我們在hadoop的本地模式下,來測試一個mapreduce程式:統計符合正則表示式 'dfs[a-z.]+' 的單詞,並輸出到指定目錄下。
第一步:在hadoop.soft目錄下,建立目錄input
[[email protected] apps]$ cd hadoop.soft/
[[email protected] hadoop.soft]$ mkdir input #建立目錄input
第二步:將hadoop的etc/hadoop/下的所有xml檔案複製到input下
[[email protected] hadoop.soft]$ cp etc/hadoop/*.xml input/
第三步:使用hadoop自帶的mapreduce程式進行統計符合增則表示式的單詞,並輸出到指定目錄下
[[email protected] hadoop.soft]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
ps:如果有以下錯誤:Caused by: java.net.UnknownHostException: master。請在/etc/hosts裡進行主機名和ip繫結操作
第四步:檢視目錄output下的內容
[[email protected] hadoop.soft]$ cat output/part-r-00000
1 dfsadmin #正則表示式就匹配到一個單詞
到此為止,本地模式的安裝與程式測試,就徹底結束了。
如果感興趣的,也可以參考hadoop官網的測試:https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/SingleCluster.html
--------------------------------------------------------------------------