AWS 数据分析服务(十)

Amazon Kinesis

概念

  • 处理AWS上大量流数据的数据平台
  • Kinesis Streams 用于搜集数据,Client Library 用于分析后的展示
  • 构建用于处理或分析流数据的自定义应用程序
  • 可以支持从数十万中来源捕获和存储TB级的数据,如网站点击流、财务交易、媒体馈送、IT日志等
  • 使用IAM限制用户和角色对Kinesis的访问,使用角色的临时安全凭证可以提高安全性
  • Kiesis只能使用SSL加密进行访问

Kinesis组件

Kinesis Data Firehose

  • 加载大量流数据到AWS服务中
  • 数据默认被存储在S3中,从S3还可以再被进一步转存到Redshift
  • 数据也可以被写入到ElaticSearch中,并且同时备份到S3

Kinesis Data Streams:

  • 自定义构建应用程序,实时分析流数据
  • 利用AWS开发工具包,可以实现数据在流中移动时仍然能被处理,从而接近实时
  • 为了接近实时,处理的复杂度通常较轻
  • 创建者 Producer 持续将数据推送进Data Streams
  • 数据在DataStream 由一组组分片(Shards)组成,每个分片就是一条记录,通过不断分片实现几乎无限的扩展能力
  • 使用者 Comsumer 会实时对Data Steams的内容进行处理,并且将结果推送到不同的AWS服务
  • 数据在Stream中是临时的,默认存储24小时,最大可以设置为7天

Kinesis Data Analytics

  • 使用标准SQL实时分析流数据

Kinesis Video Streams

  • 捕获、处理并存储视频流用于分析和机器学习

适用场景

  • 大量的数据摄取
  • 海量流数据的实时处理

Elastic MapReduce ( EMR)

概念

  • 提供完全托管的按需 Hadoop 框架
  • 启动EMR集群的必选项
  • 集群节点的实例类型
  • 集群中的节点数量
  • 希望运行的Hadoop版本
  • Hadoop集群选择存储类型至关重要,主要因素是集群是持久的还是瞬态的
  • 需要持续运行并分析数据的集群是持久集群
  • 按需启动并在完成后立即停止的集群为瞬时集群
  • 默认不限制EMR集群数量,但限制用于EMR节点总数为20个,可申请扩展
  • 可以从S3以及其他任何位置摄取数据
  • Hadoop 日志文件默认存储在S3中,且不支持压缩
  • EMR支持竞价实例
  • EMR需要在一个可用区部署,不支持跨可用区部署,通常建议选择数据所在的区域
  • 集群启动通常在15分钟内可以开始进行数据处理
  • EMR允许使用磁性、SSD和 PIOPS SSD三种EBS卷。
  • 适用场景
    • 日志处理,点击流分析,基因学和生命科学

文件系统

HDFS

  • Hadoop标准文件系统
  • 所有数据都在多个实例中被复制保证持久性
  • HDFS可以利用EBS存储确保在关闭集群时不丢失数据
  • 非常适合于持久的集群

EMRFS

  • HDFS在AWS S3上的实现,将数据保存在S3中
  • 可以使用所有Hadoop生态的工具系统
  • 非常适合于瞬时集群

EMR NoteBooks

  • EMR Notebooks 提供基于 Jupyter Notebook 的托管环境,可供数据科学家、分析员和开发人员准备数据并使其可视化、与同伴协作、构建应用程序,并使用 EMR 群集执行交互分析。
  • 您可以使用 EMR Notebooks 构建 Apache Spark 应用程序,并且轻而易举地在 EMR 群集上运行交互查询。多个用户可以直接从控制台创建无服务器笔记本、将其挂载到现有的共享 EMR 群集,或直接从控制台提供至少 1 个节点的并立即开始使用 Spark 进行实验。

安全设置

  • EMR默认将设置两个EC2安全组: 主节点和从属节点
    • 主安全组
      • 定义一个端口用于与服务的通信
      • 打开的SSH端口,允许启动时指定的SSH密钥进入实例
      • 默认不允许被外部实例访问,但可设置
    • 从属安全组
      • 只允许与主实例进行交互
  • 默认使用SSL向S3传送数据
  • 可以支持对集群进行标记,最多10个标记,但不支持基于标记的IAM许可。
  • 使用IAM权限和角色控制对EMR的访问和控制
  • 可以设置允许非Hadoop用户将作业提交至集群的权限
  • 可以将EMR放入到私有VPC中实现额外的保护

AWS Data Pipeline

