使用Hadoop分析大数据

Hadoop

大数据由于其庞大的规模而显得笨拙,并且大数据需要工具进行高效地处理并从中提取有意义的结果。Hadoop是一个用于存储,分析和处理数据的开源软件框架和平台。本文是Hadoop如何帮助分析大数据的初学者指南。

大数据(Big Data)是一个指大量数据的术语,包括传统数据库中存在的结构化数据以及文本文档,视频和音频等非结构化数据。大数据不仅仅是数据,也是各种工具、技术、框架和平台的集合。交通数据、搜索数据、证券交易所数据、社交媒体数据等都属于大数据的范畴。

从技术上讲,大数据是指一组大量的数据,可通过计算技术进行分析以提取模式并揭示有助于预测下一步的常见或重复的点——特别是人类行为,例如基于分析过去的购买模式的未来消费行为。

大数据不是关于数据量的问题,更多是关于人们用它来做什么。诸如商业公司和教育机构等许多组织正在使用这些数据来分析和预测某些行为的后果。收集数据后,它可以有这几个用途,如:

  • 降低成本
  • 开发新产品
  • 做出更快更明智的决定
  • 检测故障

今天,大数据几乎被所有行业所采用,包括银行,政府,制造业,航空公司和酒店等。

有许多用于存储和管理数据的开源软件框架,而Hadoop就是其中之一。它具有巨大的存储数据能力,高效的数据处理能力和做无数任务的能力。它是由Apache开发的基于Java的编程框架。有很多组织使用Hadoop —— 包括Amazon Web Services,Intel,Cloudera,Microsoft,MapR Technologies,Teradata等。

Hadoop的历史

Doug Cutting和Mike Cafarella是Hadoop历史上两位重要人物。他们希望通过将数据分布在多台机器上并行计算来更快地返回网络搜索结果,以便同时执行多个作业。那时,他们正在开发一个名为Nutch的开源搜索引擎项目。但是,与此同时,谷歌搜索引擎项目也在进行中。所以,Nutch被分成两部分(其中一部分涉及数据处理),这两个部分被命名为Hadoop——一个属于Cutting儿子的玩具大象。Hadoop于2008年由雅虎发布为开源项目。今天,Apache软件基金会维护着Hadoop生态系统。

使用Hadoop的先决条件

基于Linux的操作系统如Ubuntu或Debian是建立Hadoop的首选。有关Linux命令的基本知识很有帮助。此外,Java在Hadoop的使用中扮演着重要的角色。但人们可以使用他们喜欢的语言,如用Python或Perl来编写方法或函数。

Hadoop中有四个主要的库。

  1. Hadoop Common:这提供了Hadoop中所有其他模块使用的公用程序。
  2. Hadoop MapReduce:这是一个用于调度和处理数据的并行框架。
  3. Hadoop YARN:这是Yet Another Resource Navigator(另一个资源导航器)的首字母缩写。它是MapReduce的改进版本,用于Hadoop上运行的进程。
  4. Hadoop分布式文件系统(Hadoop Distributed File System ) - HDFS:存储数据并维护各种机器或群集上的记录。它也允许数据以可访问的格式存储。

HDFS将数据发送到服务器一次,并根据需要多次使用它。当引发查询时,NameNode管理提供给定查询的所有DataNode从属节点。Hadoop MapReduce执行所有按顺序分配的作业。Pig Hadoop和Hive Hadoop被用于更好的性能表现上,而不是MapReduce。

下面列出了其他可以支持Hadoop的软件包。

  • Apache Oozie:管理在Hadoop中发生的进程的调度系统
  • Apache Pig:运行Hadoop程序的平台
  • Cloudera Impala: Hadoop的处理数据库。最初它是由软件组织Cloudera创建的,但后来被作为开源软件发布
  • Apache HBase: Hadoop的非关系数据库
  • Apache Phoenix:基于Apache HBase的关系数据库
  • Apache Hive:用于汇总,查询和分析数据的数据仓库
  • Apache Sqoop:用于在Hadoop和结构化数据源之间存储数据
  • Apache Flume:用于将数据移动到HDFS的工具
  • Cassandra:可扩展的多数据库系统

Hadoop的重要性

