一、大数据的计算模式:
不同的计算模式需要使用不同的产品
-
批处理模式:一堆数据一起做批量处理,不能满足实时性要求。
如MapReduce,Spark(实时性比MapReduce好,可以做迭代计算,MapReduce不能) -
流计算:针对流数据(日志流、用户点击流)的实时计算,需要实时处理。只能用流计算框架做。
流计算代表产品:S4+Storm+Flume -
图计算:如社交网络数据,地理信息数据等。MapReduce也能处理,但效率不高。
代表软件:Google Pregel -
查询分析计算:交互式查询,要求实时性高
代表产品:Google Dremel、Hive、Cassandra、Impala
二、大数据处理架构Hadoop
Hadoop1.0:
- 分布式文件系统HDFS:解决分布式存储
- 分布式并行框架MapReduce:解决分布式处理
Hadoop2.0:
-
HDFS新技术(原来可扩展性不好):
- NN Federation,多个名称节点,分区管理(不能解决单点失效问题,彼此联盟关系,非备份关系,需要为每个名称节点部署备份节点)
- HA(高可用性),热备份的NameNode,防止单点失效。
-
YARN负责资源调度管理
MapReduce1.0既是计算框架,也是资源调度管理框架,MapReduce2.0是纯粹的计算框架。YARN框架可以支持MapReduce、Storm、Spark等。
Hadoop项目结构:
- MapReduce:离线计算,数据在磁盘
- Tez:DAG计算,有向无环图安排计算任务先后顺序
- Spark:内存计算,数据在内存
- Hive:数据仓库,企业用于数据分析,SQL转MapReduce
- Pig:轻量级大规模数据分析
- Oozie:管理作业执行先后顺序
- Zookeeper:分布式锁,集群管理
- HBase:随机读写,非关系型分布式数据库,实时的
- Flume:日志收集
- Sqoop:传统关系型数据库和Hadoop之间数据导入导出
参考资料:https://blog.csdn.net/zjlamp/article/details/82778617