1. 程式人生 > >《Hadoop》之"踽踽獨行"(六)Hadoop的單節點叢集設定

《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

--------------------------------------------------------------------------