Hadoop学习总结

前面几篇文章基本包括了Hadoop的主要基础内容,可以看到,Hadoop的关键部分主要就是MapReduce计算框架以及HDFS分布式文件系统,资源管理主要通过YARN进行。更加深入的内容,需要在工作和项目中历练,遇到问题寻求解决方案。


今天的文章主要从更加宏观的角度,对Hadoop进行一下总结。其中一些是自己的思考,一些是网上的意见,希望对大家将来使用和深入学习Hadoop有所帮助。


抛开Hadoop的各类框架,我们先来看看Hadoop本身具有的模块。Hadoop主要用来进行大数据的存储和分析,存储使用HDFS,分析则使用MapReduce。


HDFS是无可厚非的目前使用最为广泛的分布式文件系统,无论HBase还是Hive等等框架,底层依然是HDFS,它们所做的只是使得HDFS的操作方式更加多元化。


Hadoop的衰弱则主要体现在MapReduce部分,这主要是由于MapReduce是一个批处理系统,它不适合于处理交互式分析。MapReduce只能处理离线数据,也就是存储在磁盘上的数据。这样的方式不是很适合于当前的应用。所以Spark作为一个新的框架应运而生,而它只是取代了MapReduce的部分。所以,不应该说Spark的出现就让Hadoop失去了生存环境——Spark只是替换了MapReduce,而Spark必须在Hadoop的环境才能更好的生存,才能体现它的价值。


Hadoop比较适合于处理数据量为PB级的数据,这对于当前一般的企业,恐怕很难达到。所以也导致Hadoop真正的使用面并不是很广,不过国内BAT都在使用,另外,移动联通以及银行也在使用。


所以,是否使用Hadoop是由你的数据量决定的,而是否需要使用某个框架,是由你的架构以及业务需求决定的。如果只有GB级的数据,完全没有必要使用Hadoop,使用数据库系统就能很好地解决问题。


那么,Hadoop的框架主要有哪些呢?分别起到了什么样的作用?下面给出简单的介绍,我也在学习中,不是所有的都有了解,需要的时候,我们再去学习吧,但是至少应该知道我们有哪些工具可以使用。


Avro:Avro是一个独立于编程语言的数据序列化系统。Avro数据用一种模式语言定义,这种模式语言类似于JSON,Avro解析模式语言的数据描述,可以执行序列化和反序列化。这样就使得数据更加独立,不依赖于使用数据的平台和编程语言。我们可以将数据通过Avro写入HDFS,也可以从HDFS读取出来。


Flume:Flume类似于连接Hadoop中各个组件的管道,管道中输送的是流式的数据,使用Flume可以优化数据的传输。


Sqoop:实现数据在关系型数据库和HDFS之间的双向传输。


Pig:让你可以使用类似于SQL的方式(Pig称之为Pig Latin)来访问HDFS上的数据。


Hive:Pigs Latin只能说是类似于SQL的方式,使用Hive则是完全使用和SQL基本一样的语句。


HBase:如果说Hive提供了一种操作HDFS的类SQL的方式,HBase就是提供了一种操作HDFS的类NoSQL的方式。


Spark:这个就是前面提到的代替MapReduce的家伙,其最大的优点就是计算在内存中进行,这使得计算速度得到极大地提高,不过还是要清楚,Spark只是一个计算框架,它不依赖于具体的集群。所以有些人说Spark革了Hadoop的命有点极端,只能说,Hadoop的MapReduce可以用Spark替换。


ZooKeeper:Hadoop的分布式协调服务。另外,还可以让你的系统对失败进行正确的处理。


以上就是一些常用的Hadoop框架,它们针对大数据处理各个方面的问题提供了解决方式。我们在需要时,可以优先考虑它们,如果使用某个组件可以很好地解决我们的问题,当然是最好不过的。


