天天看點

大資料測試之hadoop單機環境搭建(超級詳細版)

Hadoop的運作模式

單機模式是Hadoop的預設模式,在該模式下無需任何守護程序,所有程式都在單個JVM上運作,該模式主要用于開發和調試mapreduce的應用邏輯;

僞分布式模式下,Hadoop守護程序運作在一台機器上,模拟一個小規模的叢集。該模式在單機模式的基礎上增加了代碼調試的功能,允許你檢查NameNode,DataNode,Jobtracker,Tasktracker等模拟節點的運作情況;

單機模式和僞分布式模式均用于開發和調試的目的,真實Hadoop叢集的運作采用的是完全分布式模式

單機模式安裝步驟

一個幹淨的linux基礎環境(重要,這個環境如果有問題後續就全是問題了)

為了友善大家我已經安裝好了一個,大家隻需下載下傳導入到vm裡即可使用。

下載下傳位址:關注公衆号【測試幫日記】對話框裡回複“linux”或者加入QQ群522720170。

連結:https://pan.baidu.com/s/1qXRjaK8 密碼:xjfk

關閉防火牆(适用于centos7,低版本不适用)

分别執行如下兩條指令:

systemctl stop firewalld.service

systemctl disable firewalld.service

修改host name

vi /etc/hosts

然後把自己虛機的名字追加到兩行的末尾,如果用的是我們提供的虛機,名字就是linux,追加之後的效果如圖

重新開機網絡:/etc/rc.d/init.d/network restart

設定無密碼登入(用于hadoop啟動)

cd ~ #進入目前使用者的目錄

mkdir -p /root/.ssh #我們用的root使用者

cd ~/.ssh/

ssh-keygen -t rsa #如有提示,直接按回車 cat id_rsa.pub >> authorized_keys # 加入授權

安裝jdk1.8并配置環境變量

tar解壓

cp解壓後的包到/usr/lib/java/(如果沒有java目錄就建立一下)

vi /etc/profile,末尾添加如下内容:

export JAVA_HOME=/usr/lib/java/jdk1.8.0_11

export JRE_HOME=/usr/lib/java/jdk1.8.0_11/jre

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

執行source /etc/profile使得環境變量生效

驗證是否成功,如下圖

安裝hadoop2.7.4

cp解壓後的包到/usr/lib/hadoop/(如果沒有hadoop目錄就建立一下)

設定hadoop-env.sh

vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh

找到# The java implementation to use.這句話,在下面添加如下内容:

#export JAVA_HOME=${JAVA_HOME}

export HADOOP_HOME=/usr/lib/hadoop/hadoop-2.7.4

export PATH=$PATH:/usr/lib/hadoop/hadoop-2.7.4/bin

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

執行source /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh,使得環境變量生效

配置相關的xml檔案

vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/core-site.xml(hadoop全局配置)

内容如下:

<configuration>

<!--指定namenode的位址-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://127.0.0.1:9000</value>

</property>

</configuration>

vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hdfs-site.xml(hdfs配置)

<!--指定hdfs儲存資料的副本數量-->

<name>dfs.replication</name>

<value>1</value>

cd /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml(MapReduce的配置)

<!--告訴hadoop以後MapReduce運作在YARN上-->

<name>mapreduce.framework.name</name>

<value>yarn</value>

vi yarn-site.xml(yarn配置)

<!-- Site specific YARN configuration properties -->

<!--nomenodeManager擷取資料的方式是shuffle-->

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

格式化hdfs檔案系統

初次運作hadoop時一定要有該操作,指令如下:

/usr/lib/hadoop/hadoop-2.7.4/bin/hadoop namenode -format

執行期間可能需要确認是否繼續,如果有,就輸入y回車即可

當你看到如下的内容時證明成功了

如果看到的是exiting with status 1,那麼請運作如下指令,之後在進行hdfs的格式化

mkdir -pv /tmp/hadoop-root/dfs/name

啟動hadoop(hdfs和yarn)

sh /usr/lib/hadoop/hadoop-2.7.4/sbin/start-all.sh

sh /usr/lib/hadoop/hadoop-2.7.4/sbin/stop-all.sh #停止

如果沒有報錯說明就成功了

使用jps指令檢視程序,如果出現下面的内容就說明确定以及肯定成功啦

PS:如果修改了上面的xml檔案需要重新開機服務哦

使用web檢視Hadoop運作狀态

http://你的伺服器ip位址:50070/

使用web檢視叢集狀态

http://你的伺服器IP位址:8088

可能會遇到的問題

如果你多次進行了hdfs的格式化操作,可能會無法啟動datanode,原因是id不一緻,一般的解決方法為将namenode clusterID和datanode clusterID改成一樣的就行了。修改的檔案為/tmp/hadoop-root/dfs/下的name or data檔案下的VERSION裡的内容

本文轉自 小強測試幫 51CTO部落格,原文連結:http://blog.51cto.com/xqtesting/2066724,如需轉載請自行聯系原作者