在大数据时代,Hadoop作为一个分布式计算框架,颇受青睐。在开发和运行处理海量数据的应用程序时,Hadoop能够实现高可靠性、高扩展性、高效性、高容错性和低成本。Anoop Kumar从十个方面给出了利用Hadoop处理大数据所需要的技巧。
1.从HDFS中导入/导出数据
Anoop指出,在Hadoop的世界中,数据可以从多种不同的来源中被导入到Hadoop分布式文件系统中(HDFS)。在向HDFS中导入数据后,将通过用MapReduce或者其他语言比如Hive、Pig等来对数据进行某一层次的处理。
Hadoop系统不仅提供了处理大量数据的灵活性,并且同时也可以对数据进行过滤和聚合等处理,并且被处理转换过的数据可以导出到外部数据库或者其他使用Sqoop的数据库中。
2.HDFS中的数据压缩
Hadoop中的数据存储在HDFS上,并且支持数据的压缩与解压缩。数据压缩可以通过一些压缩算法来实现,例如bzip2、gzip、LZO等。不同的算法可以根据其功能在不同的情况下使用,比如压缩/解压缩的速度或者文件分割的能力等。
3.Hadoop的转换
Hadoop是一个用于提取和转换大量数据的理想环境。同时,Hadoop提供了一个可扩展、可靠的并且分布式的处理环境。通过使用MapReduce、Hive和Pig等,可以用很多种方式来提取并转换数据。
一旦输入数据被导入或放置到HDFS中,之后Hadoop集群可以被用于并行转换大型数据集。正如刚才提到的,数据转换可以通过可用工具来实现。例如,如果你想把数据转换为一个被制表符分开的文件,那么MapReduce则是最好的工具之一。
同理,Hive和Python可以被用于清理和转换地理事件的数据资料。
4.如何实现通用的任务
有很多通用的任务需要在数据的日常处理中被完成,并且其使用频率是很高的。一些如Hive、Pig和MapReduce等可用的语言可以协助你完成这些任务,并使你的生活更加轻松。
有时候一个任务可以通过多种方式来实现。在这种情况下开发人员或者架构师得做出正确的决定,从而实施最正确的方案。
例如,Hive和Pig提供了数据流和查询之间的一个抽象层,并且提供了它们编译产生的MapReduce工作流。MapReduce的功能可以用于扩展查询。
Hive可以用HiveQL(像SQL一样的说明性语言)来建立并且分析数据。并且,可以通过在Pig Latin中写入操作来利用Pig语言。
5.在Hadoop组合大量数据
一般情况下,为了得到最终的结果,数据需要加入多个数据集一起被处理和联合。Hadoop中有很多方法可以加入多个数据集。MapReduce提供了Map端和Reduce端的数据连接。这些连接是非平凡的连接,并且可能会是非常昂贵的操作。
Pig和Hive也具有同等的能力来申请连接到多个数据集。Pig提供了复制连接,合并连接和倾斜连接(skewed join),并且Hive提供了map端的连接和完整外部连接来分析数据。
一个重要的事实是,通过使用各种工具,比如MapReduce、Pig和Hive等,数据可以基于它们的内置功能和实际需求来使用它们。
6.Hadoop分析大量数据
通常,在大数据/Hadoop的世界,一些问题可能并不复杂,并且解决方案也是直截了当的,但面临的挑战是数据量。在这种情况下需要不同的解决办法来解决问题。一些分析任务是从日志文件中统计明确的ID的数目、在特定的日期范围内改造存储的数据、以及网友排名等。
所有这些任务都可以通过Hadoop中的多种工具和技术如MapReduce、Hive、Pig、Giraph和Mahout等来解决。这些工具在自定义例程的帮助下可以灵活地扩展它们的能力。
7.Hadoop世界中的调试
调试在任何一个开发过程中都永远是个重要的过程。Hadoop环境中对于调试的需求和对Hadoop本身的需求一样重要。有一种说法是格式错误和意外的输入是很常见的,这将造成一切事务在一个较高的规模上中断。这也是处理大规模非结构化数据中的一个不幸的缺点。
虽然,单个任务被隔离并且给予了不同组的输入,但当跟踪各种事件时,它需要理解每个任务的状态。这可以通过多种可用的工具和技术来支持调试Hadoop任务的过程,从而实现目标。例如,为了避免任何工作失败,有一种方法可以跳过坏记录,并且可以使用MapReduce中的计数器来跟踪不良记录等。
8.易于控制的Hadoop系统
产品开发是一项重要的活动,系统维护也是同样重要的,它有助于决定产品的未来。在Hadoop中,环境设置、维护和环境监测、以及处理和调整MapReduce任务都非常需要从Hadoop系统中受益。
为此Hadoop提供了很大的灵活性来控制整个系统,Hadoop的可在三种不同的模式中进行配置:即独立模式、伪分布式模式和完全分布式模式。
在Ganglia框架的帮助下,整个系统可以被监测并且能对节点的健康状态进行跟踪。另外,参数配置功能提供了对MapReduce的任务控制。Hadoop系统有很好的灵活性可以轻松搞定整个系统的级别控制。
9.可扩展的持久性
有很多选择可以处理海量的结构化和非结构化的数据,但是储存海量数据的可扩展性仍然是数据世界中的主要问题之一。Hadoop系统打算用Accumulo来缓解这个问题。
Accumulo是被谷歌的BigTable的设计所启发的,并且建立在Hadoop、Zookeeper 和Thrift的基础之上,同时它给Hadoop提供可扩展的、分布式的、且基于单元持久性的数据备份。Acumulo带来了一些BigTable设计之上的改进,以一种基于单元的访问控制和服务器端的编程机制来帮助在数据管理过程中修改不同点的键/值对。
10.Hadoop中的数据读取和写入
HDFS即Hadoop的分布式文件系统,并且是具有容错性的分布式文件系统。它在对进行文件流读取的大型文件进行了优化,而且和I/O吞吐量相比,更倾向于低延迟。
有很多可以高效的从HDFS中读取和写入文件的方法,比如说API文件系统、MapReduce以及高级串行化库等。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
Cloudera-Hortonworks合并或将减少Hadoop用户的选择
近日大数据领域两家顶级供应商达成交易协议,这可能会影响Hadoop和其他开源数据处理框架,并使大数据用户的技术 […]
-
数据分析是关于文化,而非技术
在新加坡,Tableau公司新数据准备工具发布会上,发言人表示,数据分析日益盛行的原因在于数据量呈指数级增长以 […]
-
攻关克难:大数据系统中的预测技术
大数据分析近年来逐渐成为预测分析技术的代名词。这使得越来越多的人以为,任何用于预测分析的系统都必定涉及大数据; […]
-
让工业无忧 天泽智云发布工业智能应用孵化器GenPro
工业世界看似离我们遥远,却与我们的福祉紧密相连。数据和智能分析赋予我们更加广阔的视野,能够以预测的方式管理和避免还未发生的问题。