【问题标题】:Spark cluster - read/write on hadoopSpark 集群 - 在 hadoop 上读/写
【发布时间】:2017-07-10 11:56:36
【问题描述】:

我想从 hadoop 读取数据,在 spark 上处理,并在 hadoop 和弹性搜索上写入结果。我几乎没有工作节点来执行此操作。

Spark 独立集群是否足够?或者我是否需要制作 hadoop 集群才能使用 yarn 或 mesos?

如果standalone集群模式就足够了,是不是应该像yarn、mesos模式那样在所有节点上设置jar文件?

【问题讨论】:

    标签: hadoop apache-spark elasticsearch hadoop-yarn


    【解决方案1】:

    首先,您不能在 Hadoop 中写入数据或从 Hadoop 中读取数据。负责读取/写入数据的是 HDFS(Hadoop 生态系统的组件)。 现在来回答你的问题

    1. 是的,可以从 HDFS 读取数据并在 spark 引擎中对其进行处理,然后将输出写入 HDFS。

    2. YARN、mesos 和 spark Standalone 都是集群管理器,您可以使用它们中的任何一个来管理集群中的资源,它与 hadoop 无关。但是由于您想从/向 HDFS 读取和写入数据,因此您需要在集群上安装 HDFS,因此最好在所有节点上安装 hadoop,同时在所有节点上安装 HDFS。现在,无论您是想使用 YARN、mesos 还是 spark 独立,您都可以选择使用 HDFS,我自己使用 spark 独立进行集群管理。

    3. 目前尚不清楚您正在与哪些 jar 文件交谈,但我认为它是 spark 的,那么是的,您需要在每个节点上设置 spark jar 的路径,这样当火花跑的。

    【讨论】:

    • 错误的问题,好的答案。谢谢:) 我决定在系统上使用纱线。如果是这样,这是否能够将结果输出数据写入单个 hdfs,以便用于其他输入数据?
    • 是的,一旦写入 hdfs,它就可以用作其他 map reduce 作业的输入。但是,如果您的意思是单个输出文件,那么单个 hdfs 则需要使用单个减速器,因为每个减速器都会创建单独的输出文件,尽管所有文件都保存在同一目录中。另一个极端情况是,如果您的输出文件太大,那么它将被拆分为多个输出文件,但是您也可以通过覆盖 RecordWriter 来控制它。 reduce 任务的输出通常通过 TaskInputOutputContext.write(Object, Object) 写入 RecordWriter。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    相关资源
    最近更新 更多