【问题标题】:How do I add Hive support in Apache Spark? [duplicate]如何在 Apache Spark 中添加 Hive 支持? [复制]
【发布时间】:2019-07-31 01:33:45
【问题描述】:

我有以下设置: - HDFS - 蜂巢 - 远程 Hive Metastore(和一个 Metastore 数据库) - Apache Spark(从https://archive.apache.org/dist/spark/spark-2.4.3/下载并安装)

我可以按预期使用 Hive,创建表 - 从 HDFS 读取数据等等。但是,无法通过 Hive 支持运行 spark。每当我运行val sparkSession = SparkSession.builder().appName("MyApp").enableHiveSupport().getOrCreate()

我收到java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found.

Hive 类在路径中,我已经复制了 hive-site.xml、core-site.xml 和 hdfs-site.xml

我是否需要使用 hive 支持构建 spark(如此处所述:https://spark.apache.org/docs/latest/building-spark.html#building-with-hive-and-jdbc-support)才能使 spark 与 hive 一起使用?

是否有可用的带有 Hive 支持 tar 的 Spark,我可以提取它而不是从源代码构建?

谢谢!

【问题讨论】:

    标签: apache-spark hive hive-metastore


    【解决方案1】:

    你在什么环境下运行 spark?简单的答案是让任何可用的打包工具完成所有繁重的工作。例如,如果你在 osx 上使用 brew 来安装所有东西。如果您在 maven/sbt 项目中,请引入 spark-hive 包等。

    我需要用 hive 支持构建 spark

    如果您是从源代码手动构建火花,是的。这是一个示例命令。 (但您可能不必这样做)

    ./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests 清理包

    http://spark.apache.org/docs/latest/building-spark.html#building-with-hive-and-jdbc-support

    如果你缺课,spark 会在内部检查 hive-exec-1.2.1.spark.jar 中是否存在“org.apache.hadoop.hive.conf.HiveConf”。请注意,这是一个自定义版本的 hive,旨在与 spark 完美配合。

    https://mvnrepository.com/artifact/org.spark-project.hive/hive-exec/1.2.1.spark

    【讨论】:

    • 感谢@Andrew Long 的回复,我正在使用 docker 在容器中安装和构建 Spark。它基于 debian:stretch 图像 - 所以从 archive.apache.org/dist/spark/spark-2.4.3 获取 tar 并使用 tar 提取源代码。看来我无论如何都必须从源代码构建!
    • 是否有可用 Hive 支持构建的 tar?
    • 添加了一个包含您需要的确切 jar 的更新。
    • 太棒了!谢谢!我认为这就是我要找的。也就是说,与此同时,我开始研究从源头构建火花。我将尝试添加您首先提到的 JAR。
    • 使用该 Jar 不起作用。我猜我必须在配置单元支持的情况下从源代码构建它
    猜你喜欢
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 2013-12-31
    • 2013-12-30
    • 1970-01-01
    相关资源
    最近更新 更多