Hadoop集群搭建
说明:本文使用三台虚拟机来搭建hadoop集群。虚拟机系统版本为centos 7,hadoop版本为2.7.2。文中主要介绍虚拟机的安装、虚拟机的网络配置以及hadoop集群的搭建。
1 虚拟机安装
新建虚拟机hadoop101
建议修改虚拟机名称和存放位置。关于处理器和内存根据自己电脑配置修改。
放入centos 7的iso文件
配置虚拟机的网络
打开本机电脑的网络设置(右键属性)
打开虚拟机网络设置
开始安装系统
选择自动分区即可
设置root用户的密码,不需要创建其他用户
安装完成后点击重启,使用root用户和密码即可登录系统,一台虚拟机安装完毕。
从已安装的虚拟机中克隆另外两台虚拟机
创建链接克隆和完整克隆都可以,本文为了节省空间创建链接克隆(被克隆的虚拟机不能删除,否则克隆体会失效)。
修改名称和位置,不能与上一个虚拟机冲突
以上述方式克隆出一台hadoop103
分别修改三台机器的主机名、配置静态IP以及关闭防火墙
关闭防火墙
systemctl disable firewalld.service //永久关闭防火墙
firewall-cmd --state //重启查看防火墙状态
设置静态IP
1.编辑网卡配置文件指令:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
2.进入文件后修改以下内容并保存:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.101//网卡的IP地址
GATEWAY=192.168.1.2//要与VMnet8中设置一致
DNS1=114.114.114.114
DNS2=8.8.8.8
3.重启服务
service network restart
修改主机名
修改主机名:hostnamectl set-hostname 名字
查看主机名:hostname
三台机器的配置如下
虚拟机1主机名:hadoop101,IP:192.168.1.101
虚拟机2主机名:hadoop102,IP:192.168.1.102
虚拟机3主机名:hadoop103,IP:192.168.1.103
分别将三台机器的IP配置到本机
指令:vi /etc/hosts
在文件中输入:
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103
安装hadoop
准备工作
在每台机器中创建 /opt/software 和 /opt/module 两个文件目录,第一个文件夹用来存放各类压缩包,第二个文件夹用来安装各类组件
安装Java
hadoop依赖于Java,我们首先在每一台机器中安装Java并配置环境
1.将Java安装包拷贝到目标文件夹/opt/software
2.tar -zxvf 压缩包 -C 目标文件夹 //解压文件
3.配置Java环境变量
1)命令:vi /etc/profile
2)在profile文件末尾添加:
#JAVA_HOME
export JAVA_HOME=Java解压路径
export PATH=$PATH:$JAVA_HOME/bin
3)重新加载profile文件命令:source /etc/profile
安装hadoop集群
集群规划
hadoop101 | hadoop102 | hadoop103 |
---|---|---|
NameNode | ResourceManager | SecondaryNameNode |
DataNode | DataNode | DataNode |
NodeManager | NodeManager | NodeManager |
Jobhistory |
将hadoop压缩包解压至/opt/module文件夹下
配置core-site.xml文件(/opt/module/hadoop-2.7.2/etc/hadoop)
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
配置hdfs-site.xml文件(/opt/module/hadoop-2.7.2/etc/hadoop)
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop103:50090</value>
</property>
配置yarn-site.xml文件(/opt/module/hadoop-2.7.2/etc/hadoop)
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
配置mapred-site.ml文件(/opt/module/hadoop-2.7.2/etc/hadoop)
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property>
<!--第三方框架使用yarn计算的日志聚集功能-->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop101:19888/jobhistory/logs</value>
</property>
配置hadoop-env.sh文件(/opt/module/hadoop-2.7.2/etc/hadoop)
export JAVA_HOME=/opt/module/jdk1.8.0_144
编写slaves文件(/opt/module/hadoop-2.7.2/etc/hadoop)
hadoop101
hadoop102
hadoop103
配置环境变量
1)命令:sudo vi /etc/profile
2)在profile文件末尾添加:
#HADOOP_HOME
export HADOOP_HOME=Hadoop解压路径
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
3)重新加载profile文件命令:source /etc/profile
按照上述步骤配置另外两台机器,也可以使用以下命令将hadoop直接发送到另外两台机器。
scp -r hadoop101:/opt/module/hadoop-2.7.2 hadoop102:/opt/module
分别给三台机器配置ssh免密登录(群起hadoop集群需要此配置)
1.生成公钥和私钥(生成一次就可以)(/root/.ssh/id_rsa密钥路径)
命令:ssh-keygen -t rsa //一路回车键
2.将公钥拷贝到需要免密登录的目标机器上(包括本机)
命令:ssh-copy-id hadoop101(目标机器)
3.修改.bashrc文件(/root)
在文件最后面添加source /etc/profile
启动hadoop集群
1)第一次启动需要格式化NameNode(后续启动不要格式化,否则之前数据找不到)
命令:[root@hadoop101 hadoop-2.7.2]# bin/hdfs namenode -format
2)启动HDFS
命令:[root@hadoop101 hadoop-2.7.2]# sbin/start-dfs.sh
3)启动yarn(需要在ReourceManager机器上启动hadoop102)
命令:[root@hadoop101 hadoop-2.7.2]# sbin/start-yarn.sh
4)启动历史服务器
//需要在配置文件中所指定的服务器启动
命令:[root@hadoop101 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start/stop historyserver
登录网站hadoop101:50070可以看到hadoop集群的情况