一、windows下搭建虚拟机
1. 创建虚拟机01
2. 创建虚拟机02
3. 创建虚拟机03
4. 创建虚拟04
5. 创建虚拟05
6. 创建虚拟机06 (根据自己的需求选择配置,我把内存调为了2GB)
7. 创建虚拟机07 (配置完成后启动虚拟机)
8. 创建虚拟机08 (直接按回车后等待安装)
9. 创建虚拟机09
10. 创建虚拟机10 (选择虚拟机语言)
11. 创建虚拟机11(选择安装位置和开启网络地址)
12. 创建虚拟机12 (配置用户名密码)
13. 创建虚拟机13 (测试网络)
14. Window下按Ctrl+Shift+esc,确认VMware服务全部开启
测试一下
二、 虚拟机配置
1. 修改主机名
vi /etc/hostname # 主机 master
2. 设置静态IP,把IP地址固定
vi /etc/sysconfig/network-scrpit/ifcfg-ens33 修改网络配置
systemctl restart network 重启网络,使修改生效
接下来 slave1 和 slave2 分别设置为192.168.72.101、192.168.72.102
3. 关闭防火墙,并禁止开机启动
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁止开机启动
systemctl status firewalld 检查防火墙运行状态
4. 配置hosts
打开主节点的hosts文件,要将文件的前两行注释掉 (注释当前主机的信息)并在文件中添加所有hadoop集群的主机信息。
vi /etc/hosts
192.168.72.100 master
192.168.72.101 slave1
192.168.72.102 slave2
保存之后,将主节点的hosts分别拷贝到其他两个子节点
scp /etc/hosts root@192.168.72.101:/etc/
scp /etc/hosts root@192.168.72.102:/etc/
三、配置ssh无密码访问
1. 生成公钥密码对
在每个节点上分别执行:
ssh-keygen -t rsa
一直按回车直到生成结束
执行结束之后每个节点上的/root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub
其中前者为私钥,后者为公钥
在主节点上执行:
cp id_rsa.pub authorized_keys
2. 将子节点的公钥拷贝到主节点并添加进authorized_keys
将两个子节点的公钥拷贝到主节点上,分别在两个子节点上执行:
scp ~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa_slave1.pub
scp ~/.ssh/ id_rsa.pub root@master:/~/.ssh/id_rsa_slaver2.pub
然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去
主节点上执行:
cat id_rsa_slave1.pub >> authorized_keys
cat id_rsa_slave2.pub >> authorized_keys
最后测试是否配置成功
在master上分别执行
ssh slave1
ssh slave2
能正确跳转到两台子节点的操作界面即可,同样在每个子节点通过相同的方式登录主节点和其他子节点也能无密码正常登录就表示配置成功。
这里的配置方式可以有多种操作步骤,最终目的是每个节点上的/root/.ssh/authorized_keys文件中都包含所有的节点生成的公钥内容。
3. 将主节点的authorized_keys文件分别替换子节点的authorized_keys文件,主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置
scp authorized_keys root@slaver:/root/.ssh/
scp authorized_keys root@slave2:/root/.ssh/
四、安装jdk和hadoop及配置
1. 安装jdk
1. 卸载jbk
查看系统已经安装的jdk
rpm -qa|grep jdk
卸载jdk:
rpm -e --nodeps java-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64
2. 安装jdk
所有软件都安装在 /usr/local 目录下
上传 jdk 到 master 下的 /root
解压 jdk 到当前目录
tar -xvf jdk_xxxxx
移动到 /usr/local/jdk 目录中
mv jdk1.8.0_141/ /usr/local/jdk
配置环境变量
vi /etc/profile
追加
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
刷新环境变量
source /etc/profile
检查 jdk 是否安装成功
java –version
2. 安装hadoop
上传 hadoop 到 master 下的 /root
解压 hadoop 到当前目录
tar -xvf hadoop_xxxx
移动到 /usr/local/hadoop 目录中
mv hadoop-2.7.3 /usr/local/hadoop
配置环境变量
vi /etc/profile
追加
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
刷新环境变量
source /etc/profile
检查 hadoop 是否安装成功
hadoop version
3. 配置hadoop
进入 hadoop 安装目录下的 /usr/local/hadoop/etc/hadoop 目录
配置 core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml slaves
3.1 配置 core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>tmp.dir</name>
<value>/usr/local/hadoop/hdfs</value>
</property>
3.2 配置 hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdfs://master:50090</value>
</property>
3.3 配置 hadoop-env.sh
修改第 25 行的 JAVA_HOME 为 jdk 安装目录
export JAVA_HOME=/usr/local/jdk
3.4 配置 yarn-env.sh
解注释第 23 行,修改为 jdk 安装目录
export JAVA_HOME=/usr/local/jdk
3.5 配置 yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
3.6 配置 mapred-site.xml
生成 mapred-site.xml 文件
mv mapred-site.xml.template mapred-site.xml
<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>
3.7 配置 slaves 文件
删除 localhost
增加
master
slave1
slave2
3. 8 在 master 执行下列命令,把配置好的文件发送到 slave1 和 slave2
scp -r /usr/local/jdk/ root@slave1:/usr/local/
scp -r /usr/local/jdk/ root@slave2:/usr/local/
scp -r /usr/local/hadoop/ root@slave1:/usr/local/
scp -r /usr/local/hadoop/ root@slave2:/usr/local/
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile
分别在 slave1 和 slave2 执行下列命令
source /etc/profile
java -version
hadoop version
4. 初始化 hadoop 集群
在 master 上执行命令格式化集群
hdfs namenode -format 不允许多次执行
出现 name has been successfully formatted 表明成功
不允许多次格式化,会导致集群无法启动
如果出错:
1. 修改配置文件
2. 删除 三个主机上的 上的 /usr/local/hadoop/hdfs 文件夹
3. 使用 scp 命令把修改的内容发送到 slave1 和 salve2 下,时刻保持 3 个虚拟机的配置文件是一致的
4. 重新格式化
在 master 启动 hadoop 集群
start-dfs.sh
验证集群是否正常
分别执行 jps 命令,包含以下内容即正常
master:
NameNode
SecondaryNameNode
slave1 和 slave2:
DataNode
访问:http://master的ip:50070
5. 关闭集群
第一种:
stop-yarn. sh (jps后如果有yarn的话就得先关yarn)
stop-dfs.sh
第二种:
stop-all.sh (直接全关掉)
切记:关虚拟机前先关闭 hadoop 集群,不然可能会导致集群的崩溃
五、大数据所需软件(版本无冲突)
链接:https://pan.baidu.com/s/1RyJ2I4wUlVxgaGJXtIsBNw
提取码:rrzz
复制这段内容后打开百度网盘手机App,操作更方便哦