【问题标题】:Hadoop beginners [closed]Hadoop初学者[关闭]
【发布时间】:2011-03-17 16:58:06
【问题描述】:

我正在尝试使用 hadoop 练习一些数据挖掘算法。我可以单独使用HDFS,还是需要使用hive/hbase/pig之类的子项目?

【问题讨论】:

    标签: hadoop data-mining


    【解决方案1】:

    我找到了一个大学网站,其中包含一些仅基于 Hadoop 构建的 MapReduce 练习和解决方案:

    http://www.umiacs.umd.edu/~jimmylin/Cloud9/docs/index.html

    另外还有雅虎和谷歌的课程:

    http://developer.yahoo.com/hadoop/tutorial/

    http://code.google.com/edu/parallel/index.html

    所有这些课程都在普通 Hadoop 上运行,以回答您的问题。

    【讨论】:

    • 雅虎+1。我会学习简单的雅虎教程并对其进行扩展。使输入文件更大,更改 map/reduce 函数,从单个实例变为小型集群,并不断扩展您之前所做的工作。
    【解决方案2】:

    从初学者级别的普通 mapreduce 开始。您可以在下一级尝试 Pig/Hive/Hbase。

    除非你足够努力地使用普通 map reduce,否则你将无法欣赏 Pig/Hive/Hbase

    【讨论】:

    • +1。这绝对是值得的痛苦。
    【解决方案3】:

    我也会推荐 umd 网站。但是,您似乎对 Hadoop 完全陌生。我会推荐 Tom White 的书“Hadoop: THE Definant Guide”。它有点过时了[意味着 0.18 版本,而不是最新的 0.20+)。阅读它,做例子,你应该可以更好地判断如何构建你的项目。

    【讨论】:

      【解决方案4】:

      我正在尝试使用 hadoop 练习一些数据挖掘算法。

      使用在 Hadoop 之上运行的 Apache mahout。 [http://mahout.apache.org/][1]

      我可以单独使用HDFS,还是需要使用hive/hbase/pig等子项目?

      HDFS是hadoop的文件系统。它代表 Hadoop 分布式文件系统。无论您要在 Hadoop 堆栈中使用什么工具,它们都应该处理分布式环境中的数据。所以,你不能只用 HDFS 做任何事情。您需要任何计算技术/工具,如 Map Reduce、Pig、Hive 等。

      希望这会有所帮助!

      【讨论】:

        【解决方案5】:

        您也可以使用 Mahout http://mahout.apache.org/

        它是一个机器学习和数据挖掘库,可以在 Hadoop 之上使用。

        一般来说 Mahout 目前支持(取自 Mahout 网站):

        • 协同过滤
        • 基于用户和项目的推荐器
        • K-Means、模糊 K-Means 聚类
        • 均值偏移聚类
        • Dirichlet 过程聚类
        • 潜在狄利克雷分配
        • 奇异值分解
        • 并行频繁模式挖掘
        • 互补朴素贝叶斯分类器
        • 基于随机森林决策树的分类器

        【讨论】:

          【解决方案6】:

          您可以将 R、Spark Hadoop 一起用作完整的开源解决方案。

          1. R- 提供许多现成库的统计语言。

          2. Spark- 使用机器学习算法比 MR 更快地处理数据的框架。

          3. Hadoop - 基于商用硬件的可扩展且稳健的数据存储。

          【讨论】:

            【解决方案7】:

            Hadoop 是一种用于分布式/并行数据处理的工具。 Mahout 是一个数据挖掘/机器学习框架,既可以在独立模式下工作,也可以在 Hadoop 分发环境中工作。将其单独使用或与 Hadoop 一起使用的决定归结为需要挖掘的历史数据的大小。如果数据大小为 TB 和 PB 量级,则通常将 Mahout 与 Hadoop 结合使用。

            Mahout 支持 3 种机器学习算法,推荐、聚类和分类。曼宁的Mahout in action一书很好地解释了这一点。 Weka 是另一个类似的开源项目。所有这些都属于称为机器学习框架的类别。

            请参阅博客,其中讨论了有关Mahout and Hadoop distributed file system works 的用例如何?作为这方面的先驱,Component architecture 上还有一个博客,介绍了这些工具中的每一个如何结合在一起解决 Hadoop /Mahout 生态系统中的数据挖掘问题。

            【讨论】:

              【解决方案8】:

              取决于您的应用程序。您需要了解 hive、pig、hbase 的用途,然后您才能确定它们在您的应用程序中的确切位置。这些都是创建的具体原因,你需要了解简单的google会得到结果

              【讨论】:

                【解决方案9】:

                HDFS 是一种分布式存储系统,用于转储您的数据以进行进一步分析。

                Hive/Pig/MR/Spark/Scala 等......是分析数据的工具。您实际上是在其中任何一个中编写算法。仅通过 Pig/Hive/Hbase 无法达到 100%。您应该知道如何编写 Map Reduce 算法,并且需要将这些算法导入 Hive/Pig。

                ETL 工具: 猪(脚本语言) Hive(结构化数据的类似 SQL 的查询语言) HBASE for Unstructured data 可以实现实时数据分析。 MapReduce 是分步操作的,Spark 是在 整个数据集一气呵成。 Sqoop : 从 RDDMS 导入/导出数据 Flume: 将流式数据导入 hadoop Mahout:机器学习算法工具

                Hadoop 权威指南适合初学者入门。

                【讨论】:

                  【解决方案10】:

                  您必须根据 Hadoop 生态系统的优势使用不同的工具。

                  HiveHbase 可以很好地处理结构化数据

                  Sqoop用于从传统RDBMS数据库Oracle、SQL Server等导入结构化数据。

                  Flume 用于处理非结构化数据。

                  您可以使用内容管理系统来处理非结构化数据和半结构化数据 - Tera 或 Peta 字节的数据。如果您要存储非结构化数据,我更喜欢将数据存储在 CMS 中,并使用 NoSQL 数据库(如 HBASE)中的元数据信息>(例如Image Id , MD5SUM of image

                  要处理大数据流,可以使用Pig

                  Spark 是用于 Hadoop 数据的快速通用计算引擎。 Spark 提供了一种简单而富有表现力的编程模型,支持广泛的应用,包括 ETL、机器学习、流处理和图计算

                  看看Structured DataUn-Structured data 在Hadoop 中的处理

                  看看完整的 hadoop ecosystem 和这个 SE question

                  【讨论】:

                    猜你喜欢
                    • 2020-07-25
                    • 1970-01-01
                    • 2018-08-03
                    • 1970-01-01
                    • 2010-09-06
                    • 2013-06-28
                    • 2012-07-20
                    • 2021-02-13
                    • 2010-09-23
                    相关资源
                    最近更新 更多