title: Unable to start Hive metastore related to java exception
body: <p>I installed <code>Apache hive 3</code>, <code>Apache Hadoop 3</code>, <code>Trino</code> and  <code>Mysql (mysql Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using EditLine wrapper)</code>.</p>
  <p>When I start Hive metastore I had an exception, it blocked the start of the metastore:</p>
  <p>Exception:</p>
  <pre><code>Exception in thread &quot;main&quot; java.lang.NoSuchMethodError: com/google/common/base/Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V (loaded from file:/root/trino_poc/trino-server-351/etc/catalog/apache-hive-3.1.2-bin/lib/guava-19.0.jar by jdk.internal.loader.ClassLoaders$AppClassLoader@8753f89b) called from class org.apache.hadoop.conf.Configuration (loaded from file:/root/trino_poc/hadoop-3.2.2/share/hadoop/common/hadoop-common-3.2.2.jar by jdk.internal.loader.ClassLoaders$AppClassLoader@8753f89b). 
   at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357) 
  </code></pre>
  <p>My solution was (I found it on github) to replace the <code>guava-19.0.jar</code> by <code>guava-22.0.jar</code></p>
  <p>So the metastore started well on <code>localhost:9083</code></p>
  <p>But the port is not in listen: <code>netstat -na | grep :9083</code> ==&gt; nothing</p>
  <p>in hive log I have this error:</p>
  <pre><code>   Unable to open a test connection to the given database. JDBC url = jdbc:mysql://localhost:3306/metastore_dbs?useSSL=false;createDatabaseIfNotExist=true, username = root. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------^M 
  java.sql.SQLException: The connection property 'useSSL' only accepts values of the form: 'true', 'false', 'yes' or 'no'. The value 'false;createDatabaseIfNotExist=true' is not in this set
  </code></pre>
  <p>So the issue is here: <code>'false;createDatabaseIfNotExist=true'</code> the <code>';'</code> is not supported in xml file because this code is exist in <code>hive-site.xml</code> and I need to properly escape the characters.</p>
  <p>I used <code>'?'</code> instead, Hivemetastore started but port 9083 is not listen, and I got almost the same exception<code>'false?createDatabaseIfNotExist=true'</code></p>
  <p>I used <code>'&amp;amp;'</code> ==&gt; Hive metastore is not started (failed) and I got this exception:</p>
  <pre><code>WARNING: An illegal reflective access operation has occurred 
  WARNING: Illegal reflective access by com.google.common.base.internal.Finalizer (file:/root/trino_poc/trino-server-351/etc/catalog/apache-hive-3.1.2-bin/lib/guava-22.0.jar) to field java.lang.Thread.inheritableThreadLocals 
  WARNING: Please consider reporting this to the maintainers of com.google.common.base.internal.Finalizer 
  WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 
  WARNING: All illegal access operations will be denied in a future release 
  MetaException(message:org.jets3t.service.security.ProviderCredentials) 
  </code></pre>
  <p>If I resume:</p>
  <p>To resolve exception to initialize Database and start hive metastore I replace the <code>guava-19.0.jar</code> by <code>guava-22.0.jar</code> but port 9083 is not listen.</p>
  <p>Then to resolve the issue of port listening:</p>
  <ul>
  <li><p>I Used <code>'?'</code> instead of <code>';'</code> ==&gt; hive metastore still started well
  but port 9083 in not listen.</p>
  </li>
  <li><p>I tried using <code>'&amp;amp;'</code> instead of    <code>'?'</code> ==&gt; Hive metastore not
  started (failed) and I got the exception    above related to
  <code>guava-22.0.jar</code></p>
  </li>
  </ul>
  <p>I hope that I was clear. Really I need to your help, because I spent a lot of hours trying to resolve the issue.
  Thanks in advance</p>