概念

  • 实现在指定时间间隔,在AWS资源和本地数据之间可靠地处理和移动数据
  • 您可以快速轻松地部署管道,无需分心管理日常数据操作,从而让您能够集中精力从该数据获取所需的信息。您只需为您的数据管道指定所需数据源、时间表和处理活动即可。
  • 与SWF相比,Data Pipeline 专门设计用于简化大多数数据驱动工作流程中常见的特定步骤。例如:在输入数据符合特定准备就绪标准后执行活动,轻松在不同数据存储之间复制数据,以及调度链接的转换。这种高度具体的侧重点意味着 Data Pipeline 工作流定义可以快速创建,并且无需代码或编程知识。
  • 定期访问存储数据,并对数据进行大规模处理,并且将结果转换为AWS服务

  • 利用Pipeline的定义安排和运行任务,可以每15分钟,每天,每周运行等
  • 数据节点是pipeline流水线读取和写入数据的位置,可以是S3,MySQL,Redshift等AWS或本地存储
  • Pipeline通常需要配合其他服务执行预定义的任务,如EMR,EC2等,并在执行完成后自动关闭该服务
  • Pipeline在编排的过程支持条件语句
  • 若某项活动失败,默认会不断重试,所以需要配置限制重试次数或未成功时采取的行动
  • 每个账户默认支持100个管道,单一管道中可以拥有100个对象,可以申请扩展

属性

  • 管道
    • 即 AWS Data Pipeline 资源,其中包含由执行业务逻辑所需的数据源、目的地和预定义或自定义数据处理活动所组成的关联数据链的定义。
  • 数据节点
    • 数据节点代表您的业务数据。例如,数据节点可以表示特定的 Amazon S3 路径。AWS Data Pipeline 支持表达式语言,使其更容易引用常态生成的数据。
  • 活动
    • 是 AWS Data Pipeline 代表您启动的操作,它是管道的一部分。示例活动包括 EMR 或 Hive 作业、复制、SQL 查询或命令行脚本。
  • 前提条件
    • 前提条件是指成熟度检查,可选择性地将其关联到数据源或活动。如果数据源具有前提条件检查,那么必须先成功完成检查,然后才能启动任何需要用到该数据源的活动。如果活动具有前提条件,那么必须先成功完成检查,然后才能运行活动。
  • 时间表
    • 定义管道活动运行的时间和服务预计的可使用数据的频率。可以选择时间表结束日期,在此时间后,AWS Data Pipeline 服务不执行任何活动。
    • 当您将时间表与活动关联起来后,活动就会按时间表运行。当您将时间表与数据源关联起来,就表示您告诉 AWS Data Pipeline 服务,您期望数据会按照该时间表更新。

适用场景

  • 非常适用于常规批处理的ETL流程,而不是连续数据流

Amazon Elastic Transcoder

  • 一种在线媒体转码的工具
  • 将视频从源格式转换到其他的格式和分辨率,以便在手机、平板、PC等设备上播放
  • 一般来说,将需要转码的媒体文件放在AWS S3的存储桶上,创建相应的管道和任务将文件转码为特定的格式,最后将文件输出到另一个S3的存储桶上面去。
  • 也可以使用一些预设的模板来转换媒体格式。
  • 可以配合Lambda函数,在有新的文件上传到S3后触发函数代码,执行Elastic Transcoder并自动进行媒体文件的转码。

Amazon Athena

  • Amazon Athena 是一种交互式查询服务,让您能够轻松使用标准 SQL 分析 Amazon S3 中的数据。Athena 没有服务器,因此您无需管理任何基础设施,且只需为您运行的查询付费。
  • Athena 简单易用。只需指向您存储在 Amazon S3 中的数据,定义架构并使用标准 SQL 开始查询就可在数秒内获取最多的结果。
  • 使用 Athena,无需执行复杂的 ETL 作业来为数据分析做准备。这样一来,具备 SQL 技能的任何人都可以轻松快速地分析大规模数据集。
  • 支持的数据格式包括 JSON,Apache Parquet, Apache ORC

Amazon Elasticsearch Service

  • Amazon Elasticsearch Service 是一项完全托管的服务,方便您部署、保护和运行大量 Elasticsearch 操作,且不用停机。
  • 该服务提供开源 Elasticsearch API、受托管的 Kibana 以及与 Logstash 和其他 AWS 服务的集成,支持您安全获取任何来源的数据,并开展实时搜索、分析和可视化。
  • 使用 Amazon Elasticsearch Service 时,您只需按实际用量付费,没有预付成本或使用要求。有了 Amazon Elasticsearch Service,您无需承担运营开销,便可获得所需的 ELK 堆栈。

AWS X-Ray

  • AWS X-Ray 可以帮助开发人员分析与调试分布式生产应用程序,例如使用微服务架构构建的应用程序。
  • 借助 X-Ray,您可以了解应用程序及其底层服务的执行方式,从而识别和排查导致性能问题和错误的根本原因。
  • X-Ray 可在请求通过应用程序时提供请求的端到端视图,并展示应用程序底层组件的映射。
  • 您可以使用 X-Ray 分析开发和生产中的应用程序,从简单的三层应用程序到包含上千种服务的复杂微服务应用程序。
posted @ 2019-08-21 09:16  小水滴18  阅读(1002)  评论(1编辑  收藏  举报