如何开始探索大数据,Hadoop及其生态系统组件?

时间:2014-11-25 12:26:31

标签: hadoop bigdata

我刚刚开始探索BigData技术和Hadoop框架。

但是,要与这么多生态系统组件和框架混淆。你能否建议你有一个有条理的学习开始?

我的意思是应该关注哪个生态系统组件?是特别还是全部?

非常感谢!

Ranit

5 个答案:

答案 0 :(得分:4)

几个月前我在Quora上写了这个答案。希望这会有所帮助:

<强> 1。浏览Hadoop上的一些介绍性视频 在直接开始研究之前,对hadoop有一些高级概念非常重要。这些介绍性视频将有助于理解Hadoop的范围以及可以应用它的用例。有相同的在线资源可供使用,并且浏览任何视频都是有益的。

<强> 2。了解MapReduce 帮助我的第二件事是了解Map Reduce是什么以及它是如何工作的。本文非常精确地解释了这一点:http://static.googleusercontent ....

另一个很好的教程可以在这里找到:http://ksat.me/map-reduce-a-real ...

对于第1点和第2点,请进行第一周视频讲座的前四个讲座。分布式计算和地图缩减的整个概念在这里得到了很好的解释。 https://class.coursera.org/mmds-001/lecture

第3。 Cloudera VM入门 一旦了解了Hadoop的基础知识,就可以下载cloudera提供的VM并开始在其上运行一些hadoop命令。您可以从以下链接下载VM:http://www.cloudera.com/content/ ...

熟悉VM上的基本Hadoop命令并了解其工作原理会很不错。

<强> 4。设置独立/伪分布式Hadoop  一旦您熟悉使用VM的Hadoop,我建议您在机器上设置自己的独立Hadoop。迈克尔·诺尔在本博客上非常清楚地解释了安装的步骤:在Ubuntu Linux(单节点集群)上运行Hadoop - Michael G. Noll

<强> 5。了解Hadoop生态系统 熟悉Hadoop生态系统中的其他组件,比如Apache Pig,Hive,Hbase,Flume-NG,Hue等,这将是很好的。所有这些都有不同的用途,所有这些信息对于构建任何产品都非常有用。 hadoop生态系统。您可以在计算机上轻松安装所有这些并开始使用它们。 Cloudera VM by已经安装了大部分这些。

<强> 6。编写地图减少工作 一旦完成步骤1-5,我不认为编写Map Reduce会是一个挑战。 “权威指南”对此进行了详细解释。如果MapReduce真的让你感兴趣的话,我建议你阅读这本书,由Anand Rajaraman,Jure Leskovec和Je ff rey D. Ullman撰写的“挖掘大量数据集”:斯坦福的页面

答案 1 :(得分:2)

我建议首先选择 Hadoop ,它是很多其他系统的基础。查看主站点:http://hadoop.apache.org/并查看Cloudera,它们提供了一个虚拟映像(称为CDH),它随预装的所有内容一起提供,因此您可以在不必处理安装问题的情况下立即采取行动:{{ 3}}

之后,我会研究HDFS,只是为了更多地了解Hadoop如何存储数据,然后它将取决于您尝试解决的问题类型,每个特定的系统都会处理特定的问题(通常)不同的问题:

  • Hive / Cassandra:用于类似数据库的交互
  • Pig:用于数据转换。
  • Spark:用于实时数据分析

点击此链接了解更多详情:http://www.cloudera.com/content/cloudera/en/downloads/cdh/cdh-5-2-0.html

我希望你发现它很有用。

答案 2 :(得分:2)

大数据是传统数据处理应用程序不足的大型或复杂数据集的广义术语。挑战包括分析,捕获,数据管理,搜索,共享,存储,传输,可视化和信息隐私 - 来自维基百科

Hadoop是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。

Hadoop中有四个主要模块。

1. Hadoop Common :支持其他Hadoop模块的常用实用程序。