从上面可以看出,Hadoop依然是大数据处理的优选框架,虽然我们不一定有机会从事Hadoop相关的职业,但是,了解一些这个领域的知识还是获益匪浅,至少让我们的工具箱中多了一样工具,毕竟在这个数据量爆炸式增长的世界,我们谁也无法保证当前正在开发或者维护的系统不会达到这样的数据量。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark和Hadoop实验总结报告 一、实验背景 本次实验是为了了解分布式系统中的大数据处理工具,主要学习Apache Spark和Hadoop两个分布式大数据处理工具的使用和比较。 二、实验目的 1. 了解Apache Spark和Hadoop大数据处理框架的基本原理和架构; 2. 学习使用Spark和Hadoop处理大规模数据; 3. 掌握Spark和Hadoop的优缺点比较。 三、实验内容 1. 安装配置Hadoop和Spark; 2. 学习Hadoop和Spark的基本概念和使用方法; 3. 使用Hadoop和Spark进行数据处理; 4. 分析比较Hadoop和Spark的优缺点。 四、实验步骤 1. 安装配置Hadoop和Spark 我采用的是在Ubuntu 18.04系统下使用wget工具下载并解压Hadoop、Spark等软件包进行安装配置。安装配置的过程中主要遇到了如下几个问题: (1) Hadoop配置文件修改:Hadoop的配置文件许多,操作起来较为繁琐,需要仔细阅读并修改配置文件信息。 (2) Spark的环境变量配置:Spark需要在bashrc文件做全局环境变量的配置。我遇到过Spark安装完成后,hadoop-daemon.sh start namenode启动失败的问题,其中还涉及到了Java的配置问题。最后通过重启Ubuntu系统和再次配置后解决。 2. 学习Hadoop和Spark基本概念和使用方法 Hadoop和Spark都是分布式大数据处理的工具。Hadoop分为两个子项目:HDFS和MapReduce,其中HDFS是分布式文件系统,MapReduce是分布式计算框架;而Spark则是一种快速、通用的集群计算系统,可以支持内存计算,对于迭代计算模型有较好的支持。 3. 使用Hadoop和Spark进行数据处理 我采用了两个较基础的数据处理算法: (1) WordCount算法:统计给定文本中每个单词出现的次数。这是大数据处理领域中最常用的算法之一,也是Hadoop的HelloWorld。 (2) 温度计算算法:使用气象站收集的数据计算出每个月的平均气温。 通过这两个算法,我掌握了Hadoop和Spark的数据处理流程、API接口和调试方法。数据处理过程中我的主要工作是对Hadoop和Spark处理结果的正确性和可读性进行验证和评估。 4. 分析比较Hadoop和Spark的优缺点 (1) 简便性方面:Hadoop的安装配置过程较为繁琐,安装配置过程中遇到的问题也比较多,需要仔细阅读文档才能进行操作。相比之下,Spark的安装配置过程较为简单,同时也成为了大数据处理工具中的一种主流工具之一。 (2) 易用性方面:Hadoop的编写代码和编译打包需要耗费一定的时间,查错也比较困难,而Spark的交互式编程可以更直观便捷地进行数据操作。 (3) 性能方面:Spark的RDD(弹性分布式数据集)是一个高速缓存,可以将数据缓存到内存中,从而快速响应数据操作请求。而Hadoop的分布式计算则需要中间文件,处理较为频繁。因此在对大规模数据进行处理的时候,Spark具有更快的计算速度。 五、实验感想 本次实验,我对大数据处理这一领域有了更深入的了解。Hadoop和Spark都是本领域中非常重要的工具,在学习的过程中,我不仅提升了大数据处理能力,也加深了对分布式计算的理解,对未来的学习和工作都有一定的借鉴意义。 总之,本次实验内容丰富,操作繁琐,不过从中我也收获颇丰,掌握了Spark和Hadoop数据处理的基本操作和API接口,了解了Hadoop和Spark的优缺点。通过实验,我进一步加深了对专业知识的理解,同时也获得了实践经验,对以后的学习和研究具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值