我正在尝试在一个集群中设置来自 Apache Hadoop 堆栈的所有项目。搭建 apache hadoop 生态系统框架的顺序是什么。例如:Hadoop、HBase……如果你用一些特定的步骤进行测试,你能知道在部署过程中会遇到什么样的问题。主要部署框架(Hadoop、HBase、Pig、Hive、HCatalog、Mahout、Giraph、ZooKeeper、Oozie、avro、sqoop、mrunit、crunch,如果我遗漏了什么请补充)
3 回答
由于并非所有列出的产品都是依赖的,因此有不同的订单。
简而言之:
1. Hadoop(HDFS、MapReduce)
2. Pig、Hive、sqoop、Oozie
2. Zookeeper(HBase 需要)
3. HBase
我不是 100% 确定 Mahout、MRUnit 依赖项,但我认为只有在需要时才会使用 Hadoop。
Avro 不直接依赖于 hadoop——它是序列化库。
我会说部署是根据主要要求完成的,并且根据要求,您将选择需要哪些其他组件。我认为 Hadoop 设置如下: 1. Hadoop 核心(Hadoop Common + HDFS + MapReduce -> 一个大组件) 2. Hadoop 组件(取决于选择)
例如,您仅设置 1) 您仍然可以在将数据处理到 HDFS 时运行 MapReduce 作业。我希望你明白我的意思。
例如,现在您希望使用 Hive 和 Pig 进行数据分析工作,为此您可以在其上设置 Hive 和 Pig。
同时,您决定将此 Hadoop 集群与 SQL Server/SQL Azure 连接,以便将数据从 SQL Server/SQL Azure 导入 HDFS。为此,您可以设置 HiveODBC 和 Sqoop,这将为您提供将数据导入/导出 HDFS 到 SQL Server/Azure 的功能。HiveODBC 和 Sqoop 为您提供了将本地 Excel 和 Power Pivot 直接连接到 HDFS 并从那里获取配置单元表的功能。
如果你想在 HDFS 之上设置一个非 SQL 数据库,你当然可以选择 HBASE,它位于 HDFS 之上,你可以在其上运行 MapReduce 作业。
依此类推,取决于您的要求,您可以创建所需的列表并在集群/集群中进行设置。只要您有基本的 Hadoop 核心(见上文),就没有硬性规定需要什么,其余的可以在任何核心设置之上完成。
我
您可能会发现两个有趣的开源项目,它们可能会帮助您为您提供指导和想法:
- Apache Whirr - http://whirr.apache.org/
- Apache Bigtop - http://incubator.apache.org/bigtop/
看看他们做什么/用什么来部署你提到的项目,然后问自己:“你真的需要自己做/以不同的方式做吗?” ;-)