一、准备工作
master:172.17.24.56
slave1:172.17.24.183
slave2:172.17.24.184
slave3:172.17.24.185
修改主机名
时间同步
修改/etc/hosts,通过主机名相互ping通
ssh 无密钥登录
在master上配置ansible
二、环境搭建
1.四台机器添加hadoop账号
useradd hadoop
echo "123456"|passwd --stdin hadoop
#ansible
ansible test -m user -a 'name="hadoop"'
2.在hadoop账号下实现ssh无密钥登录
#在master机器上
su hadoop
ssh-keygen -t rsa
#将id_rsa.pub复制到三台slave上
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave2
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave3
#测试 在master主机上登录slave
ssh hadoop@slave1
#若切换到slave则表示成功,exit退出
3.安装jdk1.8(四台机器)
可以先在master上安装配置,将相应文件拷贝到slave上
安装包jdk-8u121-linux-x64.tar.gz(上传文件命令:rz)
mkdir /usr/java/
tar -zxf jdk-8u121-linux-x64.tar.gz -C /usr/java/
#解压文件为jdk1.8.0_121
修改属主属组为hadoop
chown -R hadoop:hadoop /usr/java/jdk1.8.0_121
#修改环境变量,在hadoop用户的家目录下,/home/hadoop/.bashrc中添加(四台机器)
exportJAVA_HOME=/usr/java/jdk1.8.0_121
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
source /home/hadoop/.bashrc
#验证
echo $JAVA_HOME
#出现:/usr/java/jdk1.8.0_121
java -version
#出现:
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
#与直接执行java -version 一样
$JAVA_HOME/bin/java -version
4.解压hadoop和建立文件(四台机器)
安装包hadoop-2.7.5.tar.gz
tar -zxf hadoop-2.7.5.tar.gz -C /usr/
cd /usr
#改名为hadoop
mv hadoop-2.7.5 hadoop
#将hadoop的属主和属组都改为hadoop
chown -R hadoop:hadoop /usr/hadoop
#创建hdfs相关文件
mkdir -p /home/hadoopdir/tmp
mkdir -p /home/hadoopdir/dfs
mkdir -p /home/hadoopdir/dfs/name
mkdir -p /home/hadoopdir/dfs/data
#修改属组属主为hadoop
chown -R hadoop:hadoop /home/hadoopdir/
#配置环境变量 /etc/profile中添加(四台机器都要操作)
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
保存后
source /etc/profile
#cd /usr/hadoop/bin
#./hadoop version 查看版本
5.配置hadoop文件内容(四台)
/usr/hadoop/etc/hadoop下
(1)
#修改core-site.xml,在configuration中添加
fs.defaultFS
hdfs://master:9000
io.file.buffer.size
131072
hadoop.tmp.dir
file:/home/hadoopdir/tmp/
A base for other temporary directories.
(2)
#修改hdfs-site.xml文件
dfs.namenode.name.dir
file:///home/hadoopdir/dfs/name
dfs.datanode.data.dir
file:///home/hadoopdir/dfs/data
dfs.namenode.http-address
172.17.24.56:50070 #改成master的ip
dfs.replication
2
dfs.namenode.rpc-address
172.17.24.56:9000 #改成master的ip
(3)
#修改mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
mapreduce.jobtracker.http.address
master:50030
mapred.job.tracker
master:9001
(4)
#修改 yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.hostname
master
yarn.resourcemanager.address
master:8032
yarn.resourcemanager.scheduler.address
master:8030
yarn.resourcemanager.resource-tracker.address
master:8031
yarn.resourcemanager.admin.address
master:8033
yarn.resourcemanager.webapp.address
master:8088
(5)修改slaves文件为(仅master)
#localhost
slave1
slave2
slave3
(6)编辑配置文件 /etc/profile.d/hadoop.sh (四台)
export HADOOP_HOME="/usr/hadoop"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
7.将文件复制到slave上
scp -r /home/hadoopdir/ slave1:/home/
scp -r /usr/hadoop slave2:/usr/
scp -r /usr/java/jdk1.8.0_121 slave1:/usr/java
#将这些文件全部改成 hadoop所有
.格式化
su hadoop
hadoop namenode -format
#最后出现“util.ExitUtil:Exitingwithstatus0”,表示成功