前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop和大数据分析简介

Hadoop和大数据分析简介

作者头像
双愚
发布2018-05-21 17:23:15
9850
发布2018-05-21 17:23:15
举报
hadoop
hadoop

原文作者:Saurabh Jha

原文地址:https://opensourceforu.com/2013/12/introduction-tohadoop-big-data-analysis/


Hadoop已经成为通过其Hadoop分布式文件系统(HDFS)存储大数据以及使用其MapReduce组件对存储的大数据进行分析的中央平台。本文主要探讨Hadoop的基础知识。

我们中的许多人肯定听说过大数据,Hadoop和数据分析。行业现在主要关注他们,Gartner将战略大数据和可操作分析确定为2013年十大战略技术趋势之一。

据Gartner网站称:“大数据正在从关注个人项目转向关注对企业战略信息架构的影响。处理数据量,品种,速度和复杂性迫使许多传统方法发生变化。这种认识正在促使组织放弃包含决策所需信息的单一企业数据仓库的概念。相反,他们正在转向多种系统,包括内容管理,数据仓库,数据集市以及与数据服务和元数据绑定在一起的专用文件系统,这些系统将成为合乎逻辑的企业数据仓库。

有各种系统可用于大数据处理和分析,Hadoop的替代品(如HPCC)或亚马逊新推出的Red Shift。但是,Hadoop的成功可以通过不同技术公司提供的Hadoop发行版的数量来衡量,例如IBM InfoSphere BigInsights,Azure上的Microsoft HDInsight Service,Cloudera Hadoop,Yahoo的Hadoop发行版等等。其成功背后基本有四个原因:

  • 这是一个开源项目。
  • 它可以用于多个领域。
  • 它在容错,可用性和文件系统方面有很大的改进空间。

还有最后一个原因就是可以像Hive,Pig,Jaql等那样在SQL中编写Hadoop作业,而不是使用复杂的MapReduce。这使公司能够修改Hadoop内核或其任何分发版以适应公司自己的需求和项目需求。在本文中,我们将只关注Hadoop的基础知识。但是,在本系列即将发表的文章中,我们将主要关注容错和Hadoop的可用性功能。

在形式上,Hadoop是一种开源、大规模、批量数据处理、分布式计算框架,用于大数据存储和分析。它有利于可扩展性并负责检测和处理故障。Hadoop通过在整个集群的不同节点中创建数据的多个副本,来确保数据的高可用性。默认情况下,复制因子被设置为3.在Hadoop中,代码被移动到数据的位置,而不是将数据移向代码。在本文的其余部分,“每当我提到Hadoop时,我都会引用可从http://hadoop.apache.org获得的Hadoop Core包”。 Hadoop有五个主要组件:

  • MapReduce(一个job tracker 和一个 task tracker)
  • NameNode和Secondary NameNode
  • DataNode(运行在slave节点上)
  • JobTracker(运行在master节点上)
  • TaskTracker(运行在slave节点上)

译者注:在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”,而从一个作业划分出的运行于各个计算节点的工作单元称为“任务(task)”。

MapReduce

MapReduce框架由Google引入。根据谷歌关于MapReduce的论文中的一个定义,MapReduce是一个简单而强大的界面,可以实现大规模计算的自动并行化和分布,结合该接口的一个实现,达到高性能大型pc集群。

它基本上有两个组件:Map和Reduce。MapReduce组件用于数据分析编程。它完全隐藏了用户的系统细节。

HDFS

Hadoop有自己的分布式文件系统实现,称为Hadoop分布式文件系统。它提供了一组命令,就像UNIX文件和目录操作一样。也可以将HDFS挂载为fuse-dfs并使用所有UNIX命令。数据块通常是128 MB; 因此,一个300 MB的文件将被分割为2 x 128 MB和1 x 44 MB。所有这些拆分块将在集群上被复制'N'次。N是复制因子,通常设为3。

NameNode

NameNode包含有关块的位置信息以及整个目录结构和文件的信息。这是集群中的单点故障,即如果NameNode发生故障,整个文件系统就会崩溃。因此Hadoop还包含一个辅助NameNode,它包含一个编辑日志,在NameNode发生故障的情况下,它可用于重放文件系统的所有操作,从而恢复文件系统的状态。辅助NameNode定期以NameNode的编辑日志的形式创建检查点映像。

