中企动力 > 商学院 > 数据hadoop大数据
  • ?

    大数据分析系统Hadoop的13个开源工具

    赖道天

    展开

    Hadoop是由Apache基金会开发的一个大数据分布式系统基础架构,最早版本是2003年原Yahoo!DougCutting根据Google发布的学术论文研究而来。

    用户可以在不了解分布式底层细节的情况下,轻松地在Hadoop上开发和运行处理海量数据的应用程序。低成本、高可靠、高扩展、高有效、高容错等特性让Hadoop成为最流行的大数据分析系统,然而其赖以生存的HDFS和MapReduce组件却让其一度陷入困境——批处理的工作方式让其只适用于离线数据处理,在要求实时性的场景下毫无用武之地。

    因此,各种基于Hadoop的工具应运而生,本次为大家分享Hadoop生态系统中最常用的13个开源工具,其中包括资源调度、流计算及各种业务针对应用场景。首先,我们看资源管理相关。

    资源统一管理/调度系统

    在公司和机构中,服务器往往会因为业务逻辑被拆分为多个集群,基于数据密集型的处理框架也是不断涌现,比如支持离线处理的MapReduce、支持在线处理的Storm及Impala、支持迭代计算的Spark及流处理框架S4,它们诞生于不同的实验室,并各有所长。

    为了减少管理成本,提升资源的利用率,一个共同的想法产生——让这些框架运行在同一个集群上;因此,就有了当下众多的资源统一管理/调度系统,本次为大家重点介绍ApacheMesos及YARN:

    1、ApacheMesos

    代码托管地址:ApacheSVN

    Mesos提供了高效、跨分布式应用程序和框架的资源隔离和共享,支持Hadoop、MPI、Hypertable、Spark等。

    Mesos是Apache孵化器中的一个开源项目,使用ZooKeeper实现容错复制,使用LinuxContainers来隔离任务,支持多种资源计划分配(内存和CPU)。提供Java、Python和C++APIs来开发新的并行应用程序,提供基于Web的用户界面来提查看集群状态。

    2、HadoopYARN

    代码托管地址:ApacheSVN

    YARN又被称为MapReduce2.0,借鉴Mesos,YARN提出了资源隔离解决方案Container,但是目前尚未成熟,仅仅提供Java虚拟机内存的隔离。

    对比MapReduce1.x,YARN架构在客户端上并未做太大的改变,在调用API及接口上还保持大部分的兼容,然而在YARN中,开发人员使用ResourceManager、ApplicationMaster与NodeManager代替了原框架中核心的JobTracker和TaskTracker。其中ResourceManager是一个中心的服务,负责调度、启动每一个Job所属的ApplicationMaster,另外还监控ApplicationMaster的存在情况;NodeManager负责Container状态的维护,并向RM保持心跳。ApplicationMaster负责一个Job生命周期内的所有工作,类似老的框架中JobTracker。

    Hadoop上的实时解决方案

    前面我们有说过,在互联网公司中基于业务逻辑需求,企业往往会采用多种计算框架,比如从事搜索业务的公司:网页索引建立用MapReduce,自然语言处理用Spark等。

    3、ClouderaImpala

    代码托管地址:GitHub

    Impala是由Cloudera开发,一个开源的MassivelyParallelProcessing(MPP)查询引擎。与Hive相同的元数据、SQL语法、ODBC驱动程序和用户接口(HueBeeswax),可以直接在HDFS或HBase上提供快速、交互式SQL查询。Impala是在Dremel的启发下开发的,第一个版本发布于2012年末。

    Impala不再使用缓慢的Hive+MapReduce批处理,而是通过与商用并行关系数据库中类似的分布式查询引擎(由QueryPlanner、QueryCoordinator和QueryExecEngine三部分组成),可以直接从HDFS或者HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。

    4、Spark

    代码托管地址:Apache

    Spark是个开源的数据分析集群计算框架,最初由加州大学伯克利分校AMPLab开发,建立于HDFS之上。Spark与Hadoop一样,用于构建大规模、低延时的数据分析应用。Spark采用Scala语言实现,使用Scala作为应用框架。

    Spark采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。与Hadoop不同的是,Spark和Scala紧密集成,Scala像管理本地collective对象那样管理分布式数据集。Spark支持分布式数据集上的迭代式任务,实际上可以在Hadoop文件系统上与Hadoop一起运行(通过YARN、Mesos等实现)。

    5、Storm

    代码托管地址:GitHub

    Storm是一个分布式的、容错的实时计算系统,由BackType开发,后被Twitter捕获。Storm属于流处理平台,多用于实时计算并更新数据库。Storm也可被用于“连续计算”(continuouscomputation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。

    Hadoop上的其它解决方案

    就像前文说,基于业务对实时的需求,各个实验室发明了Storm、Impala、Spark、Samza等流实时处理工具。而本节我们将分享的是实验室基于性能、兼容性、数据类型研究的开源解决方案,其中包括Shark、Phoenix、ApacheAccumulo、ApacheDrill、ApacheGiraph、ApacheHama、ApacheTez、ApacheAmbari。

    6、Shark

    代码托管地址:GitHub

    Shark,代表了“HiveonSpark”,一个专为Spark打造的大规模数据仓库系统,兼容ApacheHive。无需修改现有的数据或者查询,就可以用100倍的速度执行HiveQL。

    Shark支持Hive查询语言、元存储、序列化格式及自定义函数,与现有Hive部署无缝集成,是一个更快、更强大的替代方案。

    7、Phoenix

    代码托管地址:GitHub

    Phoenix是构建在ApacheHBase之上的一个SQL中间层,完全使用Java编写,提供了一个客户端可嵌入的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBasescan,并编排执行以生成标准的JDBC结果集。直接使用HBaseAPI、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。Phoenix完全托管在GitHub之上。

    Phoenix值得关注的特性包括:1,嵌入式的JDBC驱动,实现了大部分的java.sql接口,包括元数据API;2,可以通过多个行键或是键/值单元对列进行建模;3,DDL支持;4,版本化的模式仓库;5,DML支持;5,通过客户端的批处理实现的有限的事务支持;6,紧跟ANSISQL标准。

    8、ApacheAccumulo

    代码托管地址:ApacheSVN

    ApacheAccumulo是一个可靠的、可伸缩的、高性能、排序分布式的键值存储解决方案,基于单元访问控制以及可定制的服务器端处理。使用GoogleBigTable设计思路,基于ApacheHadoop、Zookeeper和Thrift构建。Accumulo最早由NSA开发,后被捐献给了Apache基金会。

    对比GoogleBigTable,Accumulo主要提升在基于单元的访问及服务器端的编程机制,后一处修改让Accumulo可以在数据处理过程中任意点修改键值对。

    9、ApacheDrill

    代码托管地址:GitHub

    本质上,ApacheDrill是GoogleDremel的开源实现,本质是一个分布式的mpp查询层,支持SQL及一些用于NoSQL和Hadoop数据存储系统上的语言,将有助于Hadoop用户实现更快查询海量数据集的目的。当下Drill还只能算上一个框架,只包含了Drill愿景中的初始功能。

    Drill的目的在于支持更广泛的数据源、数据格式及查询语言,可以通过对PB字节数据的快速扫描(大约几秒内)完成相关分析,将是一个专为互动分析大型数据集的分布式系统。

    10、ApacheGiraph

    代码托管地址:GitHub

    ApacheGiraph是一个可伸缩的分布式迭代图处理系统,灵感来自BSP(bulksynchronousparallel)和Google的Pregel,与它们区别于则是是开源、基于Hadoop的架构等。

    Giraph处理平台适用于运行大规模的逻辑计算,比如页面排行、共享链接、基于个性化排行等。Giraph专注于社交图计算,被Facebook作为其OpenGraph工具的核心,几分钟内处理数万亿次用户及其行为之间的连接。

    11、ApacheHama

    代码托管地址:GitHub

    ApacheHama是一个建立在Hadoop上基于BSP(BulkSynchronousParallel)的计算框架,模仿了Google的Pregel。用来处理大规模的科学计算,特别是矩阵和图计算。集群环境中的系统架构由BSPMaster/GroomServer(ComputationEngine)、Zookeeper(DistributedLocking)、HDFS/HBase(StorageSystems)这3大块组成。

    12、ApacheTez

    代码托管地址:GitHub

    ApacheTez是基于HadoopYarn之上的DAG(有向无环图,DirectedAcyclicGraph)计算框架。它把Map/Reduce过程拆分成若干个子过程,同时可以把多个Map/Reduce任务组合成一个较大的DAG任务,减少了Map/Reduce之间的文件存储。同时合理组合其子过程,减少任务的运行时间。由Hortonworks开发并提供主要支持。

    13、ApacheAmbari

    代码托管地址:ApacheSVN

    ApacheAmbari是一个供应、管理和监视ApacheHadoop集群的开源框架,它提供一个直观的操作工具和一个健壮的HadoopAPI,可以隐藏复杂的Hadoop操作,使集群操作大大简化,首个版本发布于2012年6月。

    ApacheAmbari现在是一个Apache的顶级项目,早在2011年8月,Hortonworks引进Ambari作为ApacheIncubator项目,制定了Hadoop集群极致简单管理的愿景。在两年多的开发社区显着成长,从一个小团队,成长为Hortonworks各种组织的贡献者。Ambari用户群一直在稳步增长,许多机构依靠Ambari在其大型数据中心大规模部署和管理Hadoop集群。

    目前ApacheAmbari支持的Hadoop组件包括:HDFS、MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig及Sqoop。

  • ?

    揭秘大数据(一)从Hadoop框架讨论大数据生态

    Yue

    展开

    Hello小伙伴们,今天开始,尚硅谷的大数据老师与大家分享大数据的相关系列知识。

    相关资料可访问尚硅谷下载:http://atguigu/opensource.shtml

    从Hadoop框架讨论大数据生态

    1. Hadoop是什么

    1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构

    2)主要解决,海量数据的存储和海量数据的分析问题。

    3)广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈

    2. Hadoop发展历史

    1)Lucene--Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎

    2)2001年年底成为apache基金会的一个子项目

    3)对于大数量的场景,Lucene面对与Google同样的困难

    4)学习和模仿Google解决这些问题的办法 :微型版Nutch

    5)可以说Google是hadoop的思想之源(Google在大数据方面的三篇论文)

    GFS --->HDFS

    Map-Reduce --->MR

    BigTable --->Hbase

    6)2003-2004年,Google公开了部分GFS和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,使Nutch性能飙升

    7)2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中

    8)名字来源于Doug Cutting儿子的玩具大象

    9)Hadoop就此诞生并迅速发展,标志这云计算时代来临

    3. Hadoop三大发行版本

    Hadoop 三大发行版本

    Apache(入门学习最好)

    在企业实际使用当中,并不多

    最原始(最基础)的版本

    Cloudera(企业开发用的最多的)

    Flume,hue,impala

    Hortonworks(文档较好)

    HDP

    Hortonworks Data Platform

    1)Cloudera Hadoop

    (1)2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。

    (2)2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support

    (3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。

    (4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即是对Hadoop的技术支持。

    (5)Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。

    2)Hortonworks Hadoop

    (1)2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。

    (2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。

    (3)雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。

    (4)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。

    (5)HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook开源的Hive中。Hortonworks的Stinger开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒。

    (6)Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Window Server和Windows Azure在内的microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元。

    3)版本选择

    目前最有名的发行套件是原生的Apache发行套件和Cloudera公司的CDH。

    Apache——Apache HBase项目是所有HBase开发的父项目。所有代码都集中到那里,各个公司的开发者给他贡献代码。和其他开源项目一样,版本发行周期取决于参与者(也就是雇佣开发人员从事项目开发的公司)和他们想把什么特性放进一个特定的版本。一般来说,HBase社区和它们的版本是保持一致的。

    Cloudera公司的CDH——Cloudera是一家在生态系统中有自己发行版本的公司,包括Hadoop和其他模块(包含HBase)。这个套件被称为CDH(Cloudera‘s distribution including Apache Hadoop)。CDH建立在Apache的代码基础上,采用了特殊发行版本,并在里面添加了没有包含在任何Apache官方发行版本中的许多补丁。Cloudera也根据客户端需求添加额外的特性。在Apache代码基础里的补丁不一定出现在CDH。

    4.Hadoop的优势

    1)高可靠性 ---因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理

    2)高扩展性 --- 在集群间分配任务数据,可方便的扩展数以千计的节点

    3)高效性 ---在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度

    4)高容错性 --- 自动保存多份副本数据,并且能够自动将失败的任务重新分配

    5. Hadoop的发展趋势及前景

    由于Hadoop优势突出,基于Hadoop的应用已经遍地开花,尤其是在互联网领域。

    (1)Yahoo:通过集群运行Hadoop,以支持广告系统和Web搜索

    (2)FaceBook:(Hive贡献者)借助Hadoop来支持其数据分析和机器学习

    (3)淘宝:国内使用Hadoop最深入的公司,整个淘宝和阿里都是数据驱动的

    (4)华为:云计算平台

    (5)优酷:日志分析、推荐等

    (6)奇虎360:存储软件管家中的软件,日志分析和数据挖掘

    (7)百度: 国内使用Hadoop最早的公司,存储、日志分析、推荐、机器学习等

    总之,Hadoop目前已经取得了非常突出的成绩,随着互联网的发展和新业务模式的不断涌现,其应用已经从互联网走向了电子商务、旅游、房产、保险、金融、电信、银行等领域。

    6. 大数据技术生态体系

    上图中涉及的技术名词解释如下:

    1)Sqoop:sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

    2)Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

    3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

    (1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

    (2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息

    (3)支持通过Kafka服务器和消费机集群来分区消息。

    (4)支持Hadoop并行数据加载。

    4)Storm:Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。 Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。

    5)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

    6)Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。Oozie协调作业就是通过时间(频率)和有效数据触发当前的Oozie工作流程。

    7)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

    8)Hive:hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

    9)Pig:Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。

    10)R语言:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

    11)Mahout:

    Apache Mahout是个可扩展的机器学习和数据挖掘库,当前Mahout支持主要的4个用例:

    推荐挖掘:搜集用户动作并以此给用户推荐可能喜欢的事物。

    聚集:收集文件并进行相关文件分组。

    分类:从现有的分类文档中学习,寻找文档中的相似特征,并为无标签的文档进行正确的归类。

    频繁项集挖掘:将一组项分组,并识别哪些个别项会经常一起出现。

    12)ZooKeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

    13)Hue:Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数 据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。

    14)Cloudera Manager:

    1)管理:对集群进行管理,如添加、删除节点等操作。

    2)监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。

    3)诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。

    4)集成:对hadoop的多组件进行整合。

    7. 推荐系统框架图

  • ?

    大数据Hadoop、Hive及Spark的内在联系

    瓷筒

    展开

    学习大数据不可避免地会用到Hadoop、Hive、Spark等内容,也很有必要去归类、整理和比较它们之间的异同与关系。无论是Hadoop还是Spark或是其他大数据处理工具,归根结底还是要面向大数据的四个核心问题。

    1.数据的存储(big data storage),海量数据需要处理和分析,但前提是要进行有效的存储。稍后会提到Hadoop(HDFS)分布式文件系统对超大数据集的容错性问题。

    2.数据的计算(Data calculation),在数据有效存储的基础上,对数据的统计和分析本质上就是数据的计算。在大数据领域常见的计算工具有MapReduce、Spark等。

    3.数据的查询(consensus data),对大数据进行有效管理的核心指标是数据查询技术。其中NoSQL (Not Only SQL)应用较为广泛,能较有效解决数据的随机查询,其中就主要包括Hbase等。从本质而言,依旧是Hadoop模式下的数据查询。

    4.数据的挖掘(Data mining),数据仓库为数据的挖掘提供了基础,通过分类、预测、相关性分析来建立模型进行模式识别、机器学习从而构建专家系统。

    以上这四点就是Hadoop、Hive、Spark共同完成的目标。Hadoop从本质上讲是一个分布式文件系统(HDFS),首先可以用来海量的数据存储,而其中的MapReduce负责数据的计算,这就使得Hadoop成为对海量数据进行处理的分布式框架。Hadoop的诞生突破了传统数据文件系统的单机模式。HDFS使得数据可以跨越不同的机器与设备,并且用一个路径去管理不同平台上的数据,这样一来,不同的设备就好比小提琴、大提琴、单簧管、小号、横笛、钢琴等乐器合奏出一首交响曲。

    演奏交响曲需要有作曲和指挥,在大数据处理上,解决好存储问题,接下来就是要计算了。在处理不同类型的数据时,需要对不同的数据资源进行分配,从而就产生了不同设备之间数据交换与通信问题,MapReduce就是面向这些问题的计算引擎。MapReduce是第一代,而Spark是第二代。MapReduce的计算模型分为Map和Reduce两个过程。在日常经验里,我们统计数据需要分类,分类越细、参与统计的人数越多,计算的时间就越短,这就是Map的形象比喻,在大数据计算中,成百上千台机器同时读取目标文件的各个部分,然后对每个部分的统计量进行计算,Map就是负责这一工作的;而Reduce就是对分类计数之后的合计,是大数据计算的第二阶段。可见,数据的计算过程就是在HDFS基础上进行分类汇总。

    第一代的MapReduce已经得到了广泛的应用,但其缺点也是明显的,那就是体量大、操作繁琐。于是就诞生了Spark这样以数据计算为主的大数据处理集群。从本质上讲,依旧是对Map+Reduce模型的改进,使得Map和Reduce的界限划分不再那么清楚,方便数据交换和磁盘读写,进一步扩展数据处理量,从本质上讲还是对算法的优化。

    这里需要说明的是Spark和Hadoop是一种平行关系,也是不同的大数据生态系统。但核心是一种更加高效的计算引擎,同样是开源集群环境,不同的是Spark基于Scala语言,对数据的负载能力更强,未来有希望会取代Hadoop,成为新的大数据处理的生态系统。

    下面再说说什么是Hive。Hive是数据仓库工具,首先它是建立在HDFS基础之上的,数据也存储在HDFS上,可以说Hive是Hadoop中的一个组件;作为一个数据仓库,将HDFS中结构化的数据映射为数据库中的表,这样的话,就省去了程序员为MapReduce编写程序的繁琐过程,提高了工作效率,仅仅通过SQL语句就可以查询MapReduce的计算结果,同时还可以通过SQL对文件系统中的数据进行修改。这样,无论是用户还是开发者就可以不用再考虑MapReduce中复杂的逻辑关系。当若干行Java代码被一两行SQL语句所取代,Hive的价值就体现出来了。

  • ?

    Hadoop:大数据关键技术分析

    道天

    展开

    在物联网大数据迅速发展的时期,当出现计算能力无法满足当下应用的情况,这时将尝试着开发更多强大的计算机系统。其中,英探科技所运用的Hadoop技术,便是基于这样的理念而设计的。

    具体来说,Hadoop技术的基础架构是一个分布式系统,能够计算并分析处理所涉及的框架结构,满足多台设备同时工作的需求,在数据高速运算之时,能够对数据进行同步存储,当然这些数据内部的运转用户一般是无法感知到的,因为Hadoop技术会自主屏蔽底层的不相关细节。

    作为Hadoop的最底层文件系统,HDFS和HBase是天然的分布式数据库,其中MapReduce主要提供了云计算的数据框架,当然数据来源也采用分布式。

    而在HBase之上也有一个MapReduce的服务框架协议,能够并行分析计算提供大数据服务,也就是说,此前1个人10天才能完成的任务,而现在10个人1天就能够完成了,由此便可大大提升数据分析的整体效率。

    Hadoop技术当中,Hive和Pig均是数据分析的重要引擎,能够提供数据接口并快速进行数据分析。

    Hadoop技术的主要性能优势:

    其一,高效性。Hadoop可以在节点之间移动动态的数据,还能够保证各个不同节点之间的动态平衡,所以其处理速度相当迅速。

    其二,高可靠性。Hadoop能够按位存储,其处理数据的系统稳定,能力非常可靠。

    其三,高容错性。Hadoop可以自动定时保存数据的多个副本,还可将失败的任务自动进行重新分配。

    其四,低成本。相对于一体机、商用数据库,或者是QlikView等数据集市而言,这种hadoop技术是开源型,因此能够大大降低其项目软件成本。

    其五,高扩展性。Hadoop技术能够在可用计算机集簇间,将数据进行分配并完成计算任务,而这些集簇能够非常方便地扩展到那些数以千计的节点里。

  • ?

    Hadoop在大数据应用中的关键性作用

    宓从寒

    展开

    用于数据分析的开源Hadoop架构的巨大增长是由其结构化和非结构化数据量的增长所驱动的,并且很多权威组织也预测,未来Hadoop架构还将继续增长,并需要复杂的可访问工具来从数据中提取业务和市场信息。

    对于Hadoop来说,前景很乐观——开源框架旨在促进巨大数据集的分布式处理。Hadoop对企业越来越具有吸引力,因为它既可以获取大数据的好处,同时又避免了基础架构费用。

    联合市场研究部门最近的一份报告表明,Hadoop市场将实现从2013年到2020年的复合年增长率为58.2%,到2020年整个市场将达到502亿美元,而2012年为15亿美元。

    大数据

    到底有多“大”?根据IBM的说法,每天都会产生2.5万亿字节的数据,世界上所有数据的90%都是在过去两年中创建的。意识到这个巨大的信息商店的价值就需要数据分析工具,这些数据分析工具足够复杂,价格便宜,而且对于各种规模的公司来说都很容易使用。

    许多企业认为其专有数据太重要,无法在其他场合存储和处理。然而,云服务现在提供与内部系统相同的安全性和可用性。通过访问云中的数据库,企业也意识到可承受和可扩展的云架构的优势。

    Morpheus数据库即服务提供企业对其数据智能操作所需的安全性,高可用性和可扩展性。通过Morpheus使用100%的裸机SSD托管和性能最大化。该服务为Amazon Web Services和其他对等点以及云托管平台提供超低延迟。

    Hadoop的Nuts和Bolts大数据分析

    Hadoop架构将数据存储和处理都分配到网络上的所有节点。 通过将处理数据的小程序放置在具有更大数据集的节点中,不需要将数据流传输到处理模块。Hadoop调度和资源管理框架执行映射并减少集群环境中的阶段步骤。

    Hadoop分布式文件系统(HDFS)数据存储层使用副本来克服节点故障,并针对顺序读取进行了优化,以支持大规模并行处理。当框架扩展到支持Amazon Web Services S3和其他云存储文件系统时,Hadoop的市场真的要起飞了。

    尽管由于设置和运行Hadoop集群的复杂性、框架的成本低和可扩展性等优势,在中小型企业中采用Hadoop仍然很难。新服务通过提供受管理并可以使用的Hadoop集群来消除复杂性:无需在集群节点上配置或安装任何服务。

    Netflix数据仓库将Hadoop和Amazon S3结合在一起,实现无限可扩展性

    Netflix针对其PB级数据仓库,通过Hadoop分布式文件系统选择亚马逊的存储服务(S3),以实现基于云服务的动态可扩展性和无限数据计算能力。Netflix从来自电视,计算机和移动设备的数十亿个流媒体事件中收集数据。

    以S3作为其数据仓库,可以为具有数百个节点的Hadoop集群配置各种工作负载,所有这些都能够访问相同的数据。Netflix使用Amazon的弹性MapReduce分发Hadoop,并开发了自己的Hadoop平台即服务,它称之为Genie。Genie允许用户从Hadoop,Pig,Hive和其他工具提交作业,而无需通过RESTful API来配置新的集群或安装新的客户端。

    ▲Netflix Hadoop-S3数据仓库在广泛分布的网络中提供了无与伦比的数据和计算能力。

    Wired的Marco Visibelli在2014年8月13日的文章中解释说,结合Hadoop和云服务有显着的潜力。Visibelli描述了公司如何利用Big Data进行预测,通过Amazon Web Services从小型项目扩展,并在小项目取得成功的同时进行扩展。例如,一家欧洲汽车制造商使用Hadoop将几个供应商数据库结合到一个单一的15TB数据库中,两年内节省了1600万美元。

    Hadoop为各种规模的组织打开了“

    ”大门。 利用Morpheus数据库作为服务的云服务的可扩展性,安全性,可访问性和可承受性的项目有更大的成功机会。

  • ?

    hadoop是什么?大数据入门基础!

    荀雁芙

    展开

    hadoop是大数据的一个总称,hadoop Yarn是dadoop2的一个基础框架。现在常用的就是hadoop Yarn,hadoop Yarn可以说是大数据入门必须了解的部分。

    关注程序员小鸟

    1.介绍

    YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。

    之前有提到过,Yarn主要是为了减轻Hadoop1中JobTracker的负担,对其进行了解耦。现在通常都会使用Hadoop Yarn,因为其稳定性更加优秀,YARN是对Mapreduce V1重构得到的,有时候也称为MapReduce V2。

    2.YARN体系架构

    首先,整个Hadoop Yarn和Hadoop1一样,也是建立在hdfs分布式文件系统上,hdfs是为了集群而生的,它依托于整个Hadoop集群所有的硬盘容量。例如整个集群有100台服务器,每个服务器有都有5T的容量,那么整个hdfs最大可以有500T容量(这里只是打个比喻,因为服务器本身操作系统需要占用空间,并且还需要安装一些必要的组件,Hadoop本身程序也需要占用空间,因此肯定会小于500T)。用户在使用hdfs文件系统的时候,需要先将本地的文件put到文件系统上,然后集群才能使用这些数据,具体如何使用后续会有详细的图文讲解。

    YARN架构如下图所示:

    YARN总体上是Master/Slave结构,主要由ResourceManager、NodeManager、 ApplicationMaster和Container等几个组件构成。

    ResourceManager(RM)负责对各NM上的资源进行统一管理和调度。将AM分配空闲的Container运行并监控其运行状态。对AM申请的资源请求分配相应的空闲Container。主要由两个组件构成:调度器和应用程序管理器:

    调度器(Scheduler):调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位是Container,从而限定每个任务使用的资源量。Shceduler不负责监控或者跟踪应用程序的状态,也不负责任务因为各种原因而需要的重启(由ApplicationMaster负责)。总之,调度器根据应用程序的资源要求,以及集群机器的资源情况,为应用程序分配封装在Container中的资源。调度器是可插拔的,例如CapacityScheduler、FairScheduler。具体看下文的调度算法。应用程序管理器(Applications Manager):应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动AM、监控AM运行状态并在失败时重新启动等,跟踪分给的Container的进度、状态也是其职责。

    NodeManager (NM)NM是每个节点上的资源和任务管理器。它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;同时会接收并处理来自AM的Container 启动/停止等请求。ApplicationMaster (AM):用户提交的应用程序均包含一个AM,负责应用的监控,跟踪应用执行状态,重启失败任务等。ApplicationMaster是应用框架,它负责向ResourceManager协调资源,并且与NodeManager协同工作完成Task的执行和监控。MapReduce就是原生支持的一种框架,可以在YARN上运行Mapreduce作业。有很多分布式应用都开发了对应的应用程序框架,用于在YARN上运行任务,例如Spark,Storm等。如果需要,我们也可以自己写一个符合规范的YARN application。Container:Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container 表示的。 YARN会为每个任务分配一个Container且该任务只能使用该Container中描述的资源。

    3. YARN应用工作流程

    如下图所示用户向YARN中提交一个应用程序后,YARN将分两个阶段运行该应用程序:

    启动AM ,如下步骤1~3;由AM创建应用程序为它申请资源并监控它的整个运行过程,直到运行完成,如下步骤4~7。

    YARN应用工作流程图

    1、用户向YARN中提交应用程序,其中包括AM程序、启动AM的命令、命令参数、用户程序等;事实上,需要准确描述运行ApplicationMaster的unix进程的所有信息。提交工作通常由YarnClient来完成。

    2、RM为该应用程序分配第一个Container,并与对应的NM通信,要求它在这个Container中启动AM;

    3、AM首先向RM注册,这样用户可以直接通过RM査看应用程序的运行状态,运行状态通过 AMRMClientAsync.CallbackHandler的getProgress() 方法来传递给RM。 然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤47;

    4、AM采用轮询的方式通过RPC协议向RM申请和领取资源;资源的协调通过 AMRMClientAsync异步完成,相应的处理方法封装在AMRMClientAsync.CallbackHandler中。

    5、—旦AM申请到资源后,便与对应的NM通信,要求它启动任务;通常需要指定一个ContainerLaunchContext,提供Container启动时需要的信息。

    6、NM为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务;

    7、各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;ApplicationMaster与NM的通信通过NMClientAsync object来完成,容器的所有事件通过NMClientAsync.CallbackHandler来处理。例如启动、状态更新、停止等。

    8、应用程序运行完成后,AM向RM注销并关闭自己。

    之后会继续学习另一个重要的zookeeper,这是Hadoop Ha模式最重要的一环。

  • ?

    大数据hadoop人才真的很火爆

    莫再讲

    展开

    大数据、人工智能都是现在比较火爆的行业,如果你想转行做大数据领域,接下来这些你可以作为一些参考依据。

    大数据领域三个大的技术方向:

    方向一:Hadoop大数据开发方向

    薪资如下(以北京为例)

    方向二:数据挖掘、数据分析&机器学习方向

    薪资如下(以北京为例)

    方向三:大数据运维&云计算方向

    薪资如下(以北京为例)

    三个方向中,大数据开发是基础。

    以Hadoop开发工程师为例,Hadoop入门月薪已经达到了8K 以上,工作1年月薪可达到 1.2W 以上,具有2-3年工作经验的hadoop人才年薪可以达到 30万—50万。

    一般需要大数据处理的公司基本上都是大公司,所以学习大数据专业也是进大公司的方法之一。

    达内Java大数据课程是契合企业需求的匠心课程,是最新的大数据互联网+课程体系,课程内容全,技术深,涉及Java、Scala等多种开发语言,全面覆盖了JavaEE架构级技术、分布式高并发技术、互联网架构技术、大数据技术、云计算架构技术等行业领先技术。

    他们为什么能够高薪就业?

    一、因为他们认真学习、努力上进

    课堂

    ▲为了不辜负自己,他们每天都进行着高强度的学习。

    二、因为他们有优秀的老师辅导

    亦师亦友

    ▲老师们倾囊相授,课下一对一的跟学员谈心,了解学员生活,听取学员建议,帮助学员解决问题。

    三、因为他们有达内10万家合作企业,推荐就业

    双选会

    ▲每月安排多场企业双选会,采取直接跟企业“面对面”的招聘形式。

    四个月的时间

    让他们从外行变成内行

    只要你愿意

    高薪也变得触手可得

    为高端IT企业提供全面的人才服务,并为全行业提供高级应用型人才。

  • ?

    什么是Hadoop,大数据与hadoop简介,干货给你,不谢

    连绾绾

    展开

    要了解什么是Hadoop,我们必须首先深入了解与大数据和传统系统处理相关的问题。在这篇文章中,我们要讨论一下:

    · 传统方法的问题

    · Hadoop的演变技术发展很多, 我们可以使用大数据作为机会。早些时候,我们在储存上花了太多时间。直到大数据出现,我们从来没有想过使用商品硬件来存储和管理与昂贵的服务器相比是可靠和可行的数据。但是后来,企业意识到,他们通过大数据分析获得了很多好处,如下图所示。

    图:什么是Hadoop - 大数据分析的好处

    所以,让我们进一步了解传统方法与大数据机会相融合的问题。

    传统方法的问题

    在传统方法中,主要问题是处理数据异构性,即结构化,半结构化和非结构化。RDBMS主要侧重于结构化数据,如银行交易,运营数据等,Hadoop专门从事半结构化,非结构化数据,如文本,视频,音频,Facebook职位,日志等。RDBMS技术是经过验证的,高度一致的成熟系统得到许多公司的支持。而另一方面,Hadoop系统技术由于大数据(大部分由不同格式的非结构化数据组成)而被开发并且是需求的。现在让我们了解与Big Data相关的主要问题是什么。所以,向前推进,我们可以了解Hadoop如何出现作为一个解决方案。

    图:什么是Hadoop - 大数据问题

    所以,第一个问题是存储大量的数据。将这个巨大的数据存储在传统的系统中是不可能的。原因很明显,存储将被限制在一个系统中,数据的增长速度非常快。

    第二个问题是存储异构数据。现在我们知道存储是一个问题,但是让我告诉你这只是问题的一部分。由于我们讨论过的数据不仅是巨大的,而且它以各种格式存在,如:非结构化,半结构化和结构化。所以,您需要确保您有一个系统来存储从不同来源生成的这些数据。

    现在,我们来关注第三个问题,即访问和处理速度。硬盘容量不断增加,但磁盘传输速度或访问速度不以相似的速度增加。让我以一个例子来解释一下:如果你只有一个100mbps的I / O通道,并且正在处理1TB的数据,那么它将需要大约2.91小时。现在,如果您有四台机器具有四个I / O通道,数据量相同,则大约需要43分钟。因此,对于我来说,访问和处理速度是比大数据存储更大的问题。

    在了解Hadoop之前,先看一下Hadoop在一段时间内的演变。

    学习与专家的HADOOP

    Hadoop的演变

    后来在2008年1月,雅虎发布了Hadoop作为Apache软件基金会的开源项目。2008年7月,Apache测试了一个拥有Hadoop的4000节点集群。在2009年,Hadoop在不到17小时内成功地排列了数百亿的数据,处理数十亿次的搜索和索引数百万个网页。在2011年12月推出的Apache Hadoop发布了1.0版本。稍后于2013年8月,版本2.0.6可用。

    当我们讨论这些问题时,我们看到一个分布式系统可以是一个解决方案,Hadoop也是一样的。现在,让我们了解什么是Hadoop。

    什么是Hadoop?

    Hadoop是一个框架,允许您首先在分布式环境中存储大数据,以便您可以并行处理它。 Hadoop基本上有两个组件:

    图:什么是Hadoop - Hadoop Framework

    第一个是用于存储的HDFS(Hadoop分布式文件系统),允许您在集群中存储各种格式的数据。第二个是YARN,它只不过是一个Hadoop的处理单元。它允许并行处理数据,即存储在HDFS中。

    请加大数据学习交流8群640193172,了解更多大数据相关知识点,共同讨论

  • ?

    以Hadoop入门大数据

    苗青

    展开

    一、Hadoop简介

    1.什么是Hadoop

    Apache Hadoop project 生产出的用于高可靠、可扩展、分布式计算的开源软件,它允许通过集群的方式使用简单的编程模型分布式处理大数据,它可以从单一的服务器扩展到成千上万的机器,每一台机器都能提供本地计算和存储。Hadoop认为集群中节点故障为常态,它可以自动检测和处理故障节点,所以它不依赖硬件来提供高可用性。简单的说,我们可以用Hadoop分布式存储大量数据,然后根据自己的业务对海量数据进行分布式计算。例如:淘宝网昨天24小时的用户访问量折线图,不同地区、不同时段、不同终端中国Apache Hadoop project 包含的模块Hadoop Common :The common utilities that support the other Hadoop modules.Hadoop Distributed File System (HDFS): 高吞吐分布式文件系统Hadoop YARN: 作业(Job)安排和资源调度平台/框架Hadoop MapReduce: 运行在yarn上的大数据并行计算模型其他相关projectAmbariHBaseHiveSparkZookeeper...

    2.Hadoop产生背景

    Doug Cutting是Lucene、Nutch 、Hadoop等项目的发起人Hadoop最早起源于Nutch。Nutch的设计目的是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题:如何解决数十亿网页的存储和索引问题。2003、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。分布式文件系统(GFS),可用于处理海量网页存储分布式计算框架(MapReduce),可用于海量网页的索引计算问题谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年OSDI的MapReduce,和06年OSDI的BigTable。SOSP和OSDI都是操作系统领域的顶级会议,在计算机学会推荐会议里属于A类。SOSP在单数年举办,而OSDI在双数年举办。Nutch开发人员完成了相应的开源实现HDFS和MapReduce,并从Nutch中剥离成为独立项目Hadoop,直到2008年,Hadoop成为Apache顶级项目,之后快速发展。到现在hadoop已经形成了完善的生态圈,

    3.Hadoop生态相关

    BDAS(Berkeley Data Analytics Stack),这个伯克利大学提出的关于数据分析的软件栈。从它的视角来看,目前的大数据处理可以分为如以下三个类型。复杂的批量数据处理(batch data processing),通常的时间跨度在数十分钟到数小时之间。基于历史数据的交互式查询(interactive query),通常的时间跨度在数十秒到数分钟之间。基于实时数据流的数据处理(streaming data processing),通常的时间跨度在数百毫秒到数秒之间。

    Hadoop生态圈:

    大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择。大数据,首先你要能存的下大数据。传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇区一样。HDFS为你管理这些数据。存的下数据之后,你就开始考虑怎么处理数据。虽然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机器读取成T上P的数据(很大的数据哦,比如整个东京热有史以来所有高清电影的大小甚至更大),一台机器慢慢跑也许需要好几天甚至好几周。对于很多公司来说,单机处理是不可忍受的,比如微博要更新24小时热博,它必须在24小时之内跑完这些处理。那么我如果要用很多台机器处理,我就面临了如何分配工作,如果一台机器挂了如何重新启动相应的任务,机器之间如何互相通信交换数据以完成复杂的计算等等。这就是MapReduce / Tez / Spark的功能。MapReduce是第一代计算引擎,Tez和Spark是第二代。MapReduce的设计,采用了很简化的计算模型,只有Map和Reduce两个计算过程(中间用Shuffle串联),用这个模型,已经可以处理大数据领域很大一部分问题了。那什么是Map什么是Reduce?考虑如果你要统计一个巨大的文本文件存储在类似HDFS上,你想要知道这个文本里各个词的出现频率。你启动了一个MapReduce程序。Map阶段,几百台机器同时读取这个文件的各个部分,分别把各自读到的部分分别统计出词频,产生类似(hello, 12100次),(world,15214次)等等这样的Pair(我这里把Map和Combine放在一起说以便简化);这几百台机器各自都产生了如上的集合,然后又有几百台机器启动Reduce处理。Reducer机器A将从Mapper机器收到所有以A开头的统计结果,机器B将收到B开头的词汇统计结果(当然实际上不会真的以字母开头做依据,而是用函数产生Hash值以避免数据串化。因为类似X开头的词肯定比其他要少得多,而你不希望数据处理各个机器的工作量相差悬殊)。然后这些Reducer将再次汇总,(hello,12100)+(hello,12311)+(hello,345881)= (hello,370292)。每个Reducer都如上处理,你就得到了整个文件的词频结果。这看似是个很简单的模型,但很多算法都可以用这个模型描述了。Map+Reduce的简单模型很黄很暴力,虽然好用,但是很笨重。第二代的Tez和Spark除了内存Cache之类的新feature,本质上来说,是让Map/Reduce模型更通用,让Map和Reduce之间的界限更模糊,数据交换更灵活,更少的磁盘读写,以便更方便地描述复杂算法,取得更高的吞吐量。有了MapReduce,Tez和Spark之后,程序员发现,MapReduce的程序写起来真麻烦。他们希望简化这个过程。这就好比你有了汇编语言,虽然你几乎什么都能干了,但是你还是觉得繁琐。你希望有个更高层更抽象的语言层来描述算法和数据处理流程。于是就有了Pig和Hive。Pig是接近脚本方式去描述MapReduce,Hive则用的是SQL。它们把脚本和SQL语言翻译成MapReduce程序,丢给计算引擎去计算,而你就从繁琐的MapReduce程序中解脱出来,用更简单更直观的语言去写程序了。有了Hive之后,人们发现SQL对比Java有巨大的优势。一个是它太容易写了。刚才词频的东西,用SQL描述就只有一两行,MapReduce写起来大约要几十上百行。而更重要的是,非计算机背景的用户终于感受到了爱:我也会写SQL!于是数据分析人员终于从乞求工程师帮忙的窘境解脱出来,工程师也从写奇怪的一次性的处理程序中解脱出来。大家都开心了。Hive逐渐成长成了大数据仓库的核心组件。甚至很多公司的流水线作业集完全是用SQL描述,因为易写易改,一看就懂,容易维护。自从数据分析人员开始用Hive分析数据之后,它们发现,Hive在MapReduce上跑,真几把慢!流水线作业集也许没啥关系,比如24小时更新的推荐,反正24小时内跑完就算了。但是数据分析,人们总是希望能跑更快一些。比如我希望看过去一个小时内多少人在充气娃娃页面驻足,分别停留了多久,对于一个巨型网站海量数据下,这个处理过程也许要花几十分钟甚至很多小时。而这个分析也许只是你万里长征的第一步,你还要看多少人浏览了跳蛋多少人看了拉赫曼尼诺夫的CD,以便跟老板汇报,我们的用户是猥琐男闷骚女更多还是文艺青年/少女更多。你无法忍受等待的折磨,只能跟帅帅的工程师蝈蝈说,快,快,再快一点!于是Impala,Presto,Drill诞生了(当然还有无数非著名的交互SQL引擎,就不一一列举了)。三个系统的核心理念是,MapReduce引擎太慢,因为它太通用,太强壮,太保守,我们SQL需要更轻量,更激进地获取资源,更专门地对SQL做优化,而且不需要那么多容错性保证(因为系统出错了大不了重新启动任务,如果整个处理时间更短的话,比如几分钟之内)。这些系统让用户更快速地处理SQL任务,牺牲了通用性稳定性等特性。如果说MapReduce是大砍刀,砍啥都不怕,那上面三个就是剔骨刀,灵巧锋利,但是不能搞太大太硬的东西。这些系统,说实话,一直没有达到人们期望的流行度。因为这时候又两个异类被造出来了。他们是Hive on Tez / Spark和SparkSQL。它们的设计理念是,MapReduce慢,但是如果我用新一代通用计算引擎Tez或者Spark来跑SQL,那我就能跑的更快。而且用户不需要维护两套系统。这就好比如果你厨房小,人又懒,对吃的精细程度要求有限,那你可以买个电饭煲,能蒸能煲能烧,省了好多厨具。上面的介绍,基本就是一个数据仓库的构架了。底层HDFS,上面跑MapReduce/Tez/Spark,在上面跑Hive,Pig。或者HDFS上直接跑Impala,Drill,Presto。这解决了中低速数据处理的要求。那如果我要更高速的处理呢?如果我是一个类似微博的公司,我希望显示不是24小时热博,我想看一个不断变化的热播榜,更新延迟在一分钟之内,上面的手段都将无法胜任。于是又一种计算模型被开发出来,这就是Streaming(流)计算。Storm是最流行的流计算平台。流计算的思路是,如果要达到更实时的更新,我何不在数据流进来的时候就处理了?比如还是词频统计的例子,我的数据流是一个一个的词,我就让他们一边流过我就一边开始统计了。流计算很牛逼,基本无延迟,但是它的短处是,不灵活,你想要统计的东西必须预先知道,毕竟数据流过就没了,你没算的东西就无法补算了。因此它是个很好的东西,但是无法替代上面数据仓库和批处理系统。还有一个有些独立的模块是KV Store,比如Cassandra,HBase,MongoDB以及很多很多很多很多其他的(多到无法想象)。所以KV Store就是说,我有一堆键值,我能很快速滴获取与这个Key绑定的数据。比如我用身份证号,能取到你的身份数据。这个动作用MapReduce也能完成,但是很可能要扫描整个数据集。而KV Store专用来处理这个操作,所有存和取都专门为此优化了。从几个P的数据中查找一个身份证号,也许只要零点几秒。这让大数据公司的一些专门操作被大大优化了。比如我网页上有个根据订单号查找订单内容的页面,而整个网站的订单数量无法单机数据库存储,我就会考虑用KV Store来存。KV Store的理念是,基本无法处理复杂的计算,大多没法JOIN,也许没法聚合,没有强一致性保证(不同数据分布在不同机器上,你每次读取也许会读到不同的结果,也无法处理类似银行转账那样的强一致性要求的操作)。但是丫就是快。极快。每个不同的KV Store设计都有不同取舍,有些更快,有些容量更高,有些可以支持更复杂的操作。必有一款适合你。除此之外,还有一些更特制的系统/组件,比如Mahout是分布式机器学习库,Protobuf是数据交换的编码和库,ZooKeeper是高一致性的分布存取协同系统,等等。有了这么多乱七八糟的工具,都在同一个集群上运转,大家需要互相尊重有序工作。所以另外一个重要组件是,调度系统。现在最流行的是Yarn。你可以把他看作中央管理,好比你妈在厨房监工,哎,你妹妹切菜切完了,你可以把刀拿去杀鸡了。只要大家都服从你妈分配,那大家都能愉快滴烧菜。你可以认为,大数据生态圈就是一个厨房工具生态圈。为了做不同的菜,中国菜,日本菜,法国菜,你需要各种不同的工具。而且客人的需求正在复杂化,你的厨具不断被发明,也没有一个万用的厨具可以处理所有情况,因此它会变的越来越复杂。

    Spark生态圈

    谷歌三篇论文(Google File System,Map Reduce,Bigtable)发布后,很多人开始进行学习,并在此基础上开发出各种Hadoop计算平台,进行通用批处理计算(General Batch Processing)。之后,人们针对各种不同的计算模型开发了各种专门系统(Specialized Systems),比如说迭代式的,机器学习的,流处理的,图像的和SQL相关的系统。最后就是Spark,它作为一种通用的统一的计算引擎(General Unified Engine),希望能够一统江湖。从内往外看,生态圈核心是Spark Core,包括各种Spark的各种核心组件,它们能够对内存和硬盘进行操作,或者调用CPU进行计算。紧邻核心圈的是与Spark相关的各类接口,比如Java,Python和R等。这些接口的外部是针对不同类型数据的计算引擎。比如说针对关系型数据进行处理的Spark SQL,针对对流数据进行打包批量处理的Spark Steam,针对Machine Learning相关的库MLib,针对图的GraphX,以及针对大规模数据进行采样和计算从而缩短计算时间的BlinkDB。再往外就是Spark运行的各种场景。比如说单机运行,在Yarn上进行管理运行等等。最外层就涉及基础数据存储。我们可以用文档型数据库,关系型数据库,图数据库等等。所有这些数据存储系统Spark都能访问,这归功于Techyon。它对底层不同的数据存储系统进行封装,提供统一的API进行访问。它还可以看作是是对底层数据的缓存,更多关于Techyon的内容可以参照深入浅出Techyon。Spark生态圈的各个部分跟传统Hadoop系统的对应关系

    Spark对比Hadoop重要优势Spark最重要优点就是快。为什么Spark比较快呢?我们来看看下图。

    传统Hadoop计算过程中,MapReduce任务需要跑很多次,需要多次迭代,每次迭代计算的结果都需要存下来,存到HDFS,而HDFS本身就是一些硬盘,所以本质上就...

  • ?

    大数据与Hadoop之间是什么关系?

    赖幼旋

    展开

    关注我的人都成为了月薪5w以上的技术大牛

    大数据在近些年来越来越火热,人们在提到大数据遇到了很多相关概念上的问题,比如云计算、 Hadoop等等。那么,大数据是什么、Hadoop是什么,大数据和Hadoop有什么关系呢?

    大数据概念早在1980年,著名未来学家阿尔文·托夫勒提出的概念。2009年美国互联网数据中心证实大数据时代的来临。随着谷歌MapReduce和 GoogleFile System (GFS)的发布,大数据不再仅用来描述大量的数据,还涵盖了处理数据的速度。目前定义:大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具在合理时间内获取、管理、处理、并整理为帮助企业经营决策。

    大数据目前分为四大块:大数据技术、大数据工程、大数据科学和大数据应用。其中云计算是属于大数据技术的范畴,是一种通过Internet以服务 的方式提供动态可伸缩的虚拟化的资源的计算模式。那么这种计算模式如何实现呢,Hadoop的来临解决了这个问题,Hadoop是Apache(阿帕切) 的一个开源项目,它是一个对大量数据进行分布式处理的软件架构,在这个架构下组织的成员HDFS(Hadoop分布式文件系统),MapReduce、 Hbase 、Zookeeper(一个针对大型分布式系统的可靠协调系统),hive(基于Hadoop的一个数据仓库工具)等。

    1.云计算属于大数据中的大数据技术范畴。

    2.云计算包含大数据。

    3.云和大数据是两个领域。

    云计算是指利用由大量计算节点构成的可动态调整的虚拟化计算资源,通过并行化和分布式计算技术,实现业务质量的可控的大数据处理的计算技术。而作为云计算技术中的佼佼者,Hadoop以其低成本和高效率的特性赢得了市场的认可。Hadoop项目名称来源于创立者Doung Cutting儿子的一个玩具,一头黄色的大象。

    Hadoop项目的目标是建立一个可扩展开源软件框架,能够对大数据进行可靠的分布式处理。

    Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。HDFS是一个分布式文件系统,具有低成本、高可靠性性、高吞吐量的特点。MapReduce是一个变成模型和软件框架。

    简单理解,Hadoop是一个开源的大数据分析软件,或者说编程模式。它是通过分布式的方式处理大数据的,因为开元的原因现在很多的企业或多或少的在运用hadoop的技术来解决一些大数据的问题,在数据仓库方面hadoop是非常强大的。但在数据集市以及实时的分析展现层面,hadoop也有着明显的不足,现在一个比较好的解决方案是架设hadoop的数据仓库而数据集市以及实时分析展现层面使用永洪科技的大数据产品,能够很好地解决hadoop的分时间长以及其他的问题。

    Hadoop大数据技术案例

    让Hadoop和其他大数据技术如此引人注目的部分原因是,他们让企业找到问题的答案,而在此之前他们甚至不知道问题是什么。这可能会产生引出新产品的想法,或者帮助确定改善运营效率的方法。不过,也有一些已经明确的大数据用例,无论是互联网巨头如谷歌,Facebook和LinkedIn还是更多的传统企业。它们包括:

    情感分析: Hadoop与先进的文本分析工具结合,分析社会化媒体和社交网络发布的非结构化的文本,包括Tweets和Facebook,以确定用户对特定公司,品牌或产品的情绪。分析既可以专注于宏观层面的情绪,也可以细分到个人用户的情绪。

    风险建模: 财务公司、银行等公司使用Hadoop和下一代数据仓库分析大量交易数据,以确定金融资产的风险,模拟市场行为为潜在的“假设”方案做准备,并根据风险为潜在客户打分。

    欺诈检测: 金融公司、零售商等使用大数据技术将客户行为与历史交易数据结合来检测欺诈行为。例如,信用卡公司使用大数据技术识别可能的被盗卡的交易行为。

    客户流失分析: 企业使用Hadoop和大数据技术分析客户行为数据并确定分析模型,该模型指出哪些客户最有可能流向存在竞争关系的供应商或服务商。企业就能采取最有效的措施挽留欲流失客户。

    用户体验分析: 面向消费者的企业使用Hadoop和其他大数据技术将之前单一 客户互动渠道(如呼叫中心,网上聊天,微博等)数据整合在一起, 以获得对客户体验的完整视图。这使企业能够了解客户交互渠道之间的相互影响,从而优化整个客户生命周期的用户体验。

    当然,上述这些都只是大数据用例的举例。事实上,在所有企业中大数据最引人注目的用例可能尚未被发现。这就是大数据的希望。

    好程序员特训营自2014年开班至今,一直立志培养高薪,高能,高职的程序员人才,截至目前,好程序员学员就业均薪1万3以上,学员薪资最高达到2万9千元。现开设Html5、JavaEE、大数据、Android等高端精品课程,40人小班教学保证高品质,坚持100%全程面授。

    大数据1704期开班日期12月18日,通过考试后享受5000元学费报名优惠 。

    好程序员,从平凡到卓越,为梦想而拼搏!

数据hadoop大数据

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP