什么是Hadoop集群?
Hadoop集群由HDFS集群和YARN集群组成,Hadoop集群逻辑上分离,物理上在一起,而是都是标准的主从架构集群
- HDFS集群
- YARN集群
一个Hadoop集群
将所有机器看作是一个整体。
- 逻辑上分离:HDFS和YARN逻辑上没有依赖,处理数据都是分开进行的,不是启动了一方才能启动另一方
- 物理上在一起:NN,DN和RM,NM虽然不是同一个集群的进程,但是在一台机器上
- MapReduce是计算框架,代码层面的组件,没有集群之说
安装Hadoop
采用集群模式安装部署也叫分布式模式安装,在实际中Hadoop软件要运行在多台机器中。
Step1:下载Hadoop安装包
Step2:集群角色规划
Step3:服务器基础环境准备
关闭防火墙
在内网当中,如果把防火墙打开,好多端口都被屏蔽了,那分布式软件之间通信的时候就通信不上。 stop是当前关闭,disable是永久关闭,避免开机时重启防火墙
status检查防火墙状态
命令:
systemctl stop firewalld.service 当前关闭防火墙
systemctl disable firewalld.service 禁止防火墙开启时自动启动
systemctl status firewalld.service 查看当前防火墙的状态
ssh免密登录
正常情况下从一台机器访问另一台机器需要密码,涉及集群启动时,可以直接免密操作,在这里已经设置好了,ssh node1/ssh node2/ssh node3 直接进行登录
集群时间同步
yum -y install ntpdate
ntpdate ntp4.aliyun.com
统一工作目录
在/export/server/下安装软件
在/export/data/下存储数据
在/export/software/下放安装包
Step4:上传安装包,解压安装包
安装JDK
- 上传JDK压缩包:yum install lrzsz -y,然后再通过命令rz,即可选中要上传的文件
- 解压JDK压缩包:tar -zxvf jdk-8u241-linux-x64.tar.gz
- 配置环境变量:
- 重新加载环境变量
source /etc/profile
- 将JDK和配置环境变量的文件传给node2和node3:
scp -r /export/server/jdk1.8.0_241 root@node2:/export/server/
scp -r /export/server/jdk1.8.0_241 root@node3:/export/server/
scp /etc/profile root@node2:/etc
scp /etc/profile root@node3:/etc
- 检查是否有JDK:Java -version
上传Hadoop的安装包
- 通过rz命令选中安装包
- 通过tar命令解压:tar -zxvf 压缩包名
- 通过scp命令传给node2和node3
scp -r /export/server/hadoop-3.3.0 root@node2:/export/server/
scp -r /export/server/hadoop-3.3.0 root@node3:/export/server/
Hadoop的目录
修改配置文件
修改hadoop-3.3.0/etc/hadoop/hadoop-env.sh
修改hadoop-3.3.0/etc/hadoop/core-site.xml 核心配置模块文件
fs.defaultFS hdfs://node1:8020 hadoop.tmp.dir /export/data/hadoop-3.3.0 hadoop.http.staticuser.user root hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups * fs.trash.interval 1440 修改hdfs-site.xml文件
dfs.namenode.secondary.http-address node2:9868 修改mapred-site.xml文件
mapreduce.framework.name yarn mapreduce.jobhistory.address node1:10020 mapreduce.jobhistory.webapp.address node1:19888 yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.map.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.reduce.env HADOOP_MAPRED_HOME=${HADOOP_HOME}
修改yarn-site.xml文件
yarn.resourcemanager.hostname node1 yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false yarn.log-aggregation-enable true yarn.log.server.url http://node1:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800 修改workers文件
192.168.88.151 192.168.88.152 192.168.88.153分发同步Hadoop的安装包
将Hadoop添加到环境变量
格式化操作
在首次启动HDFS时,必须进行格式化操作,仅在第一次启动时,初始化工作,进行HDFS清理和准备工作,通过命令hdfs namenode -format来操作,如果多次format除了造成数据丢失,还会导致hdfs集群主从角色之间互不认识,通过删除所有机器的hadoop.tmp.dir目录重新format解决
启动Hadoop集群
手动逐个进程启停
每台机器上,每次手动启动或关闭一个角色进程,可以精准控制每个程序,避免群起群停
shell脚本一键启停
前提:配置好机器之间的免密登录和workers文件
检测是否启动正常
使用jps命令(用来查看Java进程)
访问HDFS集群的页面
192.168.88.151:9870
访问YARN集群的页面
192.168.88.151:8088
HDFS初体验
创建一个文件夹
hadoop fs -mkdir /itcast上传文件
echo 1 > 1.txt hadoop fs -put 1.txt /
MapReduce+YARN初体验



