当前位置:   article > 正文

Hadoop 基础_hadoop生态组件支持的操作系统清单

hadoop生态组件支持的操作系统清单

目录

Hadoop

Hadoop优势

高可靠性

高扩展性

其他

生态系统

狭义和广义的Hadoop

发行版的选择

核心组件

核心组件包含:

分布式文件系统HDFS

资源调度系统YARN

分布式计算框架MapReduce

Hadoop应用-数据处理流程

参照典型的BI系统

网站日志分析系统的流程参考

离线数据处理流程


燃料(大数据),引擎(神经网络)

Hadoop

开源的、可靠的、可扩展的,分布式的计算框架。

Apache旗下的一套开源软件平台(类似于Struts、Spring MVC)

Hadoop提供的功能,利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。

modules:

●Hadoop Common:共用工具集

●HDFS(Hadoop Distributed File System):(分布式文件系统,用于存储)

●YRAN:(运算资源调度系统,node manager,为MAPREDUCE分配硬件资源)

●MapReduce:(分布式运算编程框架,编程框架/编程模板)

Hadoop可以搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。

底层rpc使用Netty。现在的Hadoop是一套生态系统,类似Spring 中有很多内容。

Hadoop优势

高可靠性

●数据存储:数据块多副本

●数据计算:重新调度作业计算

高扩展性

●存储/计算资源可以横向的先行扩展机器

●一个集群中可以包含数千/万的节点

其他

●存储于连接机器上、降低成本

●成熟生态圈

生态系统

狭义和广义的Hadoop

●狭义Hadoop:是一个适合大数据分布式存储(HDFS)、分布式计算(MapReduce)和资源调度(YARN)的平台。

●广义Hadoop:Hadoop生态系统。每一个子系统只解决某一个特定的问题域。

包括:

●HDFS(分布式文件存储);

●MapReduce(分布式计算框架,离线);

基于MapReduce的几种:

-Hive(SQL查询 使用Hive QL语言,SQL语言借助Hive执行引擎将SQL转换成MapReduce程序语言进行数据计算)

-Mahout (机器学习)

-Pig (脚本语言,脚本语言通过Pig执行引擎转换成MapReduce程序语言进行数据计算)

-Oozie(工作流,调度引擎)

●Zookeeper(分布式协调服务)

●Flume(日志收集框架)

●Sqoop (用于传统关系型数据库数据抽取到HDFS,统计分析结果也可以通过Sqoop转换到关系型数据库)

●Hbase(基于Google的BigData,结构化的、可伸缩、可扩展、分布式的、面向列的数据库)

发行版的选择

●Apache Hadoop(都是单独解决问题的方式,合并或有jar包冲突)

●CDH: Cloudera Distributed Hadoop(商业整合版本,通过CM框架在浏览器可以就安装,但是CM框架不开源,大部分公司使用)

archive.clouders.com

●HDP:hortonworks Data Platform(商业整合版本,开源。安装升级不容易)

核心组件

核心组件包含:

  • HDFS(分布式文件系统,用于存储)
  • YARN(运算资源调度系统,node manager,为MAPREDUCE分配硬件资源)
  • MAPREDUCE(分布式运算编程框架,编程框架/编程模板)

云计算两大底层支撑技术:“虚拟化”和“大数据技术”。

分布式文件系统HDFS

●源自Google的GFS论文,发表于2003年10月

●HDFS是GFS的克隆版

●HDFS特点:扩展性、容错性、海量数据存储

●将文件切分成指定大小的数据块(默认128M)并以多副本的存储在多个机器上

●数据切分、多副本、容错等操作对用户是透明的

Namenode (Filename,numReplicas,block-ids,…)

/users/sameerp/data/part-0,r:2,{1,3},…(有2个副本,存在于编号id为1和3的block-id上)

/users/sameerp/data/part-1,r:3,{2,4,5}…

资源调度系统YARN

●YRAN:Yet Another Resource Negotiator

●负责整个集群资源的管理和调度

●YRAN特点:扩展性、容错性、多框架资源统一调度

YARN支持不同框架作业:

Common:主要包括文件系统、RPC和串行化库。

Avro:用于数据序列化的系统。可以将数据结构或对象转化成便于存储和传输的格式,节约数据存储空间和网络传输带宽。HBase和Hive的客户端和服务端之间的数据传输都采用了Avro。它依赖于模式(Schema),Avro数据的读写是在模式之下完成的,需要动态加载相关数据的模式。

HDFS: 分布式文件系统。

HBase:是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。Hbase基于列存储,而关系型数据库基于行存储。

Mapreduce:一种编程模式。核心思想是分而治之,把输入的数据集切分成弱冠独立的数据块,分给一个主节点管理下的各个分界点来共同并行完成,最后整合各个节点的中间结果,得出最终结果。

Zookeeper: 协同工作系统。

Hive:一个基于Hadoop的数据仓库工具,提供了类似关系型数据库SQL的查询语言 Hive QL。可以通过Hive QL语句快速实现简单的MapReduce统计,Hive自身可以将Hive QL语句转换为MapReduce任务进行运行。

Pig:数据流语言和运行环境。适用于使用Hadoop和MapReduce平台来查询大型半结构化数据集。Pig简化了Hadoop常见的工作任务。为Hadoop应用程序提供了更加接近结构化查询语言SQL的接口。

Sqoop:用来在Hadoop和关系型数据库之间交换数据。如从Mysql导入HDFS/Hbase/Hive等,Sqopp主要通过JDBC和关系数据库进行交互。

Chukwa: 用于监控大型分布式系统的数据收集系统,可以将各种类型的数据收集成适合Hadoop处理的文件,并保存在HDFS中供Hadoop进行各种MapReduce操作。

分布式计算框架MapReduce

●源自于Google的MapReduce论文,发表于2004年12月

●MapReduce是Google MapReduce克隆版

●MapReduce特点:扩展性、容错性、海量数据离线处理

MapReduce三个角色:Map task、Reduce task、MRAppMaster。

Input-----Splitting-----Mapping----Shuffling(洗牌)-----Reducing----Final resut

Hadoop应用-数据处理流程

参照典型的BI系统

1)数据采集,定制开发采集程序,或使用开源矿建Flume;

2)数据预处理,定制开发mapreduce程序运行于Hadoop集群;

3)数据仓库技术,基于Hadoop之上的Hive

4)数据导出,基于Hadoop的sqoop数据导入导出工具

5)数据可视化,定制开发web程序或使用kettle等产品

6)整个过程的流程调度,Hadoop生态圈中的oozie工具或其他开源产品

离线数据分析路径:

日志—(flume)存储到Haddop HD—mapduce程序预处理----Hive仓库----ETL—Mysql—应用程序

实时数据分析路径:

日志—(kafka)—storm/spark streaming–Mysql—应用程序

网站日志分析系统的流程参考

离线数据处理流程

1) 数据采集

Flume : web日志写入到HDFS

2) 数据清洗

脏数据剔除:Spark、Hive、MapReduce或其他一些分布式框架

清洗完之后的数据可以存放在HDFS(HIve/Spark SQL)

3) 数据处理

按照需求进行业务统计和分析

4) 处理结果入库

可以存放到RDBMS、MoSQL

5) 数据可视化展示

图形化展示(Echarts、HUE、Zeepelin)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/834833
推荐阅读
相关标签
  

闽ICP备14008679号