设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

关于Hadoop你需要知道的几件事情

2013-11-28 10:49| 发布者: joejoe0332| 查看: 3954| 评论: 0|原作者: 崔康|来自: infoQ

摘要:   在当今的技术领域,大数据是个热门的IT流行词语。为了减轻处理大量数据时的复杂度,Apache开发了Hadoop——一个可靠的、可扩展的分布式计算框架。Hadoop特别适合大数据处理任务,并且它可以利用其分布式的文件系 ...

  在当今的技术领域,大数据是个热门的IT流行词语。为了减轻处理大量数据时的复杂度,Apache开发了Hadoop——一个可靠的、可扩展的分布式计算框架。Hadoop特别适合大数据处理任务,并且它可以利用其分布式的文件系统,可靠并且低成本的将数据块复制到集群中的节点上去,从而使数据能在本地机器上进行处理。Anoop Kumar从十个方面讲解了利用Hadoop处理大数据所需要的技巧。


  对于从HDFS中导入/导出数据方面,Anoop指出,在Hadoop的世界中,数据可以从多种不同的来源中被导入到Hadoop分布式文件系统中(HDFS)。在向HDFS中导入数据后,将通过用MapReduce或者其他语言比如HivePig等来对数据进行某一层次的处理。


Hadoop系统不仅提供了处理大量数据的灵活性,并且同时也可以对数据进行过滤和聚合等处理,并且被处理转换过的数据可以导出到外部数据库或者其他使用Sqoop的数据库中。从MySQL、SQL Server或者MongoDB等其他数据库中导出数据也是一个强大的功能。这样的益处是可以更好的控制数据。


  第二个方面是HDFS中的数据压缩,Hadoop中的数据存储在HDFS上,并且支持数据的压缩与解压缩。数据压缩可以通过一些压缩算法来实现,例如bzip2gzip、LZO等。不同的算法可以根据其功能在不同的情况下使用,比如压缩/解压缩的速度或者文件分割的能力等。


  在Hadoop的转换方面,Hadoop是一个用于提取和转换大量数据的理想环境。同时,Hadoop提供了一个可扩展、可靠的并且分布式的处理环境。通过使用MapReduce、Hive和Pig等,可以用很多种方式来提取并转换数据。


一旦输入数据被导入或放置到HDFS中,之后Hadoop集群可以被用于并行转换大型数据集。正如刚才提到的,数据转换可以通过可用工具来实现。例如,如果你想把数据转换为一个被制表符分开的文件,那么MapReduce则是最好的工具之一。同理,Hive和Python可以被用于清理和转换地理事件的数据资料。


  对于如何实现通用的任务,Anoop介绍说,有很多通用的任务需要在数据的日常处理中被完成,并且其使用频率是很高的。一些如Hive、Pig和MapReduce等可用的语言可以协助你完成这些任务,并使你的生活更加轻松。


有时候一个任务可以通过多种方式来实现。在这种情况下开发人员或者架构师得做出正确的决定,从而实施最正确的方案。例如,Hive和Pig提供了数 据流和查询之间的一个抽象层,并且提供了它们编译产生的MapReduc工作流。MapReduce的功能可以用于扩展查询。Hive可以用 HiveQL(像SQL一样的说明性语言)来建立并且分析数据。并且,可以通过在Pig Latin中写入操作来利用Pig语言。


  在Hadoop组合大量数据,一般情况下,为了得到最终的结果,数据需要加入多个数据集一起被处理和联合。 Hadoop中有很多方法可以加入多个数据集。MapReduce提供了Map端和Reduce端的数据连接。这些连接是非平凡的连接,并且可能会是非常 昂贵的操作。Pig和Hive也具有同等的能力来申请连接到多个数据集。Pig提供了复制连接,合并连接和倾斜连接(skewed join),并且Hive提供了map端的连接和完整外部连接来分析数据。一个重要的事实是,通过使用各种工具,比如MapReduce、Pig和 Hive等,数据可以基于它们的内置功能和实际需求来使用它们。


  如何在Hadoop分析大量数据,Anoop指出,通常,在大数据/Hadoop的世界,一些问题可能并不复 杂,并且解决方案也是直截了当的,但面临的挑战是数据量。在这种情况下需要不同的解决办法来解决问题。一些分析任务是从日志文件中统计明确的ID的数目、 在特定的日期范围内改造存储的数据、以及网友排名等。所有这些任务都可以通过Hadoop中的多种工具和技术如MapReduce、Hive、Pig、GiraphMahout等来解决。这些工具在自定义例程的帮助下可以灵活地扩展它们的能力。

例如,图和机器学习的问题可以通过使用一个Giraph框架被解决,而不是通过MapReduce任务解决,这样可以避免写复杂的算法。Giraph框架在解决图和机器学习问题时比MapReduce任务更加有用,因为一些问题可能需要运用迭代的步骤来解决。


  Hadoop世界中的调试,调试在任何一个开发过程中都永远是个重要的过程。Hadoop环境中对于调试的需求和对Hadoop本身的需求一样重要。有一种说法是格式错误和意外的输入是很常见的,这将造成一切事务在一个较高的规模上中断。这也是处理大规模非结构化数据中的一个不幸的缺点。


虽然,单个任务被隔离并且给予了不同组的输入,但当跟踪各种事件时,它需要理解每个任务的状态。这可以通过多种可用的工具和技术来支持调试 Hadoop任务的过程,从而实现目标。例如,为了避免任何工作失败,有一种方法可以跳过坏记录,并且可以使用MapReduce中的计数器来跟踪不良记 录等。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部