hadoop生态圈详解

hadoop生态圈详解学习和使用hadoop有一年了,这里主要分享一下对hadoop整体上的理解,分门别类的介绍一下相关组件,最后提供了建议的学习路线,希望对hadoop的初学者有参考作用。1.Hadoop核心件组有哪些?广义hadoop指什么?l核心组件有:Hdfs、Yarn、MapReduce;l广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如hdfs、yarn、h…

大家好,又见面了,我是你们的朋友全栈君。

学习和使用hadoop有一年了,这里主要分享一下对hadoop整体上的理解,分门别类的介绍一下相关组件,最后提供了建议的学习路线,希望对hadoop的初学者有参考作用。

 

1.      Hadoop核心件组有哪些? 广义hadoop指什么?

l  核心组件有:Hdfs、Yarn、MapReduce;

l  广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如hdfs、yarn、hbase、hive、spark、pig、zookeeper、kafka、flume、phoenix、sqoop。

 

2.      Spark与hadoop之间有什么联系

l  Spark也是一个生态圈,发展非很快,在计算方面比mapreduce要快很多倍,供了一个简单而丰富的编程模型,支持多种应用,包括ETL、机器学习、数据流处理、图形计算;

l  Hadoop和Spark在某些方面有重叠,但组件之间都可以很好的协同作战。

 

3.      分门别类介绍其中详细组件

为了方便理解以下按照功能进行了分类,并且把较为流行的排在了前面介绍,列表如下:

分类

相关产品

文件系统

•       HDFS,目前大量采用的分布式文件系统,是整个大数据应用场景的基础通用文件存储组件

•       S3, Simple Storage Service简单存储服务,更好的可扩展性,内置的持久性,以及较低的价格

资源调度

•       YARN,分布式资源调度,可以接收计算的任务把它分配到集群各节点处理,相当于大数据操作系统,通用性好,生态支持好;

•       Mesos,同YARN类似,偏向于资源的抽象和管理

计算框架

•       Spark序列,有流计算、图计算、机器学习;

•       Flink,支持计算数据不断变化,即增量计算;

•       Storm,专注于流式计算,功能强大;

•       Mapreduce, 分布式计算基本计算框架,编程难度高,执行效率低

数据库

•       Hbase,一种NoSQL列簇数据库,支持数十亿行数百万列大型数据储存和访问,尤其是写数据的性能非常好,数据读取实时性较好,提供一套API,不支持SQL操作,数据存储采用HDFS;

•       Cassandra,对大型表格和 Dynamo支持得最好;

•       Redis,运行异常快,还可应用于分布式缓存场景

SQL支持

•       Spark SQL,由Shark、Hive发展而来的,以SQL方式访问数据源(如hdfs、hbase、S3、redis甚至关系统数据库等,下同);

•       Phoenix,一套专注于SQL方式访问hbase的JDBC驱动,支持绝大部分SQL语法,支持二级索引,支持事务,低延时;

•       Hive,通过HQL(类似SQL)来统计分析生成查询结果,通过解析HQL生成可以Mapreduce上执行的任务,典型的应用场景是与hbase集成;

•       其它:impala、pig等,都实现了类似的功能,解决了直接写map/reduce分析数据的复杂性,降低了数据分析工作者或开发人员使用大数据的门槛

其它工具

•       分布式协作zookeeper,可以理解为一个小型高性能的数据库,为生态圈中与很多组件提供发布订阅的功能,还可以监测节点是否失效(心跳检测),如HBase、Kafka中利用zookeeper存放了主从节点信息;

•       Kafka, 是一种分布式的,基于发布/订阅的消息系统,类似于消息对列的功能,可以接收生产者(如webservice、文件、hdfs、hbase等)的数据,本身可以缓存起来,然后可以发送给消费者(同上),起到缓冲和适配的作;

•       Flume,分布式的海量日志采集、聚合和传输的系统,主要作用是数据的收集和传输,也支持非常多的输入输出数据源;

