Hadoop构架

  1. 云栖社区>
  2. 博客>
  3. 正文

Hadoop构架

余二五 2017-11-23 10:59:00 浏览668
展开阅读全文

大数据处理架构Hadoop
    1.概述
    1.1 Hadoop 简介
       hadoop是apache软件基金会旗下的一个开源分布式计算平台,为用户提供系统底层细节透明的分布式基础架构。hadoop基于java语言
    开发。跨平台性能好,可以部署在廉价的计算机集群中。hadoop核心是HDFS(分布式文件系统,解决了海量数据的存储)和mapreduce
    (解决了海量数据的处理)。hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据段 处理能力。
       2008年4月,hadoop打破当时的世界记录成为最快排序1TB数据的系统,他采用901个节点构成的集群运算,排序时间只用209S。
    1.2 Hadoop的发展简史
        hadoop最初由apache Lucene项目的创始人Doug Cutting 开发的文本索引库。2002年的时候,Nutch项目(Lucene项目一部分)遇到
    了该框架无法扩展到拥有数十亿网页的网络。2003年的时候Google 发布了分布式文件系统GFS的论文,2004年Nutch项目模仿GFS开发了
    NDFS(HDFS前身)。2004年,谷歌公司有发布了MapReduce分布式编程思想的论文。2005年Nutch 项目开源了谷歌的MapReduce。
    至此。hadoop的两个核心HDFS和MapReduce ,受谷歌论文的影响,成就了hadoop在海量数据处理灵域的头羊领袖地位。2008年一月,
    Hadoop正式成为apache顶级的项目。
    1.3 hadoop 特性
        高可用性 : 采用冗余存储方式
        高效性:采用分布式存储和分布式处理,搞笑的处理PB级数据
        高可扩展性:hadoop设计目的:高效稳定运行在廉价的计算机集群上。
        高容错性:采用冗余数据存储方式。
        低成本:采用廉价的计算机集群。
        运行在linux平台。
        支持多种编程语言。
    1.4 hadoop的版本
        apache hadoop版本分为两代,第一代hadoop包含0.20x ,0.21.x和0.22.x三个版本。其中,0.20x最后演变成1.0.x,成为稳定版。
    0.21.x和0.22.x增加了HDFS HA(高可用)等重要特性。第二代hadoop包含0.23.x和2.x两个版本。
    第二代hadoop比第一代hadoop做了较大的改进:主要是拆分了MapReduce的职能,减轻了系统负载。增加了YARN资源调度框架,
    mapreduce 运行在YARN框架(负责系统资源的调度的基础上,不在负责系统资源的调度,只专心于分布式计算。做为hadoop另一个核心
    的HDFS也增加了 federation 和HA(高可用和热备份)(HDFS中的namenode需要高可用)
        apache的各个版本的比较:
        除了免费开源apache hadoop版本提供标准,还有一些商业化公司陆续退出hadoop版本。
        2014年进入上海的 cloudera 与apache hadoop功能同步部分开源,具有自主研发产品,impala、navigator
        hortonwork 与apache 功能同步也完全开源(是apache hadoop平台最大的贡献者。产品:Tez构架,下一代hadoop查询处理框架)
        MapR 在apache hadoop基础上修改优化了许多,也形成了自己的 产品。
        国产的有 星环。核心组件与apache 同步,底层较多,完全封闭闭源,也又自己的hadoop产品  Inceptor 、Hyperbase.

    1.41 hadoop在企业的应用构架分为3层:数据源的流向依次是数据来源 ==》大数据层==》访问层
        在大数据层以HDFS分布式存储为基础;分为三部分。分别为访问层的3个功能即:数据分析、数据实时查询、数据挖掘提供运算。
        其中大数据层的: mapreduce (hive, pig) 提供了离线数据分析
                        Hbase(solr redis) 提供了数据的实时查询
                        Mahout BI分析 完成 数据挖掘
    1.5 hadoop生态系统

wKioL1lP46Gyesz_AAByRpA4wXY505.png-wh_50

        1.51 HDFS 
            分布式文件系统(Hadoop Distributed File System HDFS)是Hadoop项目的核心。针对谷歌文件系统GFS的开源。
        具有处理超大数据、流式处理运行在廉价服务器等优点。在设计之初,吧硬件故障作为常态考虑,保证在部分硬件发生故障的时候
        仍能保障整体的可用性和可靠性。此外,HDFS放宽了POSIX(可移植操作系统接口)实现了流的形式访问系统数据。提高系统的
        吞吐率。
        1.52  HBase
            针对谷歌BigTable的开源实现。具有强大的非结构化数据存储能力。采用HDFS作为底层数据存储,与传统数据库基于列的存储
        方式不同,HBase是基于行的存储。可横向扩展。是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库。
        1.53 MapReduce
            针对谷歌的MapReduce的开源实现。是一种编程模型。高度抽象到两个函数上 Map 和 Reduce 。在不了解底层细节情况下开发
        并行应用程序,运行在廉价计算机集群,完成海量数据(大于1T)处理核心思想是:将数据分成若干独立的数据块。分发给一个节点
        管理下的各个分界点来共同并行完成,最后最后整合各个节点中间结果得到最终结果。
        1.54 Hive
            基于hadoop的数据仓库工具。针对hadoop文件中的数据集进行数据整理、特殊查询和分析存储。使用类SQL语言的Hive-QL
        快速实现简单MapReduce统计。
        1.55 Pig
            简化了Hadoop常见的工作任务。为hadoop程序提供一种更加接近SQL的接口。在大型数据集中搜索满足某个给定搜索条件的记
        录时,Pig 只需要编写一个简单的脚本在集群中自动并行处理与分发,而MapReduce需要编写一个单独程序。
        1.56 Mahout
            提供可扩展的机器学习领域经典算法。用于数据挖掘。
        1.57 Zookeeper
            针对谷歌Chubby的一个开源实现、是高效和可靠的协同工作系统,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。
        1.58 Flume
            是 Cloudera提供的一个高可用的,高可靠的、分布式海量日志采集、聚合和传输的系统。支持日志系统中定制各类数据发送方,
        用于收集数据;同时,Flume 提供对数据进行简单处理并写到各种数据接受方的能力。
        1.59 Sqoop
            SQL-to-Hadoop的缩写。用于Hadoop和关系数据库间交换数据,通过Sqoop可以将数据从mysql 、Oracle、postgresql等关系
        型数据中导入Hadoop(可以导入HDFS、HBase和Hive)也可以将数据从hadoop导出到关系数据库。是数据迁移方便
        1.510 Ambari
            Web工具。支持Apache Hadoop 集群的安装、部署、配置和管理










本文转自 swallow_zys  51CTO博客,原文链接:http://blog.51cto.com/12042068/1941795,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
余二五
+ 关注