Hadoop是一个适合海量数据的分布式存储和分布式计算的平台。
hadoop是一个统称,目前hadoop主要包含三大组件
hdfs:是一个分布式存储框架,适合海量数据存储
主从结构
主节点 ( namenode ),最多可以有2个,实际上真正使用的只有1个,另一个为主节点的备份
从节点,有多个:datanode
namenode负责
接收用户操作请求
是用户操作的入口,维护文件系统的目录结构,称作命名空间
datanode负责
- 存储数据
mapreduce:是一个分布式计算框架,适合海量数据计算
主从结构
主节点( MRAppMaster ),只有一个
从节点,就是具体的task
MRAppMaster负责
接收客户端提交的计算任务
把计算任务分给NodeManager的Container中执行,即任务调度
Container是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)
Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中的资源调度器异步分配给ApplicationMaster
Container的运行是由ApplicationMaster向资源所在的NodeManager发起的监控Container中Task的执行情况
Task负责
- 执行任务
yarn:是一个资源调度平台,负责给计算框架分配计算资源
主从结构
主节点( ResourceManager ),最多可以有2个
从节点( NodeManager ),有很多个:
ResourceManager负责
集群资源的分配与调度
MapReduce、Storm、Spark等应用,必须实现ApplicationMaster接口,才能被RM管理
NodeManager负责
- 单节点资源的管理
Hadoop 集群的搭建方法
linux 配置
修改主机名
首先打开文件 /etc/sysconfig/network 其文件内容如下
1 | NETWORKING=yes |
其中,HOSTNAME 代表的就是主机名。建议按照节点的功能设置主机的名称,例如 master,node1 之类的
配置主机名 ip 映射
打开 /etc/hosts 文件,文件内容如下:
1 | 192.168.75.110 centos |
文件格式为 主机 ip 地址+空格+主机名
通过上述映射可以将主机名和主机的 ip 地址连接起来,进行连接时,输入主机名就能进行 ip 连接,方便的不行
关闭防火墙
1 | # 关闭防火墙 |
配置 ssh 免密登录
由于 Hadoop 需要频繁的在不同的节点之间传输文件,所以需要配置免密登录。配置免密登录的步骤如下:
主节点执行命令
ssh-keygen -t rsa
,产生密钥,一直回车即可将密钥拷到所有子节点,命令如下
ssh-copy-id -i +主机名