Hadoop能够存储和处理各种类型的大量数据。在存储数据之前不需要预处理数据。Hadoop具有高度的可扩展性,因为它可以在并行运行的多台机器上存储和分发大型数据集。这个框架是免费的,并使用经济高效的方法。

  • Hadoop用于:
  • 机器学习
  • 处理文本文件
  • 图像处理
  • 处理XML消息
  • 网络爬虫
  • 数据分析
  • 营销领域分析
  • 统计数据研究

使用Hadoop时面临的挑战

Hadoop不提供简单的工具来清除数据中的噪音; 因此,保持这些数据是一个挑战。它有许多数据安全问题,如加密问题。流式作业和批处理作业不能有效执行。MapReduce编程对于涉及高度分析技能的工作而言效率低下。它是一个低级API的分布式系统。一些API对开发人员无用。

但也有好处。Hadoop有许多有用的功能,如数据仓库,欺诈检测和市场活动分析。这些有助于从收集的数据中获取有用的信息。Hadoop能够自动复制数据。因此有多份数据可被用作备份来防止数据丢失。

类似于Hadoop的框架

没有提及Hadoop的任何关于大数据的讨论都不是完整的。但是与其他技术一样,许多类似于Hadoop的框架已经被开发了。其他广泛使用的框架包括Ceph,Apache Storm,Apache Spark,DataTorrentRTS,Google BiqQuery,Samza,Flink和HydraDataTorrentRTS。

MapReduce需要很多时间才能执行分配的任务。Spark可以通过对数据进行内存中的处理来解决这个问题。Flink是另一个比Hadoop和Spark工作速度更快的框架。Hadoop对实时处理数据效率不高。Apache Spark使用对数据进行连续输入和输出的数据进行流处理。Apache Flink还为数据流和批处理提供单一运行时。

但是,Hadoop因其可扩展性,低成本和灵活性而成为大数据分析的首选平台。它提供了一系列数据科学家需要的工具。带有YARN的Apache Hadoop将大量原始数据转换为易于使用的特征矩阵。Hadoop使机器学习算法更简单。

本文的版权归 FesonX 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

《Hadoop大数据技术体系:原理、内幕与项目实践》课程体系

《Hadoop大数据技术体系:原理、内幕与项目实践》课程体系 课程特色: 本课程以 “互联网日志分析系统”这一大数据应用案例为主线,依次介绍相关的大数据技...

44350
来自专栏用户2442861的专栏

2分钟读懂大数据框架Hadoop和Spark的异同

谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟...

15740
来自专栏包子铺里聊IT

五分钟零基础介绍 Spark

相信大家都听说过火的不能再火、炒得不能再炒的新一代大数据处理框架 Spark. 那么 Spark 是何方神圣?为何大有取代 Hadoop 的势头?Spark 内...

38340
来自专栏包子铺里聊IT

5分钟深入 Hadoop 容错

通过之前几篇文章,我们对 Hadoop 的工作原理有了基本的了解,并且通过学习优化 Hadoop 性能,更深入的体会 Hadoop 处理数据的机制。今天我们聊聊...

296100
来自专栏PPV课数据科学社区

【学习】2分钟读懂大数据框架Hadoop和Spark的异同

  谈到大数据,相信大家对 Hadoop 和 Apache Spark 这两个名字并不陌生。但我们往往对它们的理解只是停留在字面上,并没有对它们进行深入的思考,...

37250
来自专栏CSDN技术头条

大数据分析工具大汇总

大数据分析Storm:Apache Storm是一种开源的分布式实时计算系统。Storm加速了流数据处理的过程,为Hadoop批处理提供实时数据处理。 Spar...

31870
来自专栏大数据技术学习

Storm与Spark、Hadoop三种框架对比

Storm与Spark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。所以,在不同的应用场景下,应该选择不同的框架。

50920
来自专栏华章科技

教你读懂大数据的技术生态圈

大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所需要的各种工具:锅碗瓢盆...

11630
来自专栏开源优测

大数据测试学习笔记之hadoop家族

前言 在进行大数据测试之前,我们必须了解下大数据处理的的相关技术体系,今天主要学习和了解了hadoop家族,这里记录下来分享给大家。 hadoop家族产品 ha...

32560
来自专栏原创

个推 Spark实践教你绕过开发那些“坑”

Spark作为一个开源数据处理框架,它在数据计算过程中把中间数据直接缓存到内存里,能大大地提高处理速度,特别是复杂的迭代计算。Spark主要包括SparkSQL...

435100

扫码关注云+社区

领取腾讯云代金券