`

hive Required table missing : "`DBS`" in Catalog "" Schema "

 
阅读更多

最近需要提取一些数据,故开始使用hive,本机搭建了一个hive客户端环境,但是始终有问题,在本机装好了mysql以后,老是报

 

 

Caused by: org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : "`DBS`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"
        at org.datanucleus.store.rdbms.table.AbstractTable.exists(AbstractTable.java:455)
        at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.performTablesValidation(RDBMSStoreManager.java:2689)
        at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTablesAndValidate(RDBMSStoreManager.java:2503)
        at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2148)
        at org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:113)
        at org.datanucleus.store.rdbms.RDBMSStoreManager.addClasses(RDBMSStoreManager.java:986)
        at org.datanucleus.store.rdbms.RDBMSStoreManager.addClasses(RDBMSStoreManager.java:952)
        at org.datanucleus.store.AbstractStoreManager.addClass(AbstractStoreManager.java:919)
        at org.datanucleus.store.mapped.MappedStoreManager.getDatastoreClass(MappedStoreManager.java:356)
        at org.datanucleus.store.rdbms.query.legacy.ExtentHelper.getExtent(ExtentHelper.java:48)
        at org.datanucleus.store.rdbms.RDBMSStoreManager.getExtent(RDBMSStoreManager.java:1332)
        at org.datanucleus.ObjectManagerImpl.getExtent(ObjectManagerImpl.java:4149)

 

 

依据堆栈提示,然后下得jar文件主要是看  AbstractTable.exists(AbstractTable.java:455) 

 

 

 if ((type == null) || ((allowDDLOutput()) && (this.storeMgr.getDdlWriter() != null) && (this.storeMgr.getCompleteDDL())))
    {
      if (!auto_create)
      {
        this.existsInDatastore = Boolean.FALSE;
        throw new MissingTableException(getCatalogName(), getSchemaName(), toString());
      }

 

  455 行 便是 异常抛出之地。

 依据 hive错误提示

 

 "datanucleus.autoCreateTables" = true

  配置了hive-site.xml不行,故结合上面的代码看,猜测是autoCreate没有传递进去,故开始跟踪这个值的设置的地方,最终跟踪到org.datanucleus.store.mapped.MappedStoreManager,其中有一段很关键的代码如下

 

 

 if ((this.readOnlyDatastore) || (this.fixedDatastore))
    {
      this.autoCreateTables = false;
      this.autoCreateColumns = false;
      this.autoCreateConstraints = false;
    }
    else
    {
      boolean autoCreateSchema = conf.getBooleanProperty("datanucleus.autoCreateSchema");
      if (autoCreateSchema)
      {
        this.autoCreateTables = true;
        this.autoCreateColumns = true;
        this.autoCreateConstraints = true;
      }
      else
      {
        this.autoCreateColumns = conf.getBooleanProperty("datanucleus.autoCreateColumns");
        this.autoCreateTables = conf.getBooleanProperty("datanucleus.autoCreateTables");
        this.autoCreateConstraints = conf.getBooleanProperty("datanucleus.autoCreateConstraints");
      }
    }

 

   看来关键是 this.readOnlyDatastore        this.fixedDatastore 这2个字段

 

  而且autoCreateSchema 这个设置为true 就可以决定了其他的设置,所以其他设置在此都无效了。

 

  继续追踪org.datanucleus.store.AbstractStoreManager 发现了这2个字段的设置代码

 

 

 

 this.readOnlyDatastore = conf.getBooleanProperty("datanucleus.readOnlyDatastore");
 this.fixedDatastore = conf.getBooleanProperty("datanucleus.fixedDatastore");
 

  原来问题再这里,再次修改hive-site.xml文件,ok,错误没有了。

 

 

分享到:
评论

相关推荐

    Could not resolve dependencies for project org.apache.hive:hive-exec:jar:2.3.0:

    hive 开发UDF 使用maven工程 引发jar包缺失 hive 开发UDF 使用maven工程 引发jar包缺失

    DBeaver链接hive驱动包下载: hive-jdbc-uber-2.6.5.0-292.jar

    《DBeaver与Hive连接:hive-jdbc-uber-2.6.5.0-292.jar驱动详解》 在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,广泛用于数据查询和分析。而DBeaver,作为一款跨平台的数据库管理工具,以其用户友好的...

    hive-exec-*.jar包

    Missing Hive Execution Jar: /hive/hive1.2.1/lib/hive-exec-*.jar

    HIVE安装及详解

    "HIVE安装及详解" HIVE是一种基于Hadoop的数据仓库工具,主要用于处理和分析大规模数据。下面是关于HIVE的安装及详解。 HIVE基本概念 HIVE是什么?HIVE是一种数据仓库工具,主要用于处理和分析大规模数据。它将...

    Hive Beeline连接报错:Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default

    在使用Hive的Beeline客户端进行连接时,可能会遇到错误提示"Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default"。这个错误通常意味着Beeline无法通过JDBC URL成功建立到Hive ...

    Practical.Hive.A.Guide.to.Hadoops.Data.Warehouse.System.1484202724

    This book is your go-to resource for using Hive: authors Scott Shaw, Ankur Gupta, David Kjerrumgaard, and Andreas Francois Vermeulen take you through learning HiveQL, the SQL-like language specific ...

    hive的一些报错及解决方法

    ALTER TABLE version ADD UNIQUE (schema_version); ``` 2. **端口占用**: - **现象**:即使解决了元数据版本问题后,仍可能出现端口占用的情况。 - **解决步骤**: - 查看9083端口是否被占用,可以使用`lsof...

    SparkSQL通过Hive创建DataFrame

    Table or view 'stu' not found in database 'default'; 分析:确实没有临时表View,并且没有开启Hive支持 解决:开启Hive支持 val spark: SparkSession = SparkSession.builder() .appName(SparkUtils) .master...

    hive课件.rar

    5. **Hive Table**:Hive中的表是逻辑上的概念,实际数据存储在HDFS上,以分隔符分隔的文本文件形式存在。 6. **Partitions**:Hive支持分区,可以将大表按照某个字段值进行划分,提高查询效率。例如,按日期分区的...

    大数据安全-kerberos技术-hive安装包,hive版本:apache-hive-3.1.3-bin.tar.gz

    3. **配置Hive服务**:修改`hive-site.xml`配置文件,添加Kerberos相关属性,如`hive.server2.authentication`设为`KERBEROS`,`hive.metastore.kerberos.principal`和`hive.server2.kerberos.principal`分别设定为...

    hive-json-schema最新源代码

    hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema...

    hive2-jdbc:Hive JDBC连接示例,包括简单和kerberos身份验证方法

    Hive JDBC连接示例该项目展示了如何使用各种不同的方法连接到Hiveserver2。 所有类仅适用于Hiveserver2。 正在使用Cloudera JDBC驱动程序,可以从下载。 在撰写本文时,最新版本为v2.5.15 。要求: 您需要下载驱动...

    hive-jdbc-1.1.0-cdh5.4.5-standalone.jar

    hive-jdbc-1.1.0-cdh5.4.5-standalone.jar Caused by: java.sql.SQLException: java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver at com.trs.gateway.commons.hive.HiveFeature.getConnection...

    hive-3.1.2(可供直接下载学习)

    Apache Hive 是一个数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供简单的类 SQL 查询功能。它可以将类 SQL 的语法转换为 MapReduce 任务运行。Hive 可以对数据进行查询、过滤、合并等操作,并...

    java访问hive数据库所需全部jar包

    在Java编程环境中,访问Hive数据库通常涉及到一系列的依赖库,这些库提供了与Hive通信所需的接口和功能。由于在你的场景中不使用Maven这样的项目管理工具,你需要手动收集和管理这些jar包。以下是对标题和描述中涉及...

    centos7中hive的安装和使用

    f) 将数据从 MySQL 加载到 Hive:`load data inpath 'mysql://localhost:3306/mydb' into table mytable;` 通过以上步骤,我们已经成功安装和配置了 Hive 环境,并进行了一些基本的 Hive 操作。Hive 是一个功能强大...

    征服Hive小文件之困:策略、方法与实践

    Hive是一种基于Hadoop的数据仓库工具,它提供了一种SQL-like的查询语言,称为HiveQL,用于查询和分析...- **数据模型**:Hive支持表(Table)、外部表(External Table)、分区(Partition)和桶(Bucket)等数据模型。

    hive1.x版本连接DataGrip需要的jar包

    在IT行业中,Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)对大规模数据进行分析。DataGrip是JetBrains公司开发的一款强大的数据库和SQL集成开发环境(IDE),它支持多种...

    第1关:Create/Alter/Drop 数据库 创建数据库的语法为: DATABASE-SCHEMA:用于限定创建数据

    hive表ddl操作(一)第1关:Create/Alter/Drop 数据库 创建数据库的语法为: DATABASE|SCHEMA:用于限定创建数据库或数据库模式 IF NOT EXISTS:目标对象不存在时才执行创建操作(可选) COMMENT:起注释说明作用...

Global site tag (gtag.js) - Google Analytics