Hadoop基本概念

Hadoop是一个是个海量数据的分布式存储和计算平台

对于数据,我们大致可以将其分为三类:

结构化数据(对于结构化数据的处理可以通过RDBMS处理,通过将搜索码创建为索引页可以实现很快的查询速度)

半结构化数据(一般可以使用类型XML进行标记处理)

非结构化数据

其实,非结构化数据会占据相当大的比重,非机构化数据的存储和计算也变得比较困难。

Hadoop的灵感来自于Google的两篇论文,包括MapReduce,我们可以将Hadoop理解为是MapReduce的开源实现,Hadoop是由java语言编写的。

首先,对于海量数据,需要完成对其进行存储然后进行就算,分析。

HDFS:Hadoop分布式文件系统

MapReduce:Hadoop用于完成并行数据处理的框架

可以理解为Hadoop=HDFS+MapReduce,也就是可以理解为一个Hadoop集群就是一个HDFS集群加上一个MapReduce集群。

HDFS如何完成分布式存储:

HDFS集群中一般会有一个主节点(在Hadoop的新版本中,已经实现有多个主节点),称之为NameNode(简称为NN)

HDFS中会有n个从节点,称之为DataNode(DN)

实际完成数据存储的都是数据节点,而NameNode主要是用于将数据分块,分块之后再分配给数据节点进行存储,另外,NameNode用于接收用户请求,管理从节点,维护文件系统的目录结构,管理文件与Block之间的关系,block与数据节点之间的关系,从而完成分布式存储海量数据的目的。

HDFS的特性:HDFS设计用于存储大文件,对于海量小文件的存储不太适用

HDFS是用户空间的文件系统(其实数据最终还是存储在诸如ext3文件系统上,只不过需要经过HDFS的又一次对数据进行抽象)

HDFS不支持修改数据(新版本支持追加)

不支持挂载并通过系统调用进行访问,只能使用专用访问借口,例如专用的命令行工具,API

MapReduce,一般提到MapReduce,其有三个含义:

编程模型

运算框架

MapReduce编程思想的具体实现工具

MapReduce的思想大致就是分为两个阶段:Map和Reduce

Map就是将对一个大文件的处理分割成块进行计算,实现分布式

Reduce就是将对各个块的计算结果再进行汇总

对数据计算其实就是提取Key-Value的方式,在进行Map之后交由Reduce的时候,必须要将同一个Key提取的内容发送至同一个Reduce进程进行最后的合并

对于数据的计算,需要处理人员按照MapReduce的编程模型结合对数据的处理目的编写MapReduce程序,所以对于海量数据的计算在HDFS+MapReduce结合上有着极大的限制性。

Hadoop同时也有很多的组件,从而构成了Hadoop的生态系统:

HDFS+MapReduce构成了Hadoop的核心:

Hive:Hive是由Facebook开发的,Hive将整个MapReduce提供的框架抽象为一个系统,当用户想要就行查询等操作的时候,就可以想Hive提交一个SQL语句,然后由Hive实现将用户便于理解的SQL语句转换成为一个MapReduce程序执行,最后向用户输出结果(可以理解成Hive提供了一个SQL接口,但是并不和SQL完全兼容)

Hbase:由于HDFS不能挂载,也不能修改数据,当Hbase工作在HDFS之上的时候,构成一个Hbase集群,在Hbase的节点上再启动一个进程,这时数据可以先存在Hbase上,然后再由Hbase将其存入HDFS,并且Hbase对数据记录有版本号,实现了对数据进行修改

在很多情况下,我们需要对例如web服务器集群产生的日志进行分析计算,那么如何将web服务器产生的日志存储到HDFS上,首先,HDFS不能被挂载,所以就不能像对待一本文件系统没那个一样对其进行写入,这就是Flume,scrib这些日志收集工具实现将日志存储到HDFS上的。

同上,很多情况下可能需要借助于集群的威力对存储在RDBMS上的数据进行分析计算和挖掘,那么如何将RDBMS中的数据导入到HDFS上,就是有Sqoop工具实现的,可以将数据用Sqoop从RDBMS导出,先存储到Hbase上,再由Hbase实现存储到HDFS上,之后就可以通过编写的MapReduce程序对数据进行运算

MAhost就是用于数据挖掘,也就是机器学习的工具

Zookeeper:可以理解其就是一个协调器,监控集群上的各个节点是否能够符合集群的要求

Hadoop在HDFS提供改良数据存储的方案上表现还是比较出色的,但是MapReduce的计算能力就稍有逊色,可以结合第二代大数据解决方案spark,使用HDFS完成海量数据的分布式存储,有spark提供对海量数据的运算

时间: 2024-10-13 17:23:35

Hadoop基本概念的相关文章

hadoop分布式存储(1)-hadoop基础概念(毕业设计)

hadoop是一种用于海量数据存储.管理.分析的分布式系统.需要hadoop需要储备一定的基础知识:1.掌握一定的linux操作命令 2.会java编程.因此hadoop必须安装在有jdk的linux环境中. linux环境可以用以下方式获取:1.安装linux操作系统  2.安装linux虚拟机  3.在阿里云.UniteStack上租一个云主机,创建linux环境,然后用putty去链接. linux下jdk的安装:百度即可. 与hadoop相关联的一些基础知识: Google大数据技术:

hadoop基础概念之Hadoop核心组件

认知和学习Hadoop,我们必须得了解Hadoop的构成,我根据自己的经验通过Hadoop构件.大数据处理流程,Hadoop核心三个方面进行一下介绍: Hadoop组件 由图我们可以看到Hadoop组件由底层的Hadoop核心构件以及上层的Hadoop生态系统共同集成,而上层的生态系统都是基于下层的存储和计算来完成的. 首先我们来了解一下核心构件:Mapreduce和HDFS.核心组件的产生都是基于Google的思想来的,Google的GFS带来了我们现在所认识的HDFS,Mapreduce带来

hadoop 各种概念整理

Hadoop Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS. HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上:而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据. Hadoop的框架最核心的设计

Hadoop 新生报道(三) hadoop基础概念

一.NameNode,SeconderyNamenode,DataNode NameNode,DataNode,SeconderyNamenode都是进程,运行在节点上. 1.NameNode:hadoop的主节点, 保存HDFS的元数据信息 1.fsimage - 它是在NameNode启动时对整个文件系统的快照 2.edit logs - 它是在NameNode启动后,对文件系统的改动序列 2.SeconderyNamenode:  职责是合并NameNode的edit logs到fsima

Hadoop的概念、版本、发展史

Hadoop是什么? Hadoop: 适合大数据的分布式存储和计算平台 Hadoop不是指具体一个框架或者组件,它是Apache软件基金会下用Java语言开发的一个开源分布式计算平台.实现在大量计算机组成的集群中对海量数据进行分布式计算.适合大数据的分布式存储和计算平台. Hadoop1.x中包括两个核心组件:MapReduce和Hadoop Distributed File System(HDFS) 其中HDFS负责将海量数据进行分布式存储,而MapReduce负责提供对数据的计算结果的汇总

Hadoop 基本概念

1. Combiner combiner is between map and reduce, similar to reducer, combine some data before reducer. http://hadooptutorial.wikispaces.com/Custom+combiner http://wiki.apache.org/hadoop/HadoopMapReduce http://blog.optimal.io/3-differences-between-a-ma

Hadoop——HDFS概念

序言 hdfs文件系统主要设计为了存储大文件的文件系统:如果有个TB级别的文件,我们该怎么存储呢?分布式文件系统未出现的时候,一个文件只能存储在个服务器上,可想而知,单个服务器根本就存储不了这么大的文件:退而求其次,就算一个服务器可以存储这么大的文件,你如果想打开这个文件,效率会高吗? hdfs的出现就是为了解决上面的问题. hdfs为了满足大文件的存储和可读性,对数据进行切成多个小块进行存储,同时为了保证数据的可靠性,又对每个小块数据做复制,然后分别存储到多个节点中. 资料 原文地址:http

Hadoop入门(一)概念

一.hadoop的概念 (1)什么是大数据 大数据是不能用传统的计算技术处理的大型数据集的集合.它不是一个单一的技术或工具,而是涉及的业务和技术的许多领域. (2)hadoop的定义 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算. 二.单机安装(Ubuntu14版) 1.安装配置jdk A.在线安装: B.离线安装 1)下载jdk-7

Hadoop产生原因

对于Hadoop产生的原因,我们从以下三个方面谈起: 传统大规模系统的问题 (1)传统大规模计算 1.传统计算受到处理器限制:相对较小的数据量:有很多复杂的处理. 2.早期的方案:更大的计算机,更快的处理器,更多的内存,但即使这样也不能满足 (2)分布式系统   1.更好的方案:使用更多的机器来处理单个作业   2.分布式系统遇到的问题:编程的复杂性(用来管理和处理数据的程序很复杂):有限的带宽 3.数据瓶颈:传统系统中,数据存储在中央存储:数据在运行时拷贝到处理器:适合限量的数据 然而,现代系