虚拟机克隆和网络环境配置
该集群搭建步骤由博主亲测无误,集群搭建过程中出了任何问题都可以留言
集群准备
一、虚拟机克隆
1、虚拟机关闭状态下右键点击虚拟机选择克隆
2、选择创建完整克隆,定义虚拟机名称和路径
3、点击完成等待虚拟机克隆 至少克隆两台虚拟机
二、克隆机网络设置
1、两台克隆机分别重新生成MAC地址
具体步骤可见于上一篇的系统准备 上一篇博客
2、两台克隆机分别使用root账户登录并设置静态IP
nano /etc/sysconfig/network-scripts/ifcfg-网卡名
修改网络静态IP (三台虚拟机的网络静态IP不可重复)
具体修改规则见 上一篇博客
service network restart 重启网络服务使修改生效
3、两台克隆机分别使用root账户登录并修改机器名
nano /etc/hostname 三台主机名不重复即可
4、三台虚拟机实现虚拟机互访
三台虚拟机 nano /etc/hosts,最后一行添加
192.140.90.211(网络静态IP) a1(主机名) a1.localdomain
*.*.*.* a2 a2.localdomain
*.*.*.* a3 a3.localdomain
reboot重启使修改生效
三、三台虚拟机免密登陆
1、配置sudo免密码
/etc/sudoers
bda ALL=(root)NOPASSWD:ALL
2、三台虚拟机上使用ssh-keygen产生公钥私钥对(直接回车全部不用输入)
ssh-keygen
3、分别推送到其他两台虚拟机上
ssh-copy-id a2
ssh-copy-id a3
4、分别测试免密登录
ssh 主机名
四、关闭防火墙
1、关闭linux安全子模块
nano /etc/sysconfig/selinux 编辑
SELINUX=disabled
source /etc/sysconfig/selinux 重新加载生效
2、systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 设置开机不启动防火墙(需要先关闭)
ps -ef|grep firewall 查看防火墙是否关闭
service iptables status 查看iptables状态
集群搭建
一、Hadoop安装和环境变量的配置
1、解压到指定目录 (三台虚拟机只解压其中的一个,配置好xml文件在推送到其他虚拟机)
tar -zxf /opt/software/hadoop-2.7.7.tar.gz -C /opt/modules/
2、环境变量设置
nano /etc/profile 编辑 末尾追加
#HADOOP_HOME
export HADOOP_HOME=/opt/modules/hadoop-2.7.7
export PATH=
P
A
T
H
:
PATH:
PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile 编译生效
3、hadoop配置文件 (配置文件不建议手写,不然后果很严重)
共8个配置文件,切勿遗漏
core-site.xml
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://a1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/full/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<!--设置dfs副本数,不设置默认是3个-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--设置secondname的端口-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>a2:50090</value>
</property>
</configuration>
mapred-site.xml.template 重命名为mapred-site.xml
<configuration>
<!--指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
slaves 三台虚拟机的主机名
a1
a2
a3
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!--reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>a2</value>
</property>
</configuration>
hadoop-env.sh、mapred-env.sh、yarn-env.sh
把export JAVA_HOME的注释去掉并修改为正确的jdk路径
4、配置好的hadoop文件推送到其他两台
scp -r 目录/文件 a3(主机名):路径
scp -r /opt/modules/ a3:/opt/modules/
二、集群启动与测试
1、namenode初始化(第一次启动需要namenode初始化)
hdfs namenode -format 集群初始化命令
2、集群启动
start-dfs.sh (namenode上启动)
start-yarn.sh (一定要在yarn.xml指定的节点上启动,重中之重,不然resoumanager启动不来)
3、jps查看进程 (进程缺一不可)
分别对应namenode、secondnode、datanode上的进程
4、集群样例测试
hadoop jar /opt/modules/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 2 2
集群常见错误及解决方法:
1、如果出了集群安全模式的报错
hdfs dfsadmin -safemode leave 关闭安全模式
2、出现连接不上或者连接超时的问题,大概率是resourcemanager没有启动起来的问题
注意查看自己的进程,如果resourcemanager进程没有启动起来,重新启动即可(指定的节点上启动)
3、对于其他问题,一般来说只要配置文件没什么问题,对namenode再次初始化后都可以修复
除第一次初始化外,后序的namenode初始化都需要先清空core-site.xml里指定的目录下的所有文件