行业报告 AI展会 数据标注 标注供求
数据标注数据集
主页 > 数据挖掘 正文

下一阶段:Hadoop生态系统及常用组件

Hadoop我们已经用了许多篇幅来介绍了,所以今天我们就来总结一下,顺便将一些不常用的插件也简单地介绍一下。

一 什么是大数据

数据之所以为大,不但是因为数据量的巨大,同时各种渠道产生的数据既有IT系统生成的标准数据,还有大量多媒体类的非标准数据,数据类型多种多样,而且大量无用数据充斥其间,给数据的真实性带来很大影响,此外很多数据必须实时处理才最有价值。

一般数据量大(多)或者业务复杂的时候,常规技术无法及时、高效处理如此大量的数据,这时候可以使用Hadoop,它是由Apache基金会所开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,编写和运行分布式应用充分利用集群处理大规模数据。Hadoop可以构建在廉价的机器上,比如我们淘汰的PC Server或者租用的云主机都可以拿来用。

而Gartner的一项研究表明,2015年,65%的分析应用程序和先进分析工具都将基于Hadoop平台,作为主流大数据处理技术,Hadoop具有以下特性:

• 方便:Hadoop运行在由一般商用机器构成的大型集群上,或者云计算服务上
• 健壮:Hadoop致力于在一般商用硬件上运行,其架构假设硬件会频繁失效,Hadoop可以从容地处理大多数此类故障。
• 可扩展:Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。

目前应用Hadoop最多的领域有:

1) 搜索引擎,Doug Cutting设计Hadoop的初衷,就是为了针对大规模的网页快速建立索引。
2) 大数据存储,利用Hadoop的分布式存储能力,例如数据备份、数据仓库等。\
3) 大数据处理,利用Hadoop的分布式处理能力,例如数据挖掘、数据分析等。

二 Hadoop基础

Hadoop2.0的时候引入了HA(高可用)与YARN(资源调度),这是与1.0的最大差别。Hadoop主要由3部分组成:Mapreduce编程模型,HDFS分布式文件存储,与YARN。

 

 

上图是Hadoop的生态系统,最下面一层是作为数据存储的HDFS,其他组件都是在HDFS的基础上组合或者使用的。HDFS具有高容错性、适合批处理、适合大数据处理、可构建在廉价机器上等优点,缺点是低延迟数据访问、小文件存取、并发写入、文件随机修改。

Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。这个定义里面有几个关键词:软件框架、并行处理、可靠且容错、大规模集群、海量数据集就是MapReduce的特色。

YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源调度器

ResourceManager和每个应用程序特有的应用程序管理器ApplicationMaster,该调度器是一个 "纯调度器",不再参与任何与具体应用程序逻辑相关的工作,而仅根据各个应用程序的资源需求进行分配.

资源分配的单位用一个资源抽象概念 "Container" 来表示,Container 封装了内存和 CPU。此外,调度器是一个可插拔的组件,用户可根据自己的需求设计新的调度器,YARN 自身提供了 Fair Scheduler 和 Capacity Scheduler。

应用程序管理器负责管理整个系统中所有应用程序,包括应用程序的提交、与调度器协商资源以启动 ApplicationMaster、监控 ApplicationMaster 运行状态并在失败时重新启动等。

三 Hadoop常用组件

3-1 Hbase

Hadoop的主要组件介绍完毕,现在看下HBase,它是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建大规模结构化存储集群。

有人问HBase和HDFS是啥关系,HBase是利用HDFS的存储的,就像MySQL和磁盘, MySQL是应用,磁盘是具体存储介质。HDFS因为自身的特性,不适合随机查找,对更新操作不太友好,比如百度网盘就是拿HDFS构建的,它支持上传和删除,但不会让用户直接在网盘上修改某个文件的内容。

Hbase表的特点

1 ) 大:一个表可以有上亿行,上百万列。
2 ) 面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
3 ) 稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

HBase提供的访问方式有命令行shell方式,java API(最高效和常用的),Thrift Gateway 支持C++,PHP,Python等多种语言。

HBase的使用场景:

• 需对数据进行随机读操作或者随机写操作;
• 大数据上高并发操作,比如每秒对PB级数据进行上千次操作;
• 读写访问均是非常简单的操作,比如历史记录,历史订单查询,三大运营商的流量通话清单的查询。

 

 

3-2Hive

之前我们说了MapReduce计算模型,但是只有懂Java的才能撸代码干这个事,不懂Java的想用Hadoop的计算模型是不是就没法搞了呢?比如HDFS里的海量数据,数据分析师想弄点数据出来,咋办?所以就要用到Hive,它提供了SQL式的访问方式供人使用。

Hive是由Facebook 开源, 最初用于解决海量结构化的日志数据统计问题的ETL(Extraction-Transformation-Loading) 工具,Hive是构建在Hadoop上的数据仓库平台,设计目标是可以用传统SQL操作Hadoop上的数据,让熟悉SQL编程的人员也能拥抱Hadoop(注意。是数据仓库。不是数据库啊。)

• 使用HQL作为查询接口
• 使用HDFS作为底层存储
• 使用MapReduce作为执行层

所以说Hive就是基于Hadoop的一个数据仓库工具,是为简化MapReduce编程而生的,非常适合数据仓库的统计分析,通过解析SQL转化成MapReduce,组成一个DAG(有向无环图)来执行。

3-3Flume

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

当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng,由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。

 

 

Flume就是一个数据管道,支持很多源(source),sink(目标),和透视宝的suro很像,比如拉取nginx日志可以拿这个工具简单一配就可用。当然每台nginx服务器上都要配置并启动一个flume.

3-4Ambari

Ambari是一个集群的安装和管理工具,运维同学用源码包安装,一个个配置文件去改,再分发到各个节点,中间哪一步搞错了,整个集群就启动不起来。

所以有几个厂商提供Hadoop的这种安装和管理平台,主要是CDH和HDP,国内的很多人都用CDH的,它是Cloudera公司的,如果用它的管理界面安装,集群节点超过一定数量就要收费了。

Ambari是Apache的顶级开源项目,可以免费使用,现在用的人也很多。Ambari使用Ganglia收集度量指标,用Nagios支持系统报警,当需要引起管理员的关注时(比如,节点停机或磁盘剩余空间不足等问题),系统将向其发送邮件。

3-5 zookeeper

随着计算节点的增多,集群成员需要彼此同步并了解去哪里访问服务和如何配置,ZooKeeper正是为此而生的。ZooKeeper 顾名思义就是动物园管理员,它是用来管大象(Hadoop) 、蜜蜂(Hive) 和 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,以Fast Paxos算法为基础实现同步服务,配置维护和命名服务等分布式应用。

微信公众号

声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
最新文章
SEM推广服务
热门文章
热点图文

Copyright©2005-2028 Sykv.com 可思数据 版权所有    京ICP备14056871号

关于我们   免责声明   广告合作   版权声明   联系我们   原创投稿   网站地图  

可思数据 数据标注

扫码入群
扫码关注

微信公众号

返回顶部