首页 > 编程知识 正文

hadoop生态圈英文,列举三个hadoop生态圈的技术

时间:2023-05-04 02:49:32 阅读:56992 作者:2920

学习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,目前大量采用的分布式文件系统是大数据APP应用程序整个场景的基础公共文件存储组件

s3,简单存储服务简单存储服务,可扩展性好,内置持久性,价格低廉

资源调度

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

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

计算框架

有• Spark排列、流量计算、图表计算、机器学习;

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

• Storm,专注于流媒体计算,强大;

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

数据库

• Hbase是一个NoSQL列集群数据库,支持数十亿行数百万列的大型数据存储和访问,特别是提供一系列写入数据性能非常好、数据读取实时性好、不支持SQL操作的API,以及数据

• Cassandra最支持大型表单和Dynamo

• Redis,运行非常快,也适用于分布式缓存场景

SQL支持

从Shark、Hive发展而来的• Spark SQL通过SQL方式访问数据源,例如关闭hdfs、hbase、S3、redis以及系统数据库。 以下相同)

专门用于SQL访问• Phoenix、hbase的JDBC驱动程序、大部分SQL语法、辅助索引、事务支持、低延迟

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

其他: impala、pig等提供了相似的功能,解决了直接写入map/reduce分析数据的复杂性,降低了数据分析人员和开发人员使用大数据的门槛

其它工具

分布式协作zookeeper可以理解为一个小型、高性能的数据库,它提供了生态圈中的许多组件和发布订阅的能力,并使用zookeeper存储主从节点信息,如HBase和Kafka

• • Kafka是分布式的、基于发布/订阅的消息系统,其功能类似消息对列,可以接收web服务、文件、hdfs、hbase等生产者的数据,将其自身缓存并发送给消费者(Kafka

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

sq OOP主要用于在Hadoop(hive )和传统数据库(mysql、postgresql )之间交换数据,例如一个关系数据库(mysql、Oracle、

4 .典型的组合使用场景

Hadoop、Spark生态圈的组件是相互配合使用的,每个组件都有自己的“用处”,组合完成就可以满足了

各种系统业务需求,下面列举两个例子:

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

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

Flume + kafka(zookeeper)+ Hdfs + Spark/Storm/Hive + Hbase (Zookeeper、Hdfs) /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.      建议的学习线路

 

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

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。