使用Hadoop分析大数据

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

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

在这里我还是要推荐下我自己建的大数据学习交流qq裙:522189307 , 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴。上述资料加群可以领取

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

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

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

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

有许多用于存储和管理数据的开源软件框架,而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使机器学习算法更简单。

猜你喜欢

转载自blog.csdn.net/Myhoooyo/article/details/89752726