创建虚拟机,主机和从机
环境搭建:3台虚拟机,master为主,其他为从机,虚拟机系统为CENTOS7
主机 | IP |
---|---|
master | 192.168.206.61 |
slave | 192.168.206.62 |
slave1 | 192.168.206.63 |
创建虚拟机操作需求
- 3台虚拟机能够互相ping通,主机无密码ping其他两台
- 能够ping通外网,在Xshell5中操作
- 在windows中浏览器查看hadoop集群
开始安装
在这里就可以编辑IP地址
先点击配置,选择IPv4,手动
红框内对应信息可以在VM中右上角查看,DNS 个人实际填写。对应信息在下图有介绍
红框括住的就是编辑内容
先点击NAT模式,选择NAT模式,把最后一个‘使用本地’的框取消
看图片右侧的文本框内(网路不做解释):
名称 | 内容 | 描述 |
---|---|---|
子网IP: | 192.168.206.0(每个人不同) | 填入上图地址内。前三段不变最后一段自己定后面还会提起!! |
子网掩码 | 255.255.255.0(每个人不同) | 对应填入上图中的位置 |
网关 | 192.168.206.2 (每个人不同) | 对应填入上图中的位置 |
点击完成下一步
设置root,和创建用户
继续等待安装,之后重启。重启后
更改hosts映射
vi /etc/sysconfig/network-scripts/ifcfg-ens33
root登陆后执行上面代码
注意如果你是克隆的虚拟机那么每个虚拟机的网卡UUID是一样的,这个不行,所有要删除这个,让它自动在生成一个
重启网络服务 systemctl restart network
虚拟机ping外网
重启后登陆,更改主机名字为master
修改hostnamevi /etc/hostname 删除原有内容添加 hadoop-master 保存退出vi 修改vi /etc/hosts 添加如下图内容
![]()
3台电脑都重复做上面的操作之后重启!
相互 ping 名字应该和如图:
![]()
ping www.baidu.com 可以上网
Xshll5操作虚拟据
master无密码登陆
首先创建 .shh 命令:ssh localhost
两台从机重复操作创建 .ssh
ssh-keygen -t rsa
创建 公钥 密钥
两台从机重复操作
cd .ssh
可以看到公钥 密钥
cat id_rsa.pub >> authorized_keys #将密钥写入另一个文件准备发往其他两台 电脑
此处从机不需要操作
chmod 600 authorized_keys #给权限
scp authorized_keys hadoop@slaver1:~/.ssh
黑体是发往的那个机器,最后是发到电脑的那个文件
在从机的 .ssh 就可以看到发送的密钥
完成后SSH slave1 就可以不用密码
配置环境变量JDK,hadoop
将JDK hadoop上传每一个虚拟机
sudo yum install -y jdk* 安装jdk
tar -xzvf hadoop* 解压
写在同一个配置中:
cd ~
gedit .bashrc #进入配置文件
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin
# Hadoop Environment Variables
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
拿出5个文件在/home/hadoop/hadoop-2.7.3/etc/hadoop
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
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>
slaves把从机的名字写上
yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
关闭防火墙和selinux关闭
su root
systemctl stop firewalld
#关闭selinus
setenforce 0
运行hadoop
hdfs namenode -format #第一次启动要执行格式化,之后启动不用执行这个
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
在master执行jsp显示如下表示成功
3345 NameNode
3529 SecondaryNameNode
3962 JobHistoryServer
3678 ResourceManager
3998 Jps
在从机中执行jsp显示:
3092 DataNode
3306 Jps
3196 NodeManager
在win中的浏览器访问 hadoop集群还应该作一件事,更改hosts文件,它存在于C:\Windows\System32\drivers\etc 目录中
添加内容:
192.168.196.162 master
192.168.196.163 slave1
192.168.196.164 slave2
访问 http://master:50070 查看节点状态
访问http://master:8088/cluster查看任务执行
关闭hadoop集群服务的代码:
stop-dfs.sh
stop-yarn.sh
mr-jobhistory-daemon.sh stop historyserver