友情提示:本文超級(jí)長(zhǎng),請(qǐng)備好瓜子
Hadoop的運(yùn)行模式
單機(jī)模式是Hadoop的默認(rèn)模式荔棉,在該模式下無(wú)需任何守護(hù)進(jìn)程濒募,所有程序都在單個(gè)JVM上運(yùn)行坪郭,該模式主要用于開(kāi)發(fā)和調(diào)試mapreduce的應(yīng)用邏輯吭产;
偽分布式模式下侣监,Hadoop守護(hù)進(jìn)程運(yùn)行在一臺(tái)機(jī)器上,模擬一個(gè)小規(guī)模的集群臣淤。該模式在單機(jī)模式的基礎(chǔ)上增加了代碼調(diào)試的功能橄霉,允許你檢查NameNode,DataNode荒典,Jobtracker酪劫,Tasktracker等模擬節(jié)點(diǎn)的運(yùn)行情況;
單機(jī)模式和偽分布式模式均用于開(kāi)發(fā)和調(diào)試的目的寺董,真實(shí)Hadoop集群的運(yùn)行采用的是完全分布式模式
單機(jī)模式安裝步驟
一個(gè)干凈的linux基礎(chǔ)環(huán)境(重要覆糟,這個(gè)環(huán)境如果有問(wèn)題后續(xù)就全是問(wèn)題了)
為了方便大家我已經(jīng)安裝好了一個(gè),大家只需下載導(dǎo)入到vm里即可使用遮咖。
下載地址:關(guān)注公眾號(hào)【測(cè)試幫日記】對(duì)話(huà)框里回復(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
然后把自己虛機(jī)的名字追加到兩行的末尾御吞,如果用的是我們提供的虛機(jī)麦箍,名字就是linux,追加之后的效果如圖
重啟網(wǎng)絡(luò):/etc/rc.d/init.d/network restart
設(shè)置無(wú)密碼登錄(用于hadoop啟動(dòng))
cd ~ #進(jìn)入當(dāng)前用戶(hù)的目錄
mkdir -p /root/.ssh #我們用的root用戶(hù)
cd ~/.ssh/
ssh-keygen -t rsa #如有提示陶珠,直接按回車(chē)cat id_rsa.pub >> authorized_keys # 加入授權(quán)
安裝jdk1.8并配置環(huán)境變量
tar解壓
cp解壓后的包到/usr/lib/java/(如果沒(méi)有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)境變量生效
驗(yàn)證是否成功,如下圖
安裝hadoop2.7.4
tar解壓
cp解壓后的包到/usr/lib/hadoop/(如果沒(méi)有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.這句話(huà)揍诽,在下面添加如下內(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)境變量生效
驗(yàn)證是否成功,如下圖
配置相關(guān)的xml文件
vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/core-site.xml(hadoop全局配置)
內(nèi)容如下:
fs.defaultFS
hdfs://127.0.0.1:9000
vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hdfs-site.xml(hdfs配置)
內(nèi)容如下:
dfs.replication
1
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)容如下:
mapreduce.framework.name
yarn
vi yarn-site.xml(yarn配置)
內(nèi)容如下:
yarn.nodemanager.aux-services
mapreduce_shuffle
格式化hdfs文件系統(tǒng)
初次運(yùn)行hadoop時(shí)一定要有該操作暑脆,命令如下:
/usr/lib/hadoop/hadoop-2.7.4/bin/hadoop namenode -format
執(zhí)行期間可能需要確認(rèn)是否繼續(xù)渠啤,如果有,就輸入y回車(chē)即可
當(dāng)你看到如下的內(nèi)容時(shí)證明成功了
如果看到的是exiting with status 1添吗,那么請(qǐng)運(yùn)行如下命令沥曹,之后在進(jìn)行hdfs的格式化
mkdir -pv /tmp/hadoop-root/dfs/name
啟動(dòng)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 #停止
如果沒(méi)有報(bào)錯(cuò)說(shuō)明就成功了
使用jps命令查看進(jìn)程,如果出現(xiàn)下面的內(nèi)容就說(shuō)明確定以及肯定成功啦
PS:如果修改了上面的xml文件需要重啟服務(wù)哦
使用web查看Hadoop運(yùn)行狀態(tài)
http://你的服務(wù)器ip地址:50070/
使用web查看集群狀態(tài)
http://你的服務(wù)器IP地址:8088
可能會(huì)遇到的問(wèn)題
如果你多次進(jìn)行了hdfs的格式化操作碟联,可能會(huì)無(wú)法啟動(dòng)datanode妓美,原因是id不一致,一般的解決方法為將namenode clusterID和datanode clusterID改成一樣的就行了玄帕。修改的文件為/tmp/hadoop-root/dfs/下的name or data文件下的VERSION里的內(nèi)容