zhangbutao commented on PR #5606:
URL: https://github.com/apache/hive/pull/5606#issuecomment-2677314612

   > @henrib Tried to deploy this PR on my local pc, but found two issues when 
starting Iceberg REST Catalog server:
   > 
   > ```
   >   <property>
   >     <name>hive.metastore.catalog.servlet.port</name>
   >     <value>9088</value>
   >     <description>iceberg rest catalog port</description>
   >   </property>
   > ```
   > 
   > 1. Missing Iceberg REST Catalog related class:
   >    This is because the jar 
`hive/standalone-metastore/metastore-iceberg-catalog/target/hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar`
 is not included in the binary package.
   > 
   > ```
   > 2025-02-20T09:37:32,144  WARN [main] metastore.HiveMetaStore: unable to 
start Iceberg REST Catalog server, missing jar?
   > java.lang.ClassNotFoundException: org.apache.iceberg.rest.HMSCatalogServer
   >         at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 
~[?:1.8.0_221]
   >         at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
~[?:1.8.0_221]
   >         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 
~[?:1.8.0_221]
   >         at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
~[?:1.8.0_221]
   >         at java.lang.Class.forName0(Native Method) ~[?:1.8.0_221]
   >         at java.lang.Class.forName(Class.java:264) ~[?:1.8.0_221]
   >         at 
org.apache.hadoop.hive.metastore.HiveMetaStore.startIcebergCatalog(HiveMetaStore.java:769)
 ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.hadoop.hive.metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:762)
 ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:368) 
~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_221]
   >         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_221]
   >         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_221]
   >         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_221]
   >         at org.apache.hadoop.util.RunJar.run(RunJar.java:328) 
~[hadoop-common-3.3.6.jar:?]
   >         at org.apache.hadoop.util.RunJar.main(RunJar.java:241) 
~[hadoop-common-3.3.6.jar:?]
   > ```
   > 
   > 2. NoClassDefFoundError: org/apache/hc/core5/http/ContentType
   >    After I manually put this 
`hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar` into hive lib, I 
still get errors when starting HMS:
   > 
   > ```
   > 2025-02-20T09:51:44,014 ERROR [main] metastore.HiveMetaStore: unable to 
start Iceberg REST Catalog server
   > java.lang.reflect.InvocationTargetException: null
   >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_221]
   >         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_221]
   >         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_221]
   >         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_221]
   >         at 
org.apache.hadoop.hive.metastore.HiveMetaStore.startIcebergCatalog(HiveMetaStore.java:771)
 ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.hadoop.hive.metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:762)
 ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:368) 
~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_221]
   >         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_221]
   >         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_221]
   >         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_221]
   >         at org.apache.hadoop.util.RunJar.run(RunJar.java:328) 
~[hadoop-common-3.3.6.jar:?]
   >         at org.apache.hadoop.util.RunJar.main(RunJar.java:241) 
~[hadoop-common-3.3.6.jar:?]
   > Caused by: java.lang.NoClassDefFoundError: 
org/apache/hc/core5/http/ContentType
   >         at 
org.apache.iceberg.rest.HMSCatalogServlet.<init>(HMSCatalogServlet.java:54) 
~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.iceberg.rest.HMSCatalogServer.createServlet(HMSCatalogServer.java:100)
 ~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.iceberg.rest.HMSCatalogServer.createServlet(HMSCatalogServer.java:111)
 ~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.hadoop.hive.metastore.ServletServerBuilder.startServer(ServletServerBuilder.java:141)
 ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.iceberg.rest.HMSCatalogServer.startServer(HMSCatalogServer.java:134) 
~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         ... 13 more
   > Caused by: java.lang.ClassNotFoundException: 
org.apache.hc.core5.http.ContentType
   >         at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 
~[?:1.8.0_221]
   >         at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
~[?:1.8.0_221]
   >         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 
~[?:1.8.0_221]
   >         at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
~[?:1.8.0_221]
   >         at 
org.apache.iceberg.rest.HMSCatalogServlet.<init>(HMSCatalogServlet.java:54) 
~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.iceberg.rest.HMSCatalogServer.createServlet(HMSCatalogServer.java:100)
 ~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.iceberg.rest.HMSCatalogServer.createServlet(HMSCatalogServer.java:111)
 ~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.hadoop.hive.metastore.ServletServerBuilder.startServer(ServletServerBuilder.java:141)
 ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         at 
org.apache.iceberg.rest.HMSCatalogServer.startServer(HMSCatalogServer.java:134) 
~[hive-standalone-metastore-iceberg-catalog-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
   >         ... 13 more
   > ```
   
   
   
   @henrib Added these lines can fix the package issue. You can try  to build 
the binary package using `mvn clean install -DskipTests -Pdist` , and then 
check the jar 
`packaging/target/apache-hive-4.1.0-SNAPSHOT-bin/apache-hive-4.1.0-SNAPSHOT-bin/lib/hive-standalone-metastore-rest-catalog-4.1.0-SNAPSHOT.jar`
   
   ```
   diff --git a/packaging/pom.xml b/packaging/pom.xml
   index cfc37f087f..705e409757 100644
   --- a/packaging/pom.xml
   +++ b/packaging/pom.xml
   @@ -424,6 +424,11 @@
          <artifactId>hive-webhcat-java-client</artifactId>
          <version>${project.version}</version>
        </dependency>
   +    <dependency>
   +      <groupId>org.apache.hive</groupId>
   +      <artifactId>hive-standalone-metastore-rest-catalog</artifactId>
   +      <version>${standalone-metastore.version}</version>
   +    </dependency>
        <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-hdfs-client</artifactId>
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org
For additional commands, e-mail: gitbox-h...@hive.apache.org

Reply via email to