Hadoop基础

本文探讨了大数据时代的兴起,聚焦Hadoop作为分布式计算框架的重要角色,介绍了其在数据采集、存储(HDFS)、处理(MapReduce)和资源调度(YARN)方面的核心技术和应用。此外,还涵盖了HBase、Hive、Flume和Sqoop等关键组件及其在非结构化数据处理中的作用。
摘要由CSDN通过智能技术生成

大数据

互联网信息技术的兴起,也迎来来了数据的爆发式增长,需要一套完整的技术来处理日益增粘的数据。

大数据的特点
数据量大:互联网产生的数据以每年50%的速度增长。
数据类型多:数据的种类丰富,结构化数据和非结构化数据(1:9)。前者主要指关系型数据库的护具,后者主要包括邮件,多媒体,连接,短信,日志等。
处理数据快:大数据时代,都依赖于快速生成数据并实时分析结果。
价值密度低:大数据的价值密度远远低于关系型数据,很多有价值的数据都是分散在海量的数据中。

大数据处理技术

大数据处理流程:数据采集——存储管理——处理分析——结果呈现
在这里插入图片描述
大数据技术及软件也有很多,不同技术有不同的应用场景。

在这里插入图片描述
批处理计算用于对大规模数据处理,代表性的批处理框架有MapReduceSpark
流计算用于对不同数据源,连续不断的数据流进行实时分析处理并呈现结果,代表性流计算框架Twitter Storm,Yahoo S4等。
图计算是针对图结构的数据开发,用于图的遍历,最短路径等计算,代表性框架有Pergel,GraphX等。
查询分析计算是用于大规模的存储管理和查询分析。代表性框架有Hive,Cassandra

Hadoop简介

Hadoop 是一个开源的分布式计算和存储框架,由 Apache 基金会开发和维护。是大数据处理技术的一种。

Hadoop 为庞大的计算机集群提供可靠的、可伸缩的应用层计算和存储支持,它允许使用简单的编程模型跨计算机群集分布式处理大型数据集,并且支持在单台计算机到几千台计算机之间进行扩展。

Hadoop 使用 Java 开发,所以可以在多种不同硬件平台的计算机上部署和使用。其核心部件包括分布式文件系统 (Hadoop DFS,HDFS) 和批处理框架( MapReduce)。

Hadoop 的作用非常简单,就是在多计算机集群环境中营造一个统一而稳定的存储和计算环境,并能为其他分布式应用服务提供平台支持。

Hadoop 在某种程度上将多台计算机组织成了一台计算机(集群),那么 HDFS 就相当于这台计算机的硬盘,而 MapReduce 就是这台计算机的 CPU 控制器。

Hadoop生态
在这里插入图片描述

HDFS

Hadoop Distributed File System,分布式文件系统。提供了在大规模集群的分布式文件的存储功能。
在这里插入图片描述

HDFS采用了主从结构(Master,Slave)。一个HDFS集群包括一个名称节点和若干数据节点。名称节点为中心服务器,负责管理文件系统的命名空间和对客户端文件的访问;一个节点运行一个数据节点,负责文件的读写请求。

在这里插入图片描述

文件是被分块存储的,存储在不同节点上。访问文件时,名称节点获取文件名,查找在数据节点的位置,由名数据节点直接返回数据,并发进行,提高了速度。

MapReduce

Mapreduce批处理框架,将HDFS存储的数据批处理。它将集群上的并行计算过程抽象为Map和Reduce,来完成海量数据的计算。

HDFS上的数据会被切分成许多Map并行处理,Map处理的结果作为Reduce的任务输出。

在这里插入图片描述
MapReduce设计理念是计算向数据靠拢,因为移动数据需要大量的网络开销,尤其实在大数据环境下。MapReduce框架会将Map就近在HDFS所在的节点上运行,而将结果返回。

YARN

YARN是负责资源调度的框架,在及一个集群上部署YARN可以实现集群资源的同一管理服务,提高利用率。YARN既可以管理离线批处理框架MapRedue,还可以管理内存计算框架Spark,流计算框架Storm等。

在这里插入图片描述

HBase

HBase是一个高性能,面向列的分布式数据库,用来存储非结构化数据和半结构化松散数据。它具有分布式框架的可扩展性,通过水平扩展增加数据库容量。

HBase利用MapReduce处理HBase的海量数据,利用HDFS作为底层存储,利用集群提供海量的存储能力

Hive

Hive是一个数据仓库,用于对存储在Hadoop文件中的数据进行处理,查询和分析。提供了类型sql的结构化查询语言HiveQL。通过该语言快速实现MapReduce的处理。Hive可以将HiveQL快速转成MapReduce任务运行。

Flume

Flume是一个海量数据采集框架,用于收集数据,Flume提供对数据的简单处理并将数据传输到各种数据接收方。

Sqoop

Sqoop(SQL to Hadoop)主要用来在Hadoop和关系型数据库之间交换数据。可以很方便的从MySQL,Oracle等导出数据到Hadoop,或从HDFS,HBase中导入到关系型数据库。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值