本文是主要參考了幾篇博客之后才搭建成功的,目的只是記錄搭建過程,主要引用文章請(qǐng)參考博客。這里對(duì)原文中略作改動(dòng)以適應(yīng)當(dāng)前環(huán)境需求青灼。
ps:簡書什么時(shí)候能夠改進(jìn)一下自己的MarkDown文本編輯能力,排版能力弱爆了<嗣ぁT硬Α!
1.虛擬機(jī)安裝Ubuntu-16.04.3
虛擬機(jī):VMware Workstation 12
內(nèi)存:2G
網(wǎng)絡(luò):橋接模式
系統(tǒng):Ubuntu-16.04.3
節(jié)點(diǎn)(局域網(wǎng)):
????192.168.1.104????master??????hadoop/namenode/resourcemanager
????192.168.1.105????slave_01???hadoop/datanode/secondnamenode
????192.168.1.106????slave_02???hadoop/datanode
2.主悯衬、從虛擬機(jī)設(shè)置及驗(yàn)證
sudo -su????切換到root權(quán)限弹沽。
gedit /etc/hostname????編輯對(duì)應(yīng)節(jié)點(diǎn)虛擬機(jī)名稱
gedit /etc/hosts????添加如下內(nèi)容
192.168.1.104????master
192.168.1.105????slave_01
192.168.1.106????slave_02
systemctl stop firewalld.service????關(guān)閉防火墻
systemctl disable firewalld.service????禁止防火墻開機(jī)啟動(dòng)
ping <hostname>????測(cè)試各節(jié)點(diǎn)虛擬機(jī)之間是否聯(lián)通
(ctrl+c退出PING命令)
*3.安裝vim編輯器
感覺系統(tǒng)自帶的vi并不好用,可以利用apt-get install vim來安裝vim編輯器筋粗,以下內(nèi)容編輯默認(rèn)使用vim策橘。
4.JDK安裝及環(huán)境設(shè)置
新版本的Ubuntu系統(tǒng)庫中沒有1.7及之前版本jdk。在布置階段我才用了1.8版本jdk娜亿,并沒有發(fā)生錯(cuò)誤丽已。不知道后續(xù)MapReduce應(yīng)用開發(fā)過程中是否順利之情,待解決买决。
apt-get install openjdk-1.8-jdk-headless????安裝jdk環(huán)境
vim /etc/profile????添加以下環(huán)境變量
export $JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export $JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
:wq????保存退出編輯
source /etc/profile????使新的環(huán)境變量生效
5.安裝并配置SSH
該版本系統(tǒng)中默認(rèn)沒有安裝SSH Shell沛婴,所以需要手動(dòng)安裝一下
apt-get install openssh-server????安裝ssh shell
ps -e|grep ssh????查看是否開啟服務(wù)
ssh localhost????驗(yàn)證
ssh-keygen -t rsa????各節(jié)點(diǎn)虛擬機(jī)執(zhí)行該命令生成密鑰對(duì)
cd /root/.ssh目錄
cat id_dsa.pub>>authorized_keys????導(dǎo)出認(rèn)證文件
scp authorized_keys root@<hostname>:~/.ssh/????拷貝認(rèn)證文件到節(jié)點(diǎn)虛擬機(jī)
chmod 600 .ssh/authorized_keys????修改認(rèn)證權(quán)限模式
ssh slave_01驗(yàn)證是否免密成功
6.安裝并配置Hadoop分布式集群
1)在master主機(jī)上進(jìn)入/opt目錄,創(chuàng)建soft目錄并進(jìn)入督赤。利用命令下載hadoop-2.7.5的壓縮文件
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz
tar -zxvf hadoop-2.7.5.tar.gz????解壓
2)創(chuàng)建如下目錄
mkdir /dfs
mkdir /dfs/name
mkdir /dfs/data
mkdir /tmp
3)配置文件:hadoop-env.sh(/opt/soft/hadoop-2.7.5/etc/hadoop)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
4)配置文件:yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
5)配置文件:slaves
slave_01
sleve_02
6)配置文件:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/soft/hadoop-2.7.5/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
8)配置文件:hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/soft/hadoop-2.7.5/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/soft/hadoop-2.7.5/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
9)配置文件:mapred-site.xml
先拷貝模板文件
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
10)配置文件:yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
11)將上述文件拷貝到另外兩個(gè)虛擬機(jī)的相同目錄當(dāng)中替換原有文件
12)編輯環(huán)境變量
添加
export HADOOP_HOME=/opt/soft/hadoop-2.7.5
修改PATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
生效上述環(huán)境變量
13)
hdfs namenode -format????格式化namenode
start-all.sh????啟動(dòng)hadoop
jps????查看是否啟動(dòng)成功
7.提交并執(zhí)行驗(yàn)證任務(wù)
在master虛擬機(jī)上創(chuàng)建數(shù)據(jù)文件存儲(chǔ)目錄
hdfs dfs -mkdir -p /user/<username>/input????這里注意
/user/<username>
文件系統(tǒng)格式嘁灯,否則運(yùn)行錯(cuò)誤。
hdfs dfs -put EXAMPLEFILE /user/root/input
提交數(shù)據(jù)文件够挂。
提交任務(wù)
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /user/root/input /user/root/output/result
查看結(jié)果
hdfs dfs -cat /data/output/result/part-r-00000