【Hadoop】学习前提

来源:互联网 发布:淘宝售假怎么投诉 编辑:程序博客网 时间:2024/06/04 18:23


  前言


      Hadoop是一个由Apache基金会所开发的分布式系统基础架构。它大数据分布式计算的典型代表。本博客参考了大量博客后总结出来的,如有不正,请多指教。


      Hadoop这个名词还是在实习的时候听同事讲,本身对大数据三个字比较敏感,所以空闲下来后对hadoop做了些了解,总结一下,多是些概念性的文本总结,仅说说自己的学后感。


      什么是大数据?大数据泛指由互联网产生的有意义且乱七八糟的数据,以TB为单位,它大致分为两种类型,一种是结构型的数据,即有主键或健值关系的数据。另一种是非结构型数据,数据之间无明显的关系。这类数据有几个特别让公司头疼的问题,一是如何存储,二是如何处理分析,三是如何在有效的时间内完成这些工作。是的,hadoop就可以解决这个问题。hadoop的分布式文件存储系统(HDFS)可以解决文件存储问题,mapreduce提供分析运算能力。这两者结合就可以很好的解决这三个问题。

(关于数据库的发展分别经历了sql、nosql和newsql,分别代表的关系型数据库、非关系型数据库和关系+半结构数据,大数据多属于第三种,所以它的存储和查询比较复杂。)


      从一张图中看一下hadoop的子项目架构图(网上找的)。之前经常听师父或一些人说到的如Hive, Pig, HBase, Sqoop, Mahout, Zookeeper等等,很是羡慕,普及一下。


 



 

      Common

      一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构)。

 

      Avro

      一种支持高效、跨语言的RPC以及永久存储数据的序列化系统。

 

      MapReduce

      分布式数据处理模型和执行环境,运行于大型商用机集群。

 

      HDFS

      分布式文件系统,运行于大型商用机集群。

 

     Pig

     一种数据流语言和运行环境,用以检索非常大的数据集。Pig运行在MapReduce和HDFS的集群上。    

                  

     Hive

     一个分布式、按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。

 

      HBase

     一个分布式、按列存储数据库。HBase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。

 

      ZooKeeper

      一个分布式、可用性高的协调服务。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用。

 

      Sqoop

      在数据库和HDFS之间高效传输数据的工具。

 

 

  对比


       关于分布式计算系统如今流行的有新的“SSH”,分别是spark、storm和 Hadoop。

       Hadoop常用于离线的复杂的大数据处理,Spark常用于离线的快速的大数据处理,而Storm常用于在线的实时的大数据处理。


      Hadoop和spark、storm的对比:


      Spark:它在Hadoop的基础上进行了一些架构上的改良。Spark与Hadoop最大的不同点在于,Hadoop使用硬盘来存储数据,而Spark使用内存来存储数据,因此Spark可以提供超过Hadoop100倍的运算速度。但是,由于内存断电后会丢失数据,Spark不能用于处理需要长期保存的数据。


      Storm:它在Hadoop的基础上提供了实时运算的特性,可以实时的处理大数据流。不同于Hadoop和Spark,Storm不进行数据的收集和存储工作,它直接通过网络实时的接受数据并且实时的处理数据,然后直接通过网络实时的传回结果。


      有一点需要说一下,hadoop不是实时运算的。它是在每天晚上分批处理数据。举个例子,我们日常浏览淘宝或买东西,网络上都回去弹出一些商品推荐,这些商品推荐的内容就是从你之前的浏览浏览和购买记录中计算出来的,如果你细心的话会发现,这些推荐的商品都是你昨天之前看过的,你今天看过的商品是没有类似的推荐的。这就是使用的hadoop批处理分时计算。而那些你即时搜索即时推荐的就属于storm实时运算。

 

   总结


      对大数据的学习是第一步,之后肯定还有机会接触实践。虽然现在有了些例如阿里云上的云计算集群服务出售,无论价格还是性能都比价靠谱,而且是一键式部署,但是我们自己还是要去学习它的原理和实践,为之后的学习工作做好基础。不管现在技术怎么变,大多是在hadoop的基础上升级的,而且hadoop如今技术体系成熟稳定,还是很有市场的。

 

 

 

0 0
原创粉丝点击