jjjigar opened a new issue, #10249:
URL: https://github.com/apache/hudi/issues/10249

   **Describe the problem you faced**
   Getting error after configuring the **Hudi CLI 0.14.0**.
   
   We are using the below cli command to connect hudi tables
   
   Command line used: connect --path s3a://{our bucketname}/{our tablename}
    
   java.lang.NoClassDefFoundError: org/apache/hadoop/fs/store/EtagChecksum
           at java.lang.Class.forName0(Native Method) ~[?:1.8.0_382]
           at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_382]
           at 
org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:2362)
 ~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2327) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2423) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:3213) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3245) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:121) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3296) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3264) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:475) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.Path.getFileSystem(Path.java:356) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hudi.common.fs.FSUtils.getFs(FSUtils.java:116) 
~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.getFs(HoodieTableMetaClient.java:308)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.<init>(HoodieTableMetaClient.java:139)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.newMetaClient(HoodieTableMetaClient.java:692)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.access$000(HoodieTableMetaClient.java:85)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient$Builder.build(HoodieTableMetaClient.java:774)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.cli.HoodieCLI.refreshTableMetadata(HoodieCLI.java:89) 
~[hudi-cli-0.14.0.jar:0.14.0]
           at org.apache.hudi.cli.HoodieCLI.connectTo(HoodieCLI.java:95) 
~[hudi-cli-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.cli.commands.TableCommand.connect(TableCommand.java:87) 
~[hudi-cli-0.14.0.jar:0.14.0]
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_382]
           at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_382]
           at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_382]
           at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_382]
           at 
org.springframework.shell.command.invocation.InvocableShellMethod.doInvoke(InvocableShellMethod.java:306)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.command.invocation.InvocableShellMethod.invoke(InvocableShellMethod.java:232)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.command.CommandExecution$DefaultCommandExecution.evaluate(CommandExecution.java:158)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at org.springframework.shell.Shell.evaluate(Shell.java:208) 
~[spring-shell-core-2.1.1.jar:2.1.1]
           at org.springframework.shell.Shell.run(Shell.java:140) 
~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.jline.InteractiveShellRunner.run(InteractiveShellRunner.java:73)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.DefaultShellApplicationRunner.run(DefaultShellApplicationRunner.java:65)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762)
 ~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752)
 ~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 
~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) 
~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) 
~[spring-boot-2.7.3.jar:2.7.3]
           at org.apache.hudi.cli.Main.main(Main.java:34) 
~[hudi-cli-0.14.0.jar:0.14.0]
   Caused by: java.lang.ClassNotFoundException: 
org.apache.hadoop.fs.store.EtagChecksum
           at java.net.URLClassLoader.findClass(URLClassLoader.java:387) 
~[?:1.8.0_382]
           at java.lang.ClassLoader.loadClass(ClassLoader.java:418) 
~[?:1.8.0_382]
           at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) 
~[?:1.8.0_382]
           at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 
~[?:1.8.0_382]
   
   **Steps to reproduce the behavior:**
   Configured Hudi 0.14.0 CLI using the below steps:
   1. Install Java 8 (open JDK 1.8) on the EC2 instance and set $JAVA_HOME 
environment variable
   2. sudo -H python3 -m pip install pyspark==3.4.1
   3. Set $SPARK_HOME environment variable on the EC2 instance
   4. export SPARK_HOME=/usr/local/lib/python3.8/dist-packages/pyspark
   5. Downloaded Hudi CLI 0.14.0 version listed here 
https://github.com/apache/hudi/releases
   6. After downloading and unzipping the cd in to the "hudi-release-0.14.0" 
and run "mvn -T 2C clean package -DskipTests -Dspark3.4 -Dscala-2.12".
   7. Once the 6 step is completed and it has build succefully, go to 
hudi-release-0.13.0/hudi-cli path and wget the hadoop-aws-3.2.2.jar & 
aws-java-sdk-bundle-1.12.180.jar Client jars. 
     
https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/3.2.2/hadoop-aws-3.2.2.jar
     
https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-bundle/1.12.180/aws-java-sdk-bundle-1.12.180.jar
   8. export 
CLIENT_JAR=/home/ubuntu/hudi-release-0.13.0/hudi-cli/aws-java-sdk-bundle-1.12.180.jar:/home/ubuntu/hudi-release-0.13.0/hudi-cli/hadoop-aws-3.2.2.jar
      export 
HOODIE_ENV_fs_DOT_s3a_DOT_impl=org.apache.hadoop.fs.s3a.S3AFileSystem
      export 
