溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

發(fā)布時間:2020-08-09 12:19:02 來源:網(wǎng)絡(luò) 閱讀:6234 作者:小強測試 欄目:大數(shù)據(jù)

友情提示:本文超級長,請備好瓜子

Hadoop的運行模式


單機模式是Hadoop的默認模式,在該模式下無需任何守護進程,所有程序都在單個JVM上運行,該模式主要用于開發(fā)和調(diào)試mapreduce的應(yīng)用邏輯;

偽分布式模式下,Hadoop守護進程運行在一臺機器上,模擬一個小規(guī)模的集群。該模式在單機模式的基礎(chǔ)上增加了代碼調(diào)試的功能,允許你檢查NameNode,DataNode,Jobtracker,Tasktracker等模擬節(jié)點的運行情況;

單機模式和偽分布式模式均用于開發(fā)和調(diào)試的目的,真實Hadoop集群的運行采用的是完全分布式模式

單機模式安裝步驟


一個干凈的linux基礎(chǔ)環(huán)境(重要,這個環(huán)境如果有問題后續(xù)就全是問題了)

為了方便大家我已經(jīng)安裝好了一個,大家只需下載導(dǎo)入到vm里即可使用。

下載地址:關(guān)注公眾號【測試幫日記】對話框里回復(fù)“l(fā)inux”或者加入QQ群522720170。

鏈接:https://pan.baidu.com/s/1qXRjaK8 密碼:xjfk

關(guān)閉防火墻(適用于centos7,低版本不適用)

分別執(zhí)行如下兩條命令:

systemctl stop firewalld.service

systemctl disable firewalld.service

修改host name

vi /etc/hosts

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

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

重啟網(wǎng)絡(luò):/etc/rc.d/init.d/network restart

設(shè)置無密碼登錄(用于hadoop啟動)

cd ~ #進入當前用戶的目錄

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

cd ~/.ssh/

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

安裝jdk1.8并配置環(huán)境變量

tar解壓

cp解壓后的包到/usr/lib/java/(如果沒有java目錄就創(chuàng)建一下)

vi /etc/profile,末尾添加如下內(nèi)容:

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

執(zhí)行source /etc/profile使得環(huán)境變量生效

驗證是否成功,如下圖

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

安裝hadoop2.7.4

tar解壓

cp解壓后的包到/usr/lib/hadoop/(如果沒有hadoop目錄就創(chuàng)建一下)

設(shè)置hadoop-env.sh

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

找到# The java implementation to use.這句話,在下面添加如下內(nèi)容:

#export JAVA_HOME=${JAVA_HOME}

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

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

執(zhí)行source /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh,使得環(huán)境變量生效

驗證是否成功,如下圖

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

配置相關(guān)的xml文件

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

內(nèi)容如下:

<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配置)

內(nèi)容如下:

<configuration>

<!--指定hdfs保存數(shù)據(jù)的副本數(shù)量-->

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

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

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

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

內(nèi)容如下:

<configuration>

<!--告訴hadoop以后MapReduce運行在YARN上-->

<property>

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

<value>yarn</value>

</property>

</configuration>

vi yarn-site.xml(yarn配置)

內(nèi)容如下:

<configuration>

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

<!--nomenodeManager獲取數(shù)據(jù)的方式是shuffle-->

<property>

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

<value>mapreduce_shuffle</value>

</property>

</configuration>

格式化hdfs文件系統(tǒng)

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

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

執(zhí)行期間可能需要確認是否繼續(xù),如果有,就輸入y回車即可

當你看到如下的內(nèi)容時證明成功了

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

如果看到的是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命令查看進程,如果出現(xiàn)下面的內(nèi)容就說明確定以及肯定成功啦

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

PS:如果修改了上面的xml文件需要重啟服務(wù)哦

使用web查看Hadoop運行狀態(tài)

http://你的服務(wù)器ip地址:50070/

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

使用web查看集群狀態(tài)

http://你的服務(wù)器IP地址:8088

大數(shù)據(jù)測試之hadoop單機環(huán)境搭建(超級詳細版)

可能會遇到的問題

如果你多次進行了hdfs的格式化操作,可能會無法啟動datanode,原因是id不一致,一般的解決方法為將namenode clusterID和datanode clusterID改成一樣的就行了。修改的文件為/tmp/hadoop-root/dfs/下的name or data文件下的VERSION里的內(nèi)容


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI