您的位置:首页 > 大数据

大数据离线处理和常用工具

2016-04-05 17:46 225 查看

1. 大数据离线处理特点

1) 数据量巨大且保存时间长;

2) 在大量数据上进行复杂的批量运算;

3) 数据在计算之前已经完全到位,不会发生变化;

4) 能够方便的查询批量计算的结果;

不像在线计算当前呈现的各种框架和架构,离线处理目前技术上已经成熟,大家使用的均是: 使用 Hdfs 存储数据,使用 MapReduce 做批量计算,计算完成的数据如需数据仓库的存储,直接存入 Hive , 然后从Hive 进行展现。

2. HDFS

Hdfs 是一种分布式文件系统,和任何文件系统一样 Hdfs 提供文件的读取,写入,删除等操作。Hdfs 是能够很好的解决离线处理中需要存储大量数据的要求。Hdfs和本地文件系统的区别如下:

- Hdfs 不支持随机读写;

- Hdfs 是分布式文件系统,支持数据多备份;

Hdfs 多备份数据存放策略: 第一个副本放在和client所在的node里(如果client不在集群范围内,则这第一个node是随机选取的,当然系统会尝试不选择哪些太满或者太忙的node);第二个副本放置在与第一个节点不同的机架中的node中(随机选择);第三个副本和第二个在同一个机架,随机放在不同的node中。如果还有更多的副本就随机放在集群的node里。

3. MapReduce

MapReduce 是一种分布式批量计算框架,分为 Map 阶段和 Reduce 阶段。 MapReduce 能够很好的解决离线处理中需要进行大量计算的要求。 MapReduce 从出现到现在经历了第一代 MapReduce v1 和 第二代 MapReduce Yarn。

Yarn 框架相对于老的 MapReduce 框架有以下优势:

1) 减小了 JobTracker的资源消耗,之前JobTracker 既负责资源分配,也负责任务监控,Yarn 将这两项任务分别交给了 ResourceManager 和 ApplicationMaster ,减少了之前 JobTracker 单点失败的风险;

2) MRv1 将资源分别 Map slot 和 Reduce slot 而且相互之前不能使用,Yarn将资源分别CPU、内存,相互之前能够通用,更加灵活也更加合理;

3) 现在大部分使用 YARN

3.1 Yarn 框架的组件功能

- ResourceManager: 负责资源的调度,由两个组件组成: 调度器和应用管理 ApplicationsManager (ASM) ;

- ApplicationsManager (ASM) :主要用于管理AM;

- ApplicationMaster (AM) :主要用于管理其对应的应用程序,如MapReduce作业,DAG作业等;

- NodeManager (NM):主要用于管理某个节点上的task和资源;

- Container :容器中封装了机器资源,如内存,CPU, 磁盘,网络等,每个任务会被分配一个容器,该任务只能在该容器中执行,并使用该容器封装的资源

4. Hive

Hive 是一种数据仓库,Hive 中的数据存储于文件系统( 大部分使用 Hdfs),Hive 提供了方便的访问数据仓库中数据的 HQL 方法,该方法将 SQL 翻译成MapReduce。 能够很好的解决离线处理中需要对批量处理结果的查询。

Hive是对MapReduce和HDFS的高级封装,本身不存储表等相关信息。

Hive 将元数据存放在 metastore 中, Hive 的 metastore 有三种工作方式:

1) 内嵌Derby方式: 在同一时间只能有一个进程连接使用数据库;

2) Local方式 : 使用本地 Mysql 数据库存储元数据;

3) Remote方式: 使用远程已经搭建完成的 Mysql 数据库存储元数据;(实际使用此方式)

4.1 Hive架构

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: