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的生态系统:

 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提供对海量数据的运算

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:Hadoop基本概念-创新互联
当前路径:http://pwwzsj.com/article/dpcpho.html