一,Hadoop集群简介
1.1 Hadoop集群整体概述
Hadoop集群包括两个集群:HDFS集群、YARN集群
两个集群逻辑上分离、通常物理上在一起
两个集群都是标准的主从架构集群
Hadoop两种集群内容:
逻辑上分离,物理上合并的理解:
逻辑上分离:两个集群互相之间没有依赖、互不影响
物理上合并:某些角色进程往往部署在同一台物理服务器上
注:MapReduce是计算框架、代码层面的组件 没有集群之说
二,Hadoop集群模式安装(Cluster mode)
2.1 安装地址
安装包,源码包下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/
为什么要重新编译Hadoop源码?
匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO需要调用系统本地库(.sod11),修改源码、重构源码
最好是使用源码包,在本地重新编译一遍,这样会运行的更加稳定,可以使用docker快速编译。
2.2 集群角色规划
角色规划的准责
根据软件工作特性和服务器硬件资源情况合理分配,比如依赖内存工作的NameNode部署在大内存机器上。
角色规划注意事项
资源上有抢夺冲突的,尽量不要部署在一起。
工作上需要配合的,尽量部署在一起。
以三台虚拟机举例:
2.3 服务器基础环境准备工作
给主机修改主机名
vim /etc/hostname
Host映射
vim /etc/hosts
192.168.237.11 master.normaling.cn master
192.168.237.12 Slave1.normaling.cn Slave1
192.168.237.13 Slave2.normaling.cn Slave2
关闭防火墙
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开机自启
配置ssh免密登录
Linux-->网络配置 - wdadwa - 博客园 (cnblogs.com)
集群时间同步
yum -y install ntpdate
ntpdate ntp4.aliyun.com
创建统一工作目录
mkdir -p /usr/local/hadoop/data/ #数据存储路径
mkdir -p /usr/local/hadoop #安装包存放路径
安装jdk1.8并配置好环境。
上传解压Hadoop安装包(Master机器)
cd /usr/local/hadoop/software/ #这个需要我们先把hadoop安装包上传到这个位置
tar -zxvf hadoop-3.3.6.tar.gz
远程拷贝文件到其他机器上(master机器)
scp -r /usr/local/hadoop/hadoop-3.3.6 root@Slave1:/usr/local/hadoop/
scp -r /usr/local/hadoop/hadoop-3.3.6 root@Slave2:/usr/local/hadoop/
2.4 Hadoop安装包目录结结构
2.5 修改hadoop配置文件
官网文档:https://hadoop.apache.org/docs/r3.3.0/
配置文件分为三类:
第一类1个:hadoop-env.sh
第二类4个:
xxxx-site.xml,site表示的是用户定义的配置,会覆盖default中的默认配置。
core-site.xml,核心模块配置
hdfs-site.xml,hdfs文件系统模块配置
mapred-site.xml,MapReduce模块配置
yarn-site.xml yarn模块配置
第三类1个:worker
注:这些配置文件在hadoop目录下的./etc/hadoop里面
简单使用所需修改的地方:(只需要修改master主机即可,后续通过scp命令覆盖)
hadoop-env.sh文件
export JAVA_HOME=/export/server/jdk8
#文件最后添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
workers
master
Slave1
Slave2
分发同步hadoop安装包
cd /export/server
scp -r hadoop-3.3.0 root@Slave1:$PWD
scp -r hadoop-3.3.0 root@Slave2:$PWD
将hadoop添加到环境变量(3台机器)
vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
#别忘了scp给其他两台机器哦cl
hadoop #验证是否配置成功
2.6 Hadoop格式化操作
首次启动HDFS时,必须对其进行格式化操作!
只有第一次才会执行,如果多次执行就相当于多次初始化了!!!
只需要在整个Hadoop集群中的一台机器上执行一次
format本质是初始化工作,进行HDFS清理和准备工作。
命令:
hdfs namenode -format
三,Hadoop集群启停命令,WEB UI
官方提供了两种方式:
手动逐个进程启停:每台机器上每次手动启动关闭一个角色进程,可以精准控制每个进程启停,避免群起群停。
HDFS集群
#hadoop2.x版本命会
hadoop-daemonsh start stop namenode datanode secondarynamenode
#hadoop3x版本命今
hdfs --daemon start stop namenodeldatanodelsecondarynamenode
YARN集群
#hadoop2.x版本命今
yarn-daemon.sh startstop resourcemanagernodemanager
#hadoop3x版本命令
yamn --daemon start stop resourcemanagernodemanager
脚本一键启停
在master上,使用软件自带的shell脚本一键启动。前提:配置好机器之间的SSH免密登录和workers文件。
HDFS集群
start-dfs.sh
stop-dfs.sh
YARN集群
start-yarn.sh
stop-yarn.sh
Hadoop集群
start-all.sh
stop-all.sh
验证是否启动成功:
jps
启动成功效果图:
master:
Slave1:
Slave2:
如果没有出现上述效果,去/usr/local/hadoop/hadoop-3.3.1/logs/文件夹中查看启动日志,哪个进程没有启动就去看哪个日志即可。
或者在每个虚拟机上面都执行一遍启动命令
查看hdfs集群的web UI
配置:hdfs-site.xml里面的dfs.namenode.http-address
默认访问地址:http://namenode的ip:50070
192.168.237.11:9870
YARN集群的WEB UI
配置:yarn-site.xml里面的yarn.resourcemanager.webapp.address
默认访问地址:http://resource manager的ip:8088
192.168.237.11:8088
secondary namenode的WEB UI
配置:hdfs-site.xml里面的dfs.namenode.secondary.http-address
默认访问地址:http://namenode的ip:50090
192.168.237.12:9868
四,Hadoop功能
Shell命令操作:
hadoop fs -mkdir /normaling #创建一个normaling在/目录下
hadoop fs -put zookeeper.out /normaling #从本地上传/normaling文件夹
hadoop fs -ls / #显示hdfs的文件夹
WEB UI
HDFS本质就是一个文件系统,有目录树结构,和Linux类似,分文件,文件夹。