【问题标题】:How to create pom.xml for maven using SparkSql and Hive?如何使用 SparkSql 和 Hive 为 maven 创建 pom.xml?
【发布时间】:2017-03-04 06:21:39
【问题描述】:

我为 SparkSql 和 Hive 连接创建了一个 Maven 项目并编写了以下示例代码:

SparkSession spark = SparkSession
            .builder()
            .appName("Java Spark Hive Example")
            .master("local[*]")
            .config("hive.metastore.uris", "thrift://localhost:9083")
            .enableHiveSupport()
            .getOrCreate();
try{
    spark.sql("select * from health").show();
} catch(Exception AnalysisException) {
    System.out.println("table not found");
}

我正在使用 Spark 2.1.0 和 Hive 1.2.1

为了运行上述代码,我从 Spark 文件夹中导入 Jar 文件并将其包含在项目中。我没有将 Maven Pom.xml 用于这项特定的工作。但是当我迁移到 AWS 等更大的集群时,我需要运行我的 JAR 文件。

我无法运行,因为 Maven 无法找到依赖项。所以我想到了添加依赖项。我试过这个:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>2.1.0</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>

但它不起作用,我无法看到之前通过添加 JAR 文件获得的输出。
我想知道我是否做错了什么,如果是,请建议我该怎么做?即使按照文档中的 Spark 说明,我如何在 pom.xml 中将 hive-site.xmlhdfs-site.xml 添加到我的项目中?目前使用 IntelliJ。 请让我知道我能做些什么来解决我的问题?

【问题讨论】:

    标签: maven apache-spark intellij-idea hive apache-spark-sql


    【解决方案1】:

    我发现依赖项配置错误。

    在您的 maven 依赖项中,您的 spark-sqlspark-hive 的版本为 1.2.1,但 spark-core 的版本为 2.1.0

    将所有依赖项更改为相同的版本号,这应该可以工作

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

    spark-core 依赖http://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10/2.1.0 spark-sql 依赖 http://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10/2.1.0 spark-hive依赖http://mvnrepository.com/artifact/org.apache.spark/spark-hive_2.10/2.1.0

    【讨论】:

    • hive-site.xml 怎么样?需要手动放吗?
    • 是的,您需要将hive-site.xml 文件放入您的项目resources
    • 没有兄弟它没有工作。我试过了。它在依赖项上显示为红色。我认为maven不存在依赖关系。
    • maven 仓库中存在这些依赖项,请检查我在答案中添加的链接
    • pom.xml 第 26 行检查有错字,关闭依赖标记定义了两次,删除该行并再次尝试构建...
    猜你喜欢
    • 2012-04-19
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2011-05-10
    • 2012-07-24
    • 2020-06-07
    相关资源
    最近更新 更多