DataNode

DataNode运行在所有的slave 机器上,并实际存储集群的所有数据。DataNode定期向NameNode报告存储的块列表。

Job Tracker and Task Tracker

Job Tracker运行在masteer主节点上,而Task Tracker运行在Slave副节点上,每个Task Tracker都有多个Task实例运行,,每一个Task Tracker都定期以心跳的形式向Job Tracker报告,这也包括了他正在执行的当前任务的细节,并且,如果它已经执行完毕,它就处于空闲状态。Job Tracker 调度作业,,并通过在其他节点上重新执行他们来处理失败的任务。Job Tracker目前是Hadoop集群中的一个单点故障。

Hadoop实际操作

让我们尝试一个简单的Hadoop字数统计范例。首先,您需要在您自己的Linux环境中设置Hadoop环境,或从https://ccp.cloudera.com/display/SUPPORT/CDH+Downloads获取预配置的虚拟机。如果您愿意自己配置Hadoop,请参阅Michael Noll着名的教程“在Ubuntu Linux(多节点群集)上运行Hadoop”。一旦完成了Hadoop的配置,您可以尝试下面给出的示例:

$HADOOP_HOME/bin/hadoop start-all.sh jps mkdir input nano wordsIn \\fill this file with random words and exit or copy a file into input dir in text format $HADOOP_HOME/bin/hadoop dfs -copyFromLocal ./input /user/hduser/input hadoop dfs -cat /user/hduser/input1/* \\ lists the content of file cd $HADOOP_HOME ./bin/hadoop jar hadoop-examples-1.0.4.jar wordcount /user/hduser/input /user/hduser/output ./bin/hadoop dfs -cat /user/hduser/output/* ./bin/stop-all.sh <a href="http://www.opensourceforu.com/wp-content/uploads/2013/12/Figure-110.jpg"><img class="alignleft size-large wp-image-13319" alt="Figure-1" src="http://www.opensourceforu.com/wp-content/uploads/2013/12/Figure-110-590x444.jpg" width="590" height="444" /></a><a href="http://www.opensourceforu.com/wp-content/uploads/2013/12/Figure-28.jpg"><img class="alignleft size-large wp-image-13320" alt="Figure-2" src="http://www.opensourceforu.com/wp-content/uploads/2013/12/Figure-28-590x401.jpg" width="590" height="401" /></a>

代码中的第一行为Hadoop启动所需的服务。使用jps命令可以查询系统上运行的所有Java虚拟机。您应该看到在您的系统上运行以下服务。

  • NameNode
  • DataNode
  • Secondary NameNode
  • Job Tracker
  • Task Tracker
  • Jps

如果上述任何服务未运行,则表示您的Hadoop无法正常启动。在第3行中(mkdir input),创建要复制到HDFS的本地文件夹。

在第4行中(nano wordsIn \\fill thisfilewith random words andexitor copy afileinto inputdirintextformat),创建一个文本文件并用一些随机文本填充它。

在第6行中(hadoop dfs  -cat/user/hduser/input1/* \\ lists the content offile),列出复制文件的内容。

在第8行中(./bin/hadoopjar hadoop-examples-1.0.4.jar wordcount/user/hduser/input/user/hduser/output),运行分发附带的Hadoop字数统计示例。

在第9行中(./bin/hadoopdfs -cat/user/hduser/output/*),列出生成结果的输出。

最后,在第10行中(./bin/stop-all.sh),停止所有Hadoop服务。

本文涵盖了大数据,分析和Hadoop的各个方面。我主要关注Hadoop架构,并指出Hadoop在容错和恢复方面的漏洞。我们还特别了解了NameNode和Job Tracker如何成为系统中的瓶颈。它们是整个系统的单点故障。许多Hadoop发行版都试图解决Hadoop Core中发现的容错和恢复问题。然而,实施容错和恢复算法会产生性能问题。在这个领域的研究重点是减少性能和可靠性问题,以获得两全其美。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档