Hive3.1.3启动异常处理

现象

hive启动时有如下异常

1
WARN [pool-6-thread-2] metastore.ObjectStore: datanucleus.autoStartMechanismMode is set to unsupported value null . Setting it to value: ignored 

原因及解决

该异常是由于Hive的元数据存储配置中的datanucleus.autoStartMechanismMode参数设置为不支持的值(null)而引起的。要解决此问题,你可以按照以下步骤进行操作:

  1. 打开hive的配置文件:hive-site.xml
  2. 查找或添加以下配置属性:
1
2
3
4
5
<property>
  <name>datanucleus.autoStartMechanismMode</name>
  <value>ignored</value>
  <description>设置datanucleus.autoStartMechanismMode的值为ignored</description>
</property>

如果希望禁用自动启动机制,可以设置为None,如下:

1
2
3
4
<property>
  <name>datanucleus.autoStartMechanismMode</name>
  <value>None</value>
</property>

这将把datanucleus.autoStartMechanismMode的值设置为"ignored",以避免不支持的值引发异常。

  1. 保存并关闭配置文件,重启hive服务。

hive的DataNucleus

在Hive 3.1.3中,datanucleus.autoStartMechanismMode是一个配置属性,用于控制DataNucleus(Hive元数据存储的持久化框架)的自动启动机制。

此属性的值决定了DataNucleus如何在启动时创建或验证数据库模式。以下是可能的值:

  • Ignored:DataNucleus将忽略任何自动启动设置。
  • Checked:DataNucleus将检查数据库模式是否存在,如果不存在,将抛出异常。
  • Create:DataNucleus将创建数据库模式,如果已经存在,将抛出异常。
  • Create-Checked:DataNucleus将创建数据库模式,如果已经存在,将验证其结构。
  • Create-Drop:DataNucleus将创建数据库模式,如果已经存在,将删除并重新创建。

在Hive 3.1.3中,datanucleus.autoStartMechanismMode的默认值是Checked

要配置datanucleus.autoStartMechanismMode,您需要在Hive的配置文件(通常是hive-site.xml)中添加或修改以下属性:

1
2
3
4
<property>
  <name>datanucleus.autoStartMechanismMode</name>
  <value>YourDesiredValue</value>
</property>

其中,YourDesiredValue应替换为上述可选值之一,例如CreateChecked等。完成更改后,需要重新启动Hive服务以使更改生效。

请注意,这些设置可能会影响Hive元数据的管理和操作,因此在更改这些设置之前,应确保了解其含义并考虑其可能的影响。

datanucleus.autoStartMechanismMode

在Hive 3.1.3中,datanucleus.autoStartMechanismMode参数用于配置DataNucleus的自动启动机制模式。DataNucleus是Hive使用的一个持久化框架,它负责将Hive的数据映射到底层的存储引擎(如HDFS、HBase等)。

通过配置datanucleus.autoStartMechanismMode参数,您可以控制DataNucleus在Hive启动时自动启动持久化机制的方式。该参数有三个可选的模式:

  1. None:禁用自动启动机制。在这种模式下,DataNucleus不会自动启动持久化机制,需要显式地调用相关的初始化方法。
  2. Checked:检查模式。在这种模式下,DataNucleus会检查是否需要启动持久化机制,并在需要时自动启动。这是默认的模式。
  3. Ignore:忽略模式。在这种模式下,DataNucleus会忽略自动启动持久化机制的需求,不会自动启动。

要配置datanucleus.autoStartMechanismMode参数,您可以按照以下步骤进行操作:

  1. 打开Hive的配置文件,通常是hive-site.xml。
  2. 在配置文件中添加以下配置项:
1
2
3
4
<property>
  <name>datanucleus.autoStartMechanismMode</name>
  <value>模式</value>
</property>

将模式替换为所需的模式,例如None、Checked或Ignore。

  1. 保存配置文件并重新启动Hive服务,以使新的配置生效。

知识延伸

datanucleus.autoStartMechanismMode是DataNucleus持久化框架的配置选项之一,用于指定持久化机制的自启动模式。该配置项定义了在应用程序启动时如何自动启动DataNucleus持久化机制。

datanucleus.autoStartMechanismMode可以设置以下值之一:

  • None:禁用自动启动机制。在此模式下,DataNucleus 持久化机制不会自动启动,需要通过编程方式显式启动。
  • Table:使用表模式自动启动机制。在此模式下,DataNucleus 将检查特定表是否存在,以确定是否需要自动启动持久化机制。如果表不存在,则会自动启动持久化机制;如果表存在,则假定持久化机制已经启动。这是默认的自动启动模式。
  • Database:使用数据库模式自动启动机制。在此模式下,DataNucleus 将查询数据库中的元数据信息,以确定是否需要自动启动持久化机制。如果数据库中的元数据信息不匹配或不存在,则会自动启动持久化机制。
Buy me a coffee
支付宝
微信
0%