写点什么

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

2013 年 11 月 27 日

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

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

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

第二个方面是HDFS 中的数据压缩,Hadoop 中的数据存储在 HDFS 上,并且支持数据的压缩与解压缩。数据压缩可以通过一些压缩算法来实现,例如 bzip2 gzip 、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、 Giraph Mahout 等来解决。这些工具在自定义例程的帮助下可以灵活地扩展它们的能力。

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

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

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

易于控制的 Hadoop 系统,产品开发是一项重要的活动,系统维护也是同样重要的,它有助于决定产品的未来。在 Hadoop 中,环境设置、维护和环境监测、以及处理和调整 MapReduce 任务都非常需要从 Hadoop 系统中受益。为此 Hadoop 提供了很大的灵活性来控制整个系统,Hadoop 的可在三种不同的模式中进行配置:即独立模式、伪分布式模式和完全分布式模式。

Ganglia 框架的帮助下,整个系统可以被监测并且能对节点的健康状态进行跟踪。另外,参数配置功能提供了对 MapReduce 的任务控制。Hadoop 系统有很好的灵活性可以轻松搞定整个系统的级别控制。

可扩展的持久性。有很多选择可以处理海量的结构化和非结构化的数据,但是储存海量数据的可扩展性仍然是数据世界中的主要问题之一。Hadoop 系统打算用 Accumulo 来缓解这个问题。Accumulo 是被谷歌的 BigTable 的设计所启发的,并且建立在 Hadoop、 Zookeeper Thrift 的基础之上,同时它给 Hadoop 提供可扩展的、分布式的、且基于单元持久性的数据备份。Acumulo 带来了一些 BigTable 设计之上的改进,以一种基于单元的访问控制和服务器端的编程机制来帮助在数据管理过程中修改不同点的键 / 值对。

Hadoop 中的数据读取和写入发生在 HDFS 上。HDFS 即 Hadoop 的分布式文件系统,并且是具有容错性的分布式文件系统。它在对进行文件流读取的大型文件进行了优化,而且和 I/O 吞吐量相比,更倾向于低延迟。有很多可以高效的从 HDFS 中读取和写入文件的方法,比如说 API 文件系统、MapReduce 以及高级串行化库等。

2013 年 11 月 27 日 05:405578
用户头像

发布了 501 篇内容, 共 216.5 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营-Week1-作业2

车小勺的男神

架构第一课学习总结

师哥

Intellij IDEA 右击没有run

程李文华

钟离昧的第一张架构设计图之旅

X中倪

小师妹学JavaIO之:NIO中Channel的妙用

程序那些事

io nio 小师妹 buffer channel

SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)

小傅哥

小傅哥 中间件 springboot 分布式任务

LocalDateTime和Date的比较与区别

彭阿三

时间格式化 LocalDateTime Date

你并不理解i++和++i

flyhero

Java 程序员 JVM i++

Android 无埋点从入门到放弃:了解 Java 字节码

GrowingIO技术专栏

钟离昧的一梭子架构师之旅

X中倪

量子技术到底有哪些突破值得重点关注?

蔡芳芳

02-kubernetes自建CA及双向TLS认证

绿星雪碧

Kubernetes TLS CA证书

清华大佬马士兵告诉你阿里巴巴P5到P8级需要掌握哪些技术?

周老师

Java 程序员 架构 微服务 马士兵

架构师训练营--第1周总结感想

芥菜

使用VSCode连接到IBM Cloud区块链网络

程序那些事

智能合约 hyperledger fabric ibm cloud

架构师训练营第一周学习总结

R20114

独立开发者为什么不需要运营也能月薪几万,甚至几十万?

非著名程序员

程序员 独立开发者 副业赚钱 程序人生 提升认知

架构方法:架构师如何做架构

游戏夜读 | 如何成长为游戏人?

game1night

30岁,就被大厂抛弃了

J.Smile

求职

极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课

John(易筋)

极客时间 极客大学 架构设计 极客大学架构师训练营 架构文档

2020年6月11日 高性能MySQL

瑞克与莫迪

玄姐公开课总结【构建基于ServiceMesh的普适业务中台架构】

魔曦

架构 Service Mesh

系统/子系统/模块/组件/框架/架构

gen_jin

关于UML、4+1视图、系统架构的思考

吴建中

非结构化数据可视化 —— 现在与未来

做技术BP的文案Gou

人工智能 大数据 数据可视化 非结构化数据

【第一周】学习总结

黑莓

架构师训练营-Week1-作业1

车小勺的男神

让独立思考成为习惯

Neco.W

学习 深度思考 思考

数据库周刊27丨6月最新国产数据库排行;OB成立新公司奥星贝斯;腾讯云发布图数据库TGDB;Oracle坏块修复;MySQL故障排查导图;经典SQL语句大全...

墨天轮

数据库

数据同步,应该如何设计

迹_Jason

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