设计原则:移动计算,而不是移动数据
计算层:Map/Reduce
调度层:YARN
数据层:HDFS
这三层之间没有必然的依赖性,只是经常这么搭配,而且都是hadoop那个包里一起安装的,三层都可以独立运行,某一层或者某两层换成其他的而另外两层或者一层不换也是可以的
YARN 调度系统
ResourceManager
NodeManager
HDFS 存放数据
NameNode
DataNode
当有一个计算任务到来的时候,首先访问YARN的ResourceManager然后将计算分发给一个或多个NodeManager,由NoadManager执行真正的计算
YARN和HDFS都是主从结构,都是为大数据处理来服务的
通常情况下:
YARN的NodeManage和HDFS的DataNode分别部署在同一台机器上(计算和数据在同一台机子上)
YARN的ResourceManager和HDFS的NameNode通常会各自占用一台机器(因为两个都很废内存)
但这并不是必须的,
ResourceManager可以和NameNode可以在同一台机器上
NodeManager也可以和DataNode也可以在不同的机器上
YARN和HDFS在逻辑上是独立的,可以相互配合也可以独立使用,各自都可以单独启动,只不过他们两个都在Hadoop下