單節點集羣模式(a Single Node Cluster)又稱僞分佈模式,只需一個節點即可運行。這種模式一般只是用來學習或者開發、測試使用。實際使用中還是使用多節點的分佈式。
1、環境變量配置
爲了方便的執行Hadoop程序,需要配置很多系統環境變量。主要有以下幾個變量
設置HADOOP_HOME爲Hadoop的安裝路徑
export HADOOP_HOME=/home/hduser/hadoop
設置將hadoop添加到PATH,上文中已經介紹過hadoop的運行文件在bin和sbin目錄下,通過設置PATH後,我們可以在任何位置執行hadoop命令。
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin
設置hadoop其他環境變量
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
鏈接庫的相關設置
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib”
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
與配置Jdk的系統環境變量方法一致,我們只需將需要配置的系統變量添加到用戶主目錄下的.bashrc文件中即可。打開Ubuntu虛擬機,然後打開Xshell連接登陸到虛擬機,在用戶主目錄下執行命令 vim .bashrc
在新的框體中輸入i進入編輯模式,然後在文件末尾輸入下述內容
按esc退出編輯模式,輸入:wq保存並退出
命令行中輸入 source .bashrc命令更新一下系統環境變量
更新完成後我們可以通過echo $HADOOP_HOME測試系統變量是否添加成功,如下圖所示表明已經成功。
Hadoop 默認模式爲非分佈式模式(本地模式),無需進行其他配置即可運行。非分佈式即單 Java 進程,方便進行調試。在此我們可以在本地模式下運行部分Hadoop自帶MapReduce例子來驗證Hadoop能夠正常運行,同時體驗Hadoop中MapReduce運行命令格式。在命令行中輸入
cd hadoop/ #進入Hadoop安裝文件目錄
mkdir ./input #在hadoop文件夾下創建輸入文件
cp ./etc/hadoop/*.xml ./input #將配置文件作爲輸入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+' #運行MapReduce中grep例子,篩選符合正則表達式dfs[a-z]+的單詞並統計其出現的次數,並將結果放入output文件夾中,關於正則表達式更多內容,參見附錄三:正則表達式速查表格
cat ./output/* #查看運行結果
刪除創建的文件使用以下命令
rm -r ./output
rm -r ./input
Hadoop 還可以在單節點上以僞分佈式的方式運行,此時Hadoop 進程以分離的 Java 進程來運行,節點既作爲NameNode 也作爲 DataNode,同時讀取的是 HDFS 中的文件。這種模式需要修改相應的配置文件,我們將會在下文中進行詳細講解。