如何设计hadoop架构

 

 

0 脑子里要有货:

 

   a)这个框架是什么东西
   b) 这个架构的特点

   c) 这个框架适用于哪些业务场景,是基于何种具体问题被提出来的
   d) 框架之间的搭配

   e) 脑子中有一套设计架构,不合适业务的时候知道根据b) c)去选择哪个框架来替代

 

平时主动思考如果你出去面试, 面试官问你:(培养创造性意识 不要一直在ctrl界混)

如果让你设计分布式计算 存储框架,你应该考虑哪些点??

 

 

 

1 如下是离线处理架构设计:

 

1.0) 图:



 

 

 1.1) 解说:

 

a) 每一个框架都要分布式部署,解决 1)单点 2)负载均衡问题

b) zookeeper使用说明:

因为zookeeper分布式下,挂掉哪个节点都不会对整个集群造成任何影响,而hdfs集群 hive集群 hbase集群则或多或少都会对别的节点造成影响,因此zookeeper最适合做配置管理,和个框架之间相互连接这种工作。

如果集群在5-7台以上的话,zookeeper至少分配3或者5或者7个节点(奇数个)。
zookeeper和Hadoop是没有关系的因此放在哪台机器上都行,但是考虑到Hadoop集群会跑任务,

因此建议zookeeper节点放在负载低的节点上

 

c) flume使用说明:

节点部署在业务服务器上,好处在于:作为代理可以直接和业务数据库打交道,flume节点要看业务节点多少而定,但是没必要做到一对一, 一个flume节点可以对应多个业务节点,直接部署在业务数据库服务器上就行

 

d) hbase使用说明:

 hbase的数据存在hdfs上,所以和hdfs主从式配置保持一致就行了,好处在于hbase可以就近读取hdfs的数据

 

e) hbase使用说明:

hive作为客户端,可以随便放在一台机器上, hive经常被作为客户端来使用,当然hive可以作为服务端使用,但是使用频率不高。

 

 

 

c) flume使用部署图:

 

 

 

 2 如下是实时处理架构设计:

 

 

离线计算 + 实时计算 + 消息队列 + 高速缓存 =   实时系统