首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单元测试中使用TestHiveContext/HiveContext

在单元测试中使用TestHiveContext/HiveContext
EN

Stack Overflow用户
提问于 2015-12-11 21:24:58
回答 1查看 3.7K关注 0票数 6

我正尝试在单元测试中做到这一点:

代码语言:javascript
复制
val sConf = new SparkConf()
  .setAppName("RandomAppName")
  .setMaster("local")
val sc = new SparkContext(sConf)
val sqlContext = new TestHiveContext(sc)  // tried new HiveContext(sc) as well

但我得到的是:

代码语言:javascript
复制
[scalatest] Exception encountered when invoking run on a nested suite - java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient *** ABORTED ***
[scalatest]   java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
[scalatest]   at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:346)
[scalatest]   at org.apache.spark.sql.hive.client.ClientWrapper.<init>(ClientWrapper.scala:120)
[scalatest]   at org.apache.spark.sql.hive.HiveContext.executionHive$lzycompute(HiveContext.scala:163)
[scalatest]   at org.apache.spark.sql.hive.HiveContext.executionHive(HiveContext.scala:161)
[scalatest]   at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:168)
[scalatest]   at org.apache.spark.sql.hive.test.TestHiveContext.<init>(TestHive.scala:72)
[scalatest]   at mypackage.NewHiveTest.beforeAll(NewHiveTest.scala:48)
[scalatest]   at org.scalatest.BeforeAndAfterAll$class.beforeAll(BeforeAndAfterAll.scala:187)
[scalatest]   at mypackage.NewHiveTest.beforeAll(NewHiveTest.scala:35)
[scalatest]   at org.scalatest.BeforeAndAfterAll$class.run(BeforeAndAfterAll.scala:253)
[scalatest]   at mypackage.NewHiveTest.run(NewHiveTest.scala:35)
[scalatest]   at org.scalatest.Suite$class.callExecuteOnSuite$1(Suite.scala:1491)

当我使用spark-submit运行时,代码运行得很好,但在单元测试中就不行了。我如何为单元测试修复这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2016-07-08 00:01:01

这是一个老问题,但我遇到了类似的问题,我最终使用了spark-testing-base

代码语言:javascript
复制
import com.holdenkarau.spark.testing.SharedSparkContext
import org.apache.spark.sql.hive.test.TestHiveContext
import org.scalatest.FunSuite

class RowToProtoMapper$Test extends FunSuite with SharedSparkContext {

    test("route mapping") {
        val hc = new TestHiveContext(sc)
        /* Some test */
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34224636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档