0

我们正在安装Cloudera CDH4Ubuntu 12.04 LTS在安装步骤中,我们卡在 hive 元存储启动。我们已按照下载文档中的建议配置了meta-storewith 。MySQL

它给了我们以下错误:

/usr/lib/hive/conf$ sudo service hive-metastore status
 * Hive Metastore is dead and pid file exists

在日志文件中显示以下错误:

ERROR metastore.HiveMetaStore (HiveMetaStore.java:main(4153)) - Metastore Thrift Server threw an exception...
org.apache.thrift.transport.TTransportException: No keytab specified

以下是输出hive-site.xml文件:

<property>
  <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:mysql://my-local-system-ip:3306/metastore?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>org.apache.derby.jdbc.EmbeddedDriver</value>
<value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
<property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>my-password</value>
    </property>
    <property>
  <name>datanucleus.autoCreateSchema</name>
  <value>false</value>
</property>
<property>
  <name>datanucleus.fixedDatastore</name>
  <value>true</value>
</property>

<property>
  <name>datanucleus.autoStartMechanism</name>
  <value>SchemaTable</value>
</property>
<property>
<name>hive.aux.jars.path</name>
  <value>file:///usr/share/java/mysql-connector-java.jar</value>
</property>
<property>
        <name>hive.metastore.uris</name>
        <value>thrift://<FQDN>:9083</value>
    </property>

<property>
  <name>hive.support.concurrency</name>
  <description>Enable Hive's Table Lock Manager Service</description>
  <value>true</value>
</property>
<property>
  <name>hive.metastore.local</name>
  <description>Enable Hive's Table Lock Manager Service</description>
  <value>false</value>
</property>

<property>
  <name>hive.server2.authentication</name>
  <value>KERBEROS</value>
</property>
<property>
  <name>hive.server2.authentication.kerberos.principal</name>
  <value>hive/_HOST@<my-domain-name></value>
</property>
<property>
  <name>hive.server2.thrift.port</name>
  <value>10001</value>
  <description>TCP port number to listen on, default 10000</description>
</property>

<property>
  <name>hive.server2.authentication.kerberos.keytab</name>
  <value>/etc/hive/conf/hive.keytab</value>
</property>

<property>
  <name>hive.zookeeper.quorum</name>
  <description>Zookeeper quorum used by Hive's Table Lock Manager</description>
  <value>FQDN</value>
</property>
<property>
<name>hive.metastore.sasl.enabled</name>
<value>true</value>
</property>
<property>
  <name>hive.zookeeper.client.port</name>
  <value>2181</value>
  <description>
  The port at which the clients will connect.
  </description>
</property>
   <property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
</property>
<property>
<name>hive.server2.thrift.sasl.qop</name>
<value>auth</value>
<description>Sasl QOP value; one of 'auth', 'auth-int' and 'auth-conf'</description>
</property>
<property>
<name>hive.metastore.client.socket.timeout</name>
<value>3600</value>
<description>MetaStore Client socket timeout in seconds</description>
</property>

我们的主要重点是安装impala. 如果我们使用默认的德比。Hive 元存储运行良好。但是当我们开始时impala-shell。它向我们显示未连接。我们能做些什么来纠正这个问题?

任何人都可以帮助我们解决这个错误。

4

2 回答 2

0

我认为问题在于您缺少以下参数:

<property>
  <name>hive.metastore.kerberos.keytab.file</name>
  <value>/etc/hive/conf/hive.keytab</value>
  <description>The path to the Kerberos Keytab file containing the metastore thrift server's service principal.</description>
</property>

我看到您确实有 hive.server2.authentication.kerberos.keytab,但似乎这还不够。

于 2014-08-13T07:12:46.553 回答
0

将 hive.server2.authentication.kerberos.principal 属性中的“my-domain-name”替换为您的域名。这是 hive 主体中缺少的第三部分。

于 2016-08-05T12:45:27.047 回答