当前位置: 首页 > 知识库问答 >
问题:

使用Spark SQL访问配置单元表

高泳
2023-03-14

我设置了一个AWS EMR集群,其中包括Spark 2.3.2、hive 2.3.3和hbase 1.4.7。如何配置Spark以访问hive表?

我采取了以下步骤,但结果是错误消息:

Java语言lang.ClassNotFoundException:java。lang.NoClassDefFoundError:org/apache/tez/dag/api/SessionNotRunning使用类路径创建配置单元客户端时:

请确保您的hive和hadoop版本的罐子包含在传递给spark.sql.hive.metastore.jars的路径中

步骤:

>

  • cp/usr/lib/hive/conf/hive站点。xml/usr/lib/spark/conf

    在usr/lib/spark/conf/spark默认值中。新增形态:

    火花sql。蜂箱元存储。jars/usr/lib/hadoop/lib/*:/usr/lib/hive/lib/*

    在齐柏林飞艇中,我创建了一个spark会话:

    Val Spark=SparkSession.builder.appName("线索"). enableHiveSupport(). getOrCreate()导入spark.implicits._


  • 共有1个答案

    金烨华
    2023-03-14

    步骤(1,

    由于您使用的是hive-2. x,请配置spark.sql.hive.metastore.jars并将其设置为maven,然后将其设置为codespark.sql.hive.metastore.version以匹配元存储2.3.3的版本。仅使用2.3就足够了,请在Apache Spark Code中查看原因

    这是我在spark default中设置的工作配置示例。形态:

    spark.sql.broadcastTimeout  600 # An arbitrary number that you can change
    spark.sql.catalogImplementation hive
    spark.sql.hive.metastore.jars   maven
    spark.sql.hive.metastore.version    2.3  # No need for minor version
    spark.sql.hive.thriftServer.singleSession   true
    spark.sql.warehouse.dir {hdfs | s3 | etc}
    hive.metastore.uris thrift://hive-host:9083
    

    使用之前的设置,我已经能够对我在Zeppelin中的数据仓库执行查询,如下所示:

    val rows = spark.sql("YOUR QUERY").show
    

    有关连接到外部配置单元元存储的更多详细信息,请参见此处(Databricks)

     类似资料:
    • 当我在oozie中执行spark进程时,我有以下错误。找不到数据库。 这是我的火花配置

    • 我们有配置了FreeIPA的HDP-2.2集群。但当我们试图通过knox访问HiveJDBC时,我们面临着一个问题。以下是我们正在使用的JDBC URI: jdbc: hive2://xxxxxxxxx: 8443/; ssl=true; sslTrustStore=/var/lib/Knox/data/Security/keystore/gateway.jks; Trust StorePassw

    • 我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码: 我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?

    • 我试图从以下链接执行示例: http://www.cloudera.com/content/cloudera/en/documentation/CDH4/v4-2-0/CDH4-installation-guide/CDH4IG_Topic_19_6.html $hcatjar=$hcat_home/share/hcatalog/hcatalog-core-0.11.0.jar $hcatpigj

    • 我正在使用Spark SQL读取一个配置单元表,并将其分配给一个scala val 有什么方法可以绕过这个错误吗?我需要将记录插入到同一个表中。 嗨,我试着按建议做,但仍然得到同样的错误。

    • 需要一些建议。在配置单元数据库中,是否可以创建具有如下空间列的表 得到如下错误