大数据架构的分析应用(2)
Hortonworks 和Cloudera 是这样领域的主角。尽管它们之间有些区别,但是从大数据包的角度上看,它们是一样的,你不需要那些专属的插件。我们的目标不是描述每个发布版的所有组件,二是聚焦在每个提供者在标准生态系统中所增加的部分。同时,描述了在每种情况下,该架构所依赖的其他组件。 Cloudera CDH Cloudier在Hadoop基础组件上增加了一个内部机构组件的集合; 这些组件被设计成给你更好的集群管理和搜素体验。部分组件列表如下: Impala: 一个实时,并行化,基于SQL的引擎来搜索 HDFS (Hadoop Distributed File System)和 HBase中的数据. Impala被认为是Hadoop 发布版提供商市场中最快的查询引擎,是UC Bekeley Spark 的直接竞争者。 Cloudera Manager: 这是Cloudier的控制台,用来管理和部署Hadoop集群内的Hadoop组件. Hue: 一个用于执行用户交互数据操作和执行脚本的控制台,可以操作集群内不同的Hadoop组件. Figure 1-1 解释了Cloudera’s Hadoop分发包有如下组件分类: 橙色部分是Hadoop核心栈. 粉色部分是 Hadoop 生态系统项目 蓝色部分是 Cloudera的特使组件. Figure 1-1. Cloudera Hadoop发布版 Hortnworks HDP Hortnworks 是一个百分之百的开源而且使用了稳定的组件包,而不是1Hadoop 项目中最新的分发版本。它增加了一个组件管理控制台来与Cloudera Manager对比。Figure 1-2 展示了Hortonworks 发布版与Figure 1-1 相应的分类:绿色部分是Hortonworks的特殊组件. Figure 1-2. Hortonworks Hadoop distribution 如前所述,当我们构建架构的时候,这两个发布版(Hortonworks 和Cloudera) 是一样的。尽管如此, 如果考虑到每个发布版的成熟度,应当选择; Cloudera Manager比Ambari更完整和稳定 .进一步,考虑实时与大数据集交互,更应该因为它的性能卓越而使用Cloudera. Hadoop Distributed File System (HDFS) 你可能疑虑摄取到Hadoop集群中的数据存储到哪里。一般都在一个专有的系统上,叫做HDFS。HDFS的核心特性: 分布式 高吞吐量访问 高可用 容错 参数调整 安全 负载均衡 HDFS 是Hadoop集群中数据存储的头等公民。数据在集群数据节点中自动复制。 Figure 1-3 展示了HDFS中的数据如何在 一个集群的五个节点中复制的。 Figure 1-3. HDFS data replication 可以从 hadoop.apache.org获得更多的有关HDFS的信息。 Data Acquisition 数据的获取或者摄取开始于不同的数据源,可能是大的日志文件,流数据, ETL处理过的输出,在线的非结构化数据,或者离线的结构化数据。 Apache Flume 当查看生成的摄取日志的时候,强烈推荐使用Apache Flume; 它是稳定且高可用的,提供了一个简单,灵活和基友流数据的可感知编程模型。基本上,仅通过配置管理不需要写一行代码就可以陪着一个数据流水线。 Flume 由sources, channels, 和sinks组成. Flume source 基本上从一个外部数据源来消费一个事件如 Apache Avro source,然后存到channel. channel是一个像文件系统那样的被动存储系统 ; 它在sink 消费事件前一直持有它. sink 消费事件,然后从channel中删除该事件,并分发给一个外部的目标。 Figure 1-4 描述了一个web server和HDFS间的日志流如 Apache,使用了Flume 流水线. Figure 1-4. Flume architecture 通过 Flume, 可以将web服务器产生的不同日志文件移动到HDFS. 牢记我们工作在一个分布式的架构,可能包含有负载均衡器,HTTP servers,应用服务器,访问日志等等 . 我们是一不同的方式充分利用这些资源,使之能够被Flume流水线处理 . 详情参见 flume.apache.org. Apache Sqoop Swoop是一个从结构化数据库传说大量数据到HDFS. 使用它,既可以从一个外部的关系型数据库将数据导入到HDFS, Hive, 或者 HBase, 也可以Hadoop 集群导出到一个关系型数据库或者数据仓库. Sqoop 支持主流的关系型数据库例如Oracle, MySQL, 和Postgres. 这个项目把你从写脚本传输数据中解脱出来;它提供了高性能数据传输的特性.因为关系型数据库中的数据增长迅速, 最好从开始就定义那些快速增长的表,然后使用Sqoop将数据周期性地传输到Hadoop,以便用于分析. 然后,结合Hadoop与其他数据,可以使用Sqoop 导出数据注入到BI 分析工具中. 详情参见 sqoop.apache.org. 处理语言 一旦数据到了HDFS,可以使用不同的处理语言从原始数据得到最好的结果. Yarn: NextGen MapReduce MapReduce 是第一代Hadoop集群中的主要处理框架; 它基本上将滑动数据分组(Map) 在一起,然后依赖特殊的聚合操作(Reduce)来聚会数据。在Hadoop 1.0中, 用户们可以使用不同的语言来写 MapReduce jobs—Java, Python,Pig, Hive等等. 无论用户选择了什么语言, 都依赖于相同的处理模型:MapReduce. 随着Hadoop 2.0的发布, 有了HDFS之上新的数据处理架构. 现在已经实现了YARN (Yet Another Resource Negotiator), MapReduce 已经成为了众多处理模型中的一个. 这意味着可以依赖特殊的使用场景来采用特殊的处理模型. (编辑:ASP站长网) |