1.今天分享一下之前搭建hadoop完全分布式时整理的干货,话不多说。
2.来看一下搭建规划
(1) Hadoop分布式集群规划
机器名(hostname) 机器IP 用途 描述:
node1 192.168.1.xxx 主节点 64位CentOS7,jdk1.8
node2 192.168.1.xxx 从节点1 64位CentOS7,jdk1.8
node3 192.168.1.xxx 从节点2 64位CentOS7,jdk1.8
3 实验描述
本实验以3个节点的集群为例,详细介绍Hadoop完全分布式集群搭建过程。
4 实验步骤
4.1 Hadoop完全分布式集群搭建步骤
(1) 集群中每个节点关闭防火墙
查看防火墙状态的命令:systemctl status firewalld
关闭防火墙的命令:
systemctl stop firewalld
systemctl disable firewalld
(2) 集群中每个节点关闭selinux
查看selinux状态的命令:sestatus
临时关闭selinux,不用重启机器,命令如下:
setenforce 0
在配置文件中永久关闭,需要重启机器:
vim /etc/sysconfig/selinux
下面为selinux文件中需要修改的元素:
SELINUX=disabled
(3) 修改三个节点主机名分别为node1、node2和node3,并配置主机名和ip地址的映射
(4) 配置SSH免密码登录
先每个节点免密码登陆本机:
执行以下命令产生密钥,位于/root/.ssh目录
ssh-keygen –t rsa
执行以下拷贝命令,创建密钥文件authorized_keys
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
验证:
执行命令:ssh localhost 登录主机
执行命令:exit 退出连接
多个节点两两之间实现免密码登录
使用ssh-copy-id 命令,将其他节点公钥拷贝到其中一个节点,使该节点的authorized_keys文件中包含其他各节点的公钥。
#ssh-copy-id -i node1
使用scp命令将node1节点的authorized_keys拷贝到其他节点:
#scp /root/.ssh/authorized_keys nodeX:/root/.ssh
测试
#ssh 主机名
(5) 每个节点安装配置JDK1.8
检查JDK是否已安装:java –version
jdk1.8的安装:下载好的jdk安装包放在虚拟机的/share/bigdata/jdk目录下
将安装包拷贝到/usr/local目录下
cp /share/bigdata/jdk/jdk-8u112-linux-x64.tar.gz /usr/local
tar zxvf jdk-8u112-linux-x64.tar.gz //解压jdk
mv jdk1.8.0_112 jdk //文件夹换成短名
设置环境变量:
vim /etc/profile #编辑此文件,增加2行内容
export JAVA_HOME=jdk的安装路径
export PATH=.:$JAVA_HOME/bin:$PATH
**执行以下命令,使设置立即生效**
source /etc/profile
(6) 每个节点安装配置Hadoop
进入hadoop的存放目录,解压hadoop
tar zxvf hadoop-2.7.3.tar.gz #解压安装包
mv hadoop-2.7.3 hadoop #改为短名
设置环境变量:
vim /etc/profile #编辑此文件,增加2行内容
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置解释:
执行以下命令,使设置立即生效
source /etc/profile
修改Hadoop配置文件,这些配置文件都放在/usr/local/hadoop/etc/hadoop目录下(共5个)
1)修改./etc/hadoop/hadoop-env.sh 文件,配置jdk的路径
export JAVA_HOME= jdk实际安装路径
2)修改yarn-env.sh 文件,配置jdk的路径
export JAVA_HOME=jdk实际安装路径
3)修改 core-site.xml文件
fs.defaultFS
hdfs://主节点主机名:8020
hadoop.tmp.dir
/usr/local/hadoop/tmp
4)修改配置文件 hdfs-site.xml
dfs.replication
3
5)修改配置文件 mapred-site.xml
mapreduce.framework.name
yarn
6修改./ etc/hadoop/yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
主节点主机名:8032
yarn.resourcemanager.scheduler.address
主节点主机名:8030
yarn.resourcemanager.resource-tracker.address
主节点主机名:8031
yarn.resourcemanager.admin.address
主节点主机名:8033
yarn.resourcemanager.webapp.address
主节点主机名:8088
将hadoop分发到子节点
scp -r /usr/local/hadoop/ slave1:/usr/local/hadoop
scp -r /usr/local/hadoop/ slave2:/usr/local/hadoop
修改主节点的hadoop安装目录下etc/hadoop/slaves文件,将从节点主机名配置到slaves文件,文件内容如下:
node2
node3
这一步只在主节点修改!!!!!!!!
4.2 配置并启动HDFS
(1) 格式化HDFS
hdfs namenode -format
(2) 启动HDFS并验证
start-dfs.sh
(3)查看HDFS是否启动
jps
通过jps命令查看java进程:如果主节点上启动了NameNode、SecondaryNameNode两个进程,从节点上启动了DataNode进程,说明HDFS启动成功。
访问NameNode Web UI
访问地址:http://localhost:50070/
4.3 配置并启动Yarn+Mpareduce2
启动Yarn+MapReduce2
start-yarn.sh
查看Yarn+MapReduce2是否启动
jps
通过jps命令查看java进程:如果主节点上启动了ResourceManager进程,从节点上启动了NodeManager进程,说明MapReduce启动成功。
访问ResourceManager Web UI
访问地址:http://node1:8088/
执行命令jps查看java进程,运行在主节点的有以下3个:
NameNode,SecondaryNamenode ,ResourceManager
运行在从节点的进程有2个:
DataNode、NodeManager
5 部署总结
Hadoop核心组件HDFS、Yarn+Mapreduce的组成;
Hadoop集群的规划;
Hadoop集群的安装部署过程;
Hadoop集群的启动、关闭、监控等操作。