我设置了一个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,
由于您使用的是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 有什么方法可以绕过这个错误吗?我需要将记录插入到同一个表中。 嗨,我试着按建议做,但仍然得到同样的错误。
需要一些建议。在配置单元数据库中,是否可以创建具有如下空间列的表 得到如下错误