[关闭]
@tsing1226 2016-02-18T15:48:44.000000Z 字数 2534 阅读 804

大数据框架介绍

HDFS(Hadoop Distributed File System)

HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。

Hadoop HA

Hadoop是分布式文件系统、采用主从(master/slave)架构。Hadoop包括NameNode、DataNode组件,NameNode存储的是镜像文件fsimage和日志文件edits,DataNode存储数据。当客户端访问DataNode,
hadoop高可用性采用两个NameNode保证hadoop的高可用性,一个Active、一个Standby。

HDFS HA采用两个NameNode节点,能够保证高可用性的。NameNode是存储元数据的,当客户端读/写文件时,都是通过NameNode决定客户端访问哪个DataNode。
HDFS HA配置有四点要点:

  • 保证双NameNode节点能够时时同步一致,NameNode启动时先要读取edits文件,所以要保证日志文件的安全性,将采用日志文件节点分布式管理日志文件,搭建JournalNode 节点。

  • NameNode在启动时,等待DataNode向NameNode注册,并时时接受DataNode心跳和块的报告,所以报保证两个NameNode节点能够时时接受到DataNode心跳和块的报告。

  • 当客户端访问NameNode时,如何判断两个NameNode的active和standby,主要是通过代理(Proxy)的方式来帮助客户端访问哪个节点。

  • 如何保证在任意时刻,集群中只有一个NameNode对外提供服务呢,此时需要隔离机制。一般采用ssh无密钥隔离机制

HDFS HA架构图

MapReduce编程

MapReduce是并行计算框架,分为两部分Map任务和Reduce任务,采用分而治之的思想,map任务是分,reduce就是合,以wordcount为例,它的执行流程MR可以分为5个部分。

1、输入数据 处理哪部分数据
2、map对数据的处理

数据来自分布式文件系统,并按块存储,默认情况下,一个块就是一个map任务处理,资源充分的情况下,有多少块就有多少个map任务执行。map处里完数据就把数据输出,首先,根据多少reduce任务分map处理的数据的哪一部分由哪一部分reduce处理,map将最终结果输出到本地文件系统中

3、shuffle

数据从map task输出到reduce task输入的这段过程,Shuffle过程是MapReduce的核心,在此进行分区、排序、合并、压缩、分组。

4、reduce

map完成后,reduce就会从map任务输出数据拷贝到自己需要处理的数据,reduce将map任务获得的数据进行合并、排序、分组。

5、output

输出reduce任务的处理数据部分。

Flume

Flume是一个分布式、可靠性能够收集、聚合移动大数据日志文件的高效可用服务。
基于流式数据流简单的架构,健壮性和容错性使得可用机制和许多故障转移恢复机制。
使用简单的数据扩展模型可以在线分析应用。

Zookeeper(分布式协作服务)

解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

Sqoop(数据同步工具)

Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。
数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

Hive(基于Hadoop的数据仓库)

由facebook开源,最初用于解决海量结构化的日志数据统计问题。
Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。
通常用于离线分析。

Hbase(分布式列存数据库)

HBase是Hadoop数据库,是分布式、可扩展、大表存储,HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

数据模型:Schema-->Table-->Column Family-->Column-->RowKey-->TimeStamp-->Value

hue(Hadoop可视化工具hue)

hue是hadoop数据分析的web可视化接口,hue应用能够将hadoop的多个组件集成在一起显示在web界面。

oozie是服务于hadoop生态系统的工作流调度工具,job运行平台是区别于其他调度工具的最大的不同。但其实现的思路跟一般调度工具几乎完全相同。

spark分布式海量数据计算框架、快速、通用

引擎:海量数据处理和分析

Spark与mapreduce的区别

1、spark比mapreduce快:

Spark基于内存的计算框架,把数据加载到内存中,然后数据在内存中进行计算。
Mapreduce计算时从硬盘上读取数据,计算的结果写会硬盘。

2、Spark

Spark有DAG图(有向无环图,依赖关系),spark已经做好了
Mapreduce也有依赖关系,但没有spark做的好

项目经验

离线日志分析

MR:数据分析
SQL:hive、spark SQL、phoniex
HBase:存储数据、MR/hive分析

在线实时查询(案例【气象、基站】)

HBase:实时查询
Mahout:推荐,基于用户或者产品

在线实时分析

storm:实时流式统计
spark streaming:实时统计

面试技巧

自信

态度:谦虚、谨慎
能力:实事求是、“三大能力”

谨言慎行

“扣题”:调理清晰、脉络明确
引入熟悉、举例场景、剖析如何解决

细节决定成败

如何融入公司

谦虚:向前辈学习,无论是技术还是交流

企业人:

正能量

勤奋努力

乐于改变

有责任心、敢于承担

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注