HOODIE_ENV_fs_DOT_s3a_DOT_aws_DOT_credentials_DOT_provider=com.amazonaws.auth.InstanceProfileCredentialsProvider,com.amazonaws.auth.DefaultAWSCredentialsProviderChain
        
      export 
HOODIE_ENV_fs_DOT_AbstractFileSystem_DOT_s3a_DOT_impl=org.apache.hadoop.fs.s3a.S3A
   9. Copy the client jars - 
/home/ubuntu/hudi-release-0.13.0/hudi-cli/aws-java-sdk-bundle-1.12.180.jar and 
/home/ubuntu/hudi-release-0.13.0/hudi-cli/hadoop-aws-3.2.2.jar to 
$SPARK_HOME/jars path
   10. Inside hudi-release-0.14.0/hudi-cli path, run command ./hudi-cli.sh to 
start Hudi CLI.
   11. The console will prompt hudi→ to run commands on Hudi. 
   12. Finally we should be able to load Hudi 0.14.0 tables using "connect 
--path s3a://<Hudi Bucket>/<Hudi Table>" command. 
   
   **Expected behavior**
   Command "connect --path s3a://<Hudi Bucket>/<Hudi Table>" should load tables 
without any error.
   
   **Environment Description**
   
   * Hudi version : 0.14.0
   
   * Spark version : 3.4.1
   
   * Hadoop version : 3.2.2
   
   * Storage (HDFS/S3/GCS..) : S3
   
   * Running on Docker? (yes/no) : no
   
   **Stacktrace**
   java.lang.NoClassDefFoundError: org/apache/hadoop/fs/store/EtagChecksum
           at java.lang.Class.forName0(Native Method) ~[?:1.8.0_382]
           at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_382]
           at 
org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:2362)
 ~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2327) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2423) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:3213) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3245) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:121) 
~[hadoop-common-2.10.1.jar:?]
           at 
org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3296) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3264) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:475) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hadoop.fs.Path.getFileSystem(Path.java:356) 
~[hadoop-common-2.10.1.jar:?]
           at org.apache.hudi.common.fs.FSUtils.getFs(FSUtils.java:116) 
~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.getFs(HoodieTableMetaClient.java:308)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.<init>(HoodieTableMetaClient.java:139)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.newMetaClient(HoodieTableMetaClient.java:692)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient.access$000(HoodieTableMetaClient.java:85)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.common.table.HoodieTableMetaClient$Builder.build(HoodieTableMetaClient.java:774)
 ~[hudi-common-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.cli.HoodieCLI.refreshTableMetadata(HoodieCLI.java:89) 
~[hudi-cli-0.14.0.jar:0.14.0]
           at org.apache.hudi.cli.HoodieCLI.connectTo(HoodieCLI.java:95) 
~[hudi-cli-0.14.0.jar:0.14.0]
           at 
org.apache.hudi.cli.commands.TableCommand.connect(TableCommand.java:87) 
~[hudi-cli-0.14.0.jar:0.14.0]
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_382]
           at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_382]
           at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_382]
           at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_382]
           at 
org.springframework.shell.command.invocation.InvocableShellMethod.doInvoke(InvocableShellMethod.java:306)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.command.invocation.InvocableShellMethod.invoke(InvocableShellMethod.java:232)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.command.CommandExecution$DefaultCommandExecution.evaluate(CommandExecution.java:158)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at org.springframework.shell.Shell.evaluate(Shell.java:208) 
~[spring-shell-core-2.1.1.jar:2.1.1]
           at org.springframework.shell.Shell.run(Shell.java:140) 
~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.jline.InteractiveShellRunner.run(InteractiveShellRunner.java:73)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.shell.DefaultShellApplicationRunner.run(DefaultShellApplicationRunner.java:65)
 ~[spring-shell-core-2.1.1.jar:2.1.1]
           at 
org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762)
 ~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752)
 ~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 
~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) 
~[spring-boot-2.7.3.jar:2.7.3]
           at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) 
~[spring-boot-2.7.3.jar:2.7.3]
           at org.apache.hudi.cli.Main.main(Main.java:34) 
~[hudi-cli-0.14.0.jar:0.14.0]
   Caused by: java.lang.ClassNotFoundException: 
org.apache.hadoop.fs.store.EtagChecksum
           at java.net.URLClassLoader.findClass(URLClassLoader.java:387) 
~[?:1.8.0_382]
           at java.lang.ClassLoader.loadClass(ClassLoader.java:418) 
~[?:1.8.0_382]
           at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) 
~[?:1.8.0_382]
           at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 
~[?:1.8.0_382]
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to