【问题标题】:Using HiveContext in Maven project在 Maven 项目中使用 HiveContext
【发布时间】:2015-05-09 23:15:54
【问题描述】:

我使用 Maven 构建了 Spark-1.2.1,以使用以下命令启用 Hive 支持: mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -DskipTests clean package

导致在/spark-1.2.1/core/target/scala-2.10/classes文件夹中生成一些类文件

现在如何在我的Eclipse + Maven 项目中使用这个新建的 Spark?我想在 Eclipse 中使用 Spark-SQL 的 HiveContext 类。

【问题讨论】:

    标签: eclipse scala maven apache-spark apache-spark-sql


    【解决方案1】:

    当您打算在 java 程序中使用 SparkSQL 时,您只需将适当的依赖项添加到您的 maven 项目中,您就可以使用所需的类。使用 hive 支持构建 spark 使您能够在 hive 支持下启动 spark 守护程序。它生成一个需要复制到所有 Spark 工作节点的程序集 jar。更多详情请查看here

    使 HiveContext 工作的 Maven 依赖项:

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.10</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-hive_2.10</artifactId>
        <version>1.2.1</version>
    </dependency>
    

    【讨论】:

    • 但是当我尝试使用mvn scala:compile 编译时,我收到了这个错误:错误:object hive is not a member of package org.apache.spark.sql
    • 使用你原来的命令 mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -DskipTests clean package 并将生成的jar复制到worker节点的lib目录中
    • 感谢 vikas,但如果满足所有依赖项,它至少应该让我编译项目。最重要的问题是我的 Eclipse 无法识别 org.apache.spark.sql.hive 包,即使我在 pom.xml 中提到了 Spark SQL 依赖项。你能告诉我工作节点的 lib 目录在哪里吗?
    • 这是两个不同的东西。您提到的支持 HiveContext 的命令需要通过 spark 运行时在运行时支持 Hive,这需要将构建的 jar 复制到每个工作节点。而当你尝试写一段代码时,需要在Java中访问HiveContext,你需要添加spark-core、spark-sql和spark-hive的maven依赖
    • @vikas,当我创建 HiveContext() 时,它将在其中查找配置单元元存储详细信息以及如何配置?
    猜你喜欢
    • 2023-03-16
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2012-10-15
    相关资源
    最近更新 更多