内容:
- 大数据相关知识,和目前主流的解决方案
- MapReduce服务
- 如何使用
文章整理自:https://edu.huaweicloud.com/courses
大数据的开源解决方案:Hadoop
- HDFS
- HDFS
是基于Google发布的GFS论文进行设计开发,运行在通用硬件上的分布式文件系统。
即,将普通配置的机器结合起来形成一个完整的文件系统
- HDFS的特点:
(1)高容错性:认为硬件总是不可靠的,所以每份数据都有备份文件。
一般每份数据会有3份,分别存储在不同机器上,如果某个机器坏掉了,HDFS会将该机器上的数据自动备份3份并存储到其他机器上,保证始终有3份数据存在,来保证系统的可靠性
(2)高吞吐量:为大量数据访问的应用提供高吞吐量支持
HDFS可以将命令下发到它所管理的机器上进行数据的读写,来提高数据的吞吐量
(3)大文件存储:支持存储TB-PB级别的数据
理论上可以通过扩容机器上的硬盘容量或者增加机器数量来达到无限的存储空间
- HDFS常用的三个概念:
(1)NameNode:NameNode用于存储、生成文件系统的元数据信息。包括文件的物理地址,大小,备份数据等
(2)DataNode:DataNode用于存储实际的数据,将自己管理的数据信息上报给NameNode。
(3)Client:支持外面的应用程序访问HDFS,从NameNode,DataNode获取数据返回给业务
- MapReduce
- MapReduce基于Google发布的分布式计算框架Map/Reduce论文设计开发,用于大规模数据集的并行运算。原理是将每个任务拆分成多个子任务,然后再汇总,其中每个拆分的任务叫Map;汇总的任务叫Reduce
- 特点如下:易于编程(程序员仅需要设计好Map和Reduce的工作内容,不需要考虑并行计算的调度,具体怎么做交由系统的执行框架处理。)
- 控制MapReduce的运行——Yarn
- Yarn
Hadoop2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和作业调度,除了提供MapReduce框架,还可以支持其他框架,比如Spark、Storm等
- 特点如下:
(1)良好的扩展性:可通过添加节点以扩展集群能力。
(2)高容错性:通过计算迁移策略提高集群的容错性
如果检测到一个机器的任务失败后,会将机器的任务分配给其他机器继续执行
- Yarn的组件:
(1)ResourceManger:负责集群资源和计算框架的管理,可以根据容量队列限制条件,将系统中的资源分配给应用程序,然后监控程序的运行状态
(2)NodeManager:它运行在每台机器上,是分配和监控的最终执行者
(3)Container:它是Yarn的资源抽象,它封装某个节点上的多维度资源,包括:CPU,内存,磁盘,网络等,并且任务最终是运行在Container当中
以Hadoop为基础延伸的大数据技术:Hive
- Hive
Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。
提供类SQL 的HiveQL语言将SQL查询转换为MapReduce任务实现数据处理。
- Hive常见场景:
(1)数据清洗:数据抽取、数据加载、数据转换
(2)非实时分析:日志分析、文本分析等
(3)数据挖掘:用户行为分析、兴趣分区等
- Hive的组件:
(1)HiveServer:对外提供Hive数据库服务,可以将用户提交的SQL编译解析成对应的Map和Reduce任务或者HDFS操作,并返回查询结果
(2)MetaStore:提供Hive的原数据服务,负责Hive的表结构和属性信息的读写和修改
(3)WebHCat:提供接口,可以通过请求执行HIve命令,提交MapReduce任务
实时查询:HBase
由于Hive是基于MapReduce框架,查询数据非常缓慢,所以如果需要实时查询数据时,我们可以使用HBase
-
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,提供海量数据存储功能,用来解决关系型数据库在处理海量数据时的局限性
-
HBase常见场景:
(1)存储大表数据(表的规模可以达到数十亿行以及数百万列)
(2)高效的随机读取
(3)同时处理结构化和非结构化的数据
- HBase的核心组件:
(1)HMaster:负责RegionServer的管理,包括表的增删改查和RegionServer的负载均衡等
(2)RegionServer:提供表数据的读写服务,是HBase数据处理的计算单元
- HBase的协作组件:
(1)HDFS:是作为HBase的文件存储,并且HBase的RegionServer一般会和HDFS的DataNode部署到一起
(2)Zookeeper:为HBase提供分布式的协作服务。所有的RegionServer会将自己的信息注册到Zookeeper中,HMaster可以根据Zookeeper中的信息感知到各个RegionServer的健康状态
Spark
- Spark
是一种通用的高性能集群计算系统。既有类似于MR的分布式内存计算框架,也有类似Hive的类SQL查询,还提供了实时数据的处理引擎和机器学习的算法库
- Spark常见场景:
(1)快速的数据处理,ETL(抽取、转换、加载)
(2)实时数据分析
(3)数据挖掘和机器学习
- 特点:
相比于MR来讲,它的核心特点是使用内存进行计算。MR会将中间计算结果存在到HDFS当中,然后再从HDFS当中读取进行计算;而Spark是将中间数据存放在内存当中,直接在内存中进行迭代计算
实时数据处理:Kafka
- Kafka
是一个高吞吐、分布式、基于发布订阅的消息系统,利用Kafka技术可在廉价的机器上搭建起大规模消息系统,适用于离线和在线的消息消费。
实时数据像水流一样,所以Kafka有一个“生产者程序”和“消费者程序”,分别对数据池进行生成数据和消费处理
- Kafka常见场景:
(1)常规的消息收集
(2)网站活性跟踪
(3)聚合统计系统运营数据(如监控数据)
可以做Kafka的“消费者程序”:Storm
- Storm是一个分布式、实时计算框架,具有高度容错、低时延的优点。
- Storm常见场景:
(1)实时分析:如实时日志处理、交通流量分析等
(2)实时统计:如网站的实时访问统计、排序等
(3)实时推荐:如实时广告定位、事件营销等
- 组件功能
(1)Client客户端向Nimbus提交具体的分析任务;
(2)Nimbus接收客户端提交的任务并将任务分发给Supervisor;
(3)Supervisor负责监听并接收Nimbus分配的任务,根据需要启动或停止自己管理的Worker进程;
(4)Worker进程是具体运行处理主件逻辑的进程,每一个Worker是一个单独的JVM进程,其中Excutor是Worker中的线程,负责处理具体的业务逻辑;
(5)Zookeeper为服务提供分布式的协作,Nimbus和Supervisor以及Worker会将自己的信息注册到Zookeeper中,然后Nimbus根据Zookeeper中的信息感知各个角色的状态
可以做为Kafka“生成者”传输数据:Flume
-
Flume是一个分布式、可靠和高可用的海量日志聚合的系统。支持在系统中定制各类数据发送方,用于收集数据然后写到各种数据接收方的能力。用户几乎不必进行任何额外开发即可使用。只需要配置好Source,Channel,Sink就可以进行数据传输
-
组件:
(1)Source:数据源,Flume会将原始数据建模抽象成自己处理的数据对象,然后缓存到Channel当中
(2)Channel:主要作用就是临时缓存数据
(3)Sink:从Channel中取出数据并将数据放到最终的目的地当中
- Flume常见场景
(1)从固定目录下采集日志信息到目的地(HDFS, HBase, Kafka)
(2)实时采集日志信息到目的地
华为MRS基本使用场景
-
离线分析
1.用户将待分析的数据存储到HDFS中
2.用户向MapReduce或Spark或Hive提交数据清洗作业
3.再通过Yarn分配资源执行完任务后会将结果数据存放在HDFS中
4.此时用户可以选择将HDFS中的结果数据导入HBase以便查询或直接把结果数据提出到应用做进一步处理 -
实时数据分析
1.用户将实时数据使用Flume或者编写Kafka程序导入Kafka中
2.然后编写Storm程序对实时数据进行处理
3.处理后的数据可以存储在HDFS中,也可以提供给应用程序进行展示
今天的文章华为大数据平台解决方案_华为大数据解决方案叫什么分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/84437.html