1、虚拟机管理软件:VMware15
2、系统:CentOS 7
3、ssh软件:Xshell 7
4、hadoop版本:2.7.7
5、Jdk版本:jdk8
注意:使用超级管理员root登录。
ping www.baidu.com
使用ctrl+c来停止命令
如果网络没有打开,打开网络:
service network restart
vi /etc/sysconfig/network-scripts/ifcfg-ens33
选择编辑ifcfg-ens33这个文件修改ip地址信息。
1) 把BOOTPROTO="hdcp" 改为BOOTPROTO=”static”静态网络ip
2) 设置ONBOOT="yes"
3) 添加master IP地址为:IPADDR=192.168.100.10
4) 添加子网掩码:NETMASK=255.255.255.0
5) 添加网关: GATEWAY=192.168.100.2
6) DNS1=192.168.100.1
7) 重启网络:systemctl restart network
8) 测试网络有没有连通:ping www.baidu.com
#关闭防火墙
systemctl stop firewalld
#禁用防火墙
systemctl disable firewalld
#查看防火墙状态
systemctl status firewalld
备注:这里是把三个Linux的ip地址保存到三个虚拟机去,相当于我们自己在手机里面存别人的电话号码 一样的道理,这样相互之间就知道对应ip地址的机器是哪一台。所以这个操作也是要在三台虚拟机都要 进行的。给ip地址起名字,几个机器需要互相连通,这样在连接几台机器的时候只需要使用机器名就行,不需要使用ip地址。
vi /etc/hosts
192.168.100.10 master
192.168.100.20 slave1
192.168.100.30 slave2
此时关机,克隆出两台机器,分别为 slave1 、 slave2
vi /etc/sysconfig/network-scripts/ifcfg-ens33
slave1 的网络为 192.168.100.20/24
slave2 的网络为 192.168.100.30/24
hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
在master里面连通slave1和slave2。 在slave1里面连通master和slave2。
在slave2里面连通master和slave1。
ssh-keygen -t rsa
然后一直回车确认
会在/root/.ssh产生id_rsa和id_rsa.pub文件
查看.ssh目录可以看到id_rsa(私钥), id_rsa.pub (公钥)两个文件
如何能在master中对s1和s2进行免密登录?
需要把master的公钥放到s1和s2的authorized_keys文件里
(执行以下步骤即可)
(期间需要输入yes ,和对应机器的密码,看提示自行决定)
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id master
crontab -e
0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
在/opt目录下创建
/module(存放解压或安装好的软件),
/software(tar包等软件包),
目录存放文件
输入命令时可以用tab键补全
tar -zxvf /opt/software/hadoop-2.7.7.tar.gz –C /opt/module/hadoop
tar -zxvf /opt/software/jdk-8u171-linux-x64.tar.gz –C /opt/module/jdk
vi /etc/profile.d/bigdata_env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_162
export PATH=$JAVE_HOME/bin:$PATH
source /etc/profile
#可以查看java的版本
java –version
到此,master中的java配置已经结束了.
scp -r /opt/module/jdk1.8.0_162/ slave1:/opt/module
scp -r /opt/module/jdk1.8.0_162/ slave2:/opt/module
tar -zxvf /opt/sofrware/hadoop-2.7.7.tar.gz -C /opt/module
系统环境配置在master、s1和s2相同,以master 为例。
vi /etc/profile.d/bigdata_env.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.7
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
使变量生效
source /etc/profile
切换到/opt/module/hadoop-2.7.7/etc/hadoop目录下
cd /opt/module/hadoop-2.7.7/etc/Hadoop
hadoop.tmp.dir
file:/opt/module/hadoop-2.7.7/tmp
fs.defaultFS
hdfs://master:9000
hadoop.proxyuser.root.hosts
*
hadoop.proxyuser.root.groups
*
dfs.replication
2
dfs.namenode.name.dir
file:/opt/module/hadoop-2.7.7/tmp/dfs/name
dfs.datanode.data.dir
file:/opt/module/hadoop-2.7.7/tmp/dfs/data
mapreduce.framework.name
yarn
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=${HADOOP_HOME}
mapreduce.map.env
HADOOP_MAPRED_HOME=${HADOOP_HOME}
mapreduce.reduce.env
HADOOP_MAPRED_HOME=${HADOOP_HOME}
export JAVA_HOME=/opt/module/jdk1.8.0_162
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
master
master
slave1
slave2
scp -r /opt/module/hadoop-2.7.7 slave1:/opt/module/
scp -r /opt/module/hadoop-2.7.7 slave2:/opt/module/
hdfs namenode -format
start-all.sh
使用jps查看java进程会看到 如下进程
在master上可看到
NameNode
SecondaryNameNode
ResourceManager
NodeManager
DataNode
在slave1上可看到
NodeManager
DataNode
在slave2上可看到
NodeManager
DataNode