51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1830|回复: 1
打印 上一主题 下一主题

大数据生态系统架构

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-28 16:38:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Hadoop

MapReduce属于Hadoop生态体系之一,Spark属于BDAS生态体系之一。

目前Hadoop有两种版本:Apache和CDH版本。

一、优缺点

Apache版本
CDH版本
Kafka和flume对比

kafka和flume都是日志系统。kafka是分布式消息中间件,自带存储。flume分为agent(数据采集器),collector(数据简单处理和写入),storage(存储器)三部分,每一部分都是可以定制的。
kafka做日志缓存应该是更为合适的,但是flume的数据采集部分做的很好,可以定制很多数据源,减少开发量。所以比较流行flume+kafka模式,如果为了利用flume写hdfs的能力,也可以采用kafka+flume的方式。
Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API。
Kafka:Kafka是一个可持久化的分布式的消息队列。
典型用法:
线上数据->flume->kafka->hdfs->MR离线计算
Spark

Spark算子

Value数据类型的Transformation算子。
Key-Value数据类型的Transformation算子。
Action算子。
Spark模块

Spark core // 核心模块
Spark SQL // SQL
Spark Streaming // 流计算
Spark NLlib // 机器学习
Spark graph // 图计算
Spark Streaming

Spark Streaming是核心Spark API的扩展。
- 数据可以从Kafka、Flume、TCP Socekts等许多资源中获取。可以使用复杂的算法处理。最后,可以将处理过的数据推送到文件系统。

离散流或DStream是有Spark Streaming提供的基本抽象。DStream由一组连续的RDDs表示。
DStream时间窗口。
时间窗口运行Spark Streaming消费过去一段时间(多个批次)内的数据。
Spark SQL和DataFrame

Spark SQL是执行使用基本SQL语法或HiveQL编写的SQL查询。Spark SQL可以从现有的Hive安装中读取数据。
DataFrame是一个分布式数据集,相当于关系数据库中一张表。
DataFrame和RDD的区别

RDD是分布式Java对象的集合。
DataFrame是一种以RDD为基础的分布式数据集,也就是分布式Row对象的集合(每个Row对象代表一行记录)。
加载json数据转为DataFrame算子:

  1. scala> val df=sqlContext.read.json("路径/name.json")
  2. scala> df.show()
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-25 03:58 , Processed in 0.062917 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表