•       Sqoop,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中

 

 

4.      典型的组合使用场景

 

Hadoop、Spark生态圈的组件是相互配合使用的,每个组件都有自己“用武之地”,组合起来完成即可以满足各种系统业务需求,下面列举两个例子:

(1)数据采集、存储、分析场景

该场景下完成了整个数据的采集、存储、分析,并输出结果,组件搭配如下:

Flume + kafka(zookeeper)+ Hdfs + Spark/Storm/Hive + Hbase (ZookeeperHdfs) /Redis

说明如下:

l  Flume用来从种渠道(如http、exec、文件、kafka , …)收集数据,并发送到kaffka(当然也可以存放到hdfs、hbase、file、…)

l  Kafka可以缓存数据,与flume一样也支持各种协议的输入和输出,由于kafka需要zookeeper来完成负载均衡和HA,所以需要zookeeper来支持

l  开始计算,这里有三种选择,Spark/Storm/Hive,各有优势,相对Hive目前仍使用广泛,该技术出现的较早;Storm专注于流式处理,延迟非常低; Spark最有前景的计算工具;不管用什么,最终都是对数据的清理、统计,把得到的结果输出

l  展示结果数据存储,可以使用Hbase kafka(zookeeper) /Redis或mysql等,看使用场景(数据量大小等因素),由于处理之后的结果数据一般比较少可以直接放到Redis,然后就可以采用常规的技术展示出报表或其它消费方式使用这些计算后的结果数据

 

(2)数据存储和实时访问

这种场景非常类似常规应用开发场景,即通过java的JDBC来访问大数据集群,组件搭配:

Jdbc + Solr + Phoenix/Spark sql + Hbase kafka(zookeeper) + Hdfs

说明如下:

l  Jdbc是通用的java操作数据库的方式,使用的是sql语句

l  Solr为全文检索,完成站点分词搜索功能

l  Phoenix/Spark sql方便以jdbc方式访问Hbase数据库

l  Hdfs最终完成数据的物理存储

 

5.      建议的学习线路

 

仅凭个人经验,大概的分了三个阶段,如下:

hadoop生态圈详解

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143254.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pandas的连接函数concat()函数「建议收藏」

    pandas的连接函数concat()函数「建议收藏」pd.concat(objs,axis=0,join=’outer’,join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,copy=True)参数含义objs:Series,DataFrame或Pa…

  • mybatiscodehelperpro在线激活码(JetBrains全家桶)

    (mybatiscodehelperpro在线激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlFZP9ED60OK-eyJsaWNlbnNlSWQi…

  • Java下载安装与环境配置

    Java下载安装与环境配置Java的下载安装与环境变量配置,版本为win10+Java1.8。

  • ps -el_scalp revitalizer

    ps -el_scalp revitalizerkworker通过ps命令查看进程状态时,可以查看到kworker相关,大部分格式都是kworker/u2:0或者kworker/0:0H,查看资料得知:内核中有很多kworker,有绑定cpu的和不绑定cpu的,它支持cpu的hotplug时work的迁移。u:是unbound的缩写,代表没有绑定特定的CPU,kworker/u2:0中的2是wor…

  • 高通平台环境搭建,编译,系统引导流程分析「建议收藏」

    高通平台环境搭建,编译,系统引导流程分析「建议收藏」1、高通平台android开发总结1.1搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和modem编译流程分析高通平台7620启动流程分析qcril流程分析,设置sim卡锁pythonscons语法学习Python语言之scons工具流程分析: 1.

    2022年10月19日
  • 数据库——操作数据库语句(select单表查询)

    数据库——操作数据库语句(select单表查询)前两天又装了oracle,开始再次学习数据库,希望这次可以系统的学习,主要是语句的学习。数据库操作语句SQL一、select   查询语句二、DDL 数据 定义 语句(create、drop、alter)三、DML数据操作语句(insert delect update)四、TCL 事务控制  语句(commit提交、rollback撤销、savep

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号