2.Hadoop分布式文件系统( HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。

3.Hadoop YARN :作业调度和集群资源管理的框架。

4.Hadoop MapReduce :基于YARN的系统,用于并行处理大型数据集。

在进一步说明之前,请注意我们有三种不同类型的数据。

结构化:结构化数据具有强大的架构,并且在写入期间将检查架构。读操作。例如RDBMS系统中的数据,如Oracle,MySQL Server等。

非结构化:数据没有任何结构,可以是任何形式 - Web服务器日志,电子邮件,图像等。

半结构化:数据没有严格的结构,但有一些结构。例如XML文件

根据要处理的数据类型,我们必须选择正确的技术。

更多项目,它们是Hadoop的一部分

HBase™:一个可扩展的分布式数据库,支持大型表的结构化数据存储。

Hive ™:提供数据汇总和临时查询的数据仓库基础架构。

Pig™:用于并行计算的高级数据流语言和执行框架

Hive Vs PIG 比较可以在question

的其他帖子中找到

HBASE 不会取代Map Reduce。 HBase 是可扩展的分布式数据库&amp; Map Reduce 是用于分布式数据处理的编程模型。 Map Reduce可以在处理过程中对HBASE中的数据起作用。

您可以将 HIVE / HBASE 用于结构化/半结构化数据,并使用Hadoop Map Reduce进行处理

您可以使用 SQOOP 从传统的RDBMS数据库Oracle,SQL Server等导入结构化数据,并使用Hadoop Map Reduce进行处理

您可以使用 FLUME 处理非结构化数据并使用Hadoop Map Reduce进行处理

查看:Hadoop Use Cases

应该使用

Hive 来分析查询一段时间内收集的数据。例如计算趋势,总结网站日志,但它不能用于实时查询。

HBase 适合实时查询大数据。 Facebook将其用于消息传递和实时分析。

PIG 可用于构建数据流,运行预定作业,处理大量数据,汇总/汇总数据并存储到关系数据库系统中。适用于临时分析。

Hive 可用于临时数据分析,但它不支持与PIG不同的所有非结构化数据格式

ZooKeeper 是一种集中式服务,用于维护配置信息,命名,提供分布式同步以及提供对各种分布式系统非常有用的组服务。没有ZooKeeper,HBase无法运行。

Apache Spark 是一种通用计算引擎,可以大规模地提供快速数据分析。 Spark基于HDFS构建,但绕过MapReduce,而是使用自己的数据处理框架。 Apache Spark的常见用例包括实时查询,事件流处理,迭代算法,复杂操作和机器学习。

Mahout™:可扩展的机器学习和数据挖掘库。

Tez™:一个基于Hadoop YARN的通用数据流编程框架,它提供了一个强大而灵活的引擎,可以执行任意DAG任务来处理批量和交互式使用的数据 - 案例。 Tez正被Hadoop生态系统中的Hive™,Pig™和其他框架以及其他商业软件(例如ETL工具)采用,以取代Hadoop™MapReduce作为底层执行引擎

我只介绍了Hadoop生态系统的一些关键组件。如果您想查看生态系统的所有组件,请查看此ecosystem table

如果上表很难消化,请查看this article

的缩小版生态系统

但要了解所有这些系统,我希望您先从Apache网站开始,稍后再探讨其他文章。

答案 3 :(得分:0)

大数据本身并不是一项技术,而是一种概念。

你可以想到数据库,数据库本身并不是一项技术,它是一个概念。 Oracle,DB2等是数据库技术。

回到大数据,这个概念用于处理难以使用传统数据库或技术分析的大量数据。人们认为hadoop是bigdata的同义词,但我再次告诉你,Hadoop只不过是Apache开发的实现bigdata概念的技术。

Hadoop有自己的文件系统hdfs,它使用mapreduce来解决bigdata问题。除了Hadoop之外,还有一个类似于sql的hive,但在内部它使用map reduce。 Hbase类似于nosql数据库。 Pig是脚本语言,它在内部使用mapreduce。

MapR,Hortonworks,Cloudera等大数据有许多许可版本。

所以开始学习Hadoop - HDFS,Mapreduce,Yarn,Hive。

答案 4 :(得分:0)

我学习Hadoop的事情。

a)从头开始安装Hadoop。我的意思是下载CentOs,Hadoop,JAVA等,并手动安装它们。

b)了解HDFS的工作原理。

c)了解MapReduce的工作原理。

d)在JAVA中写字数。

这将有助于您入门。