【问题标题】:Unable to get parquet-tools working from the command-line无法从命令行使用镶木地板工具
【发布时间】:2015-04-19 00:57:49
【问题描述】:

我正在尝试运行最新版本的 parquet-tools,但遇到了一些问题。出于某种原因,org.apache.hadoop.conf.Configuration 不在阴影罐中。 (我对 v1.6.0 也有同样的问题)。

除了mvn packagemvn install 之外还有什么我应该做的吗? (我使用的实际mvn 调用是mvn install -DskipTests -pl \!parquet-thrift,\!parquet-cascading,\!parquet-pig-bundle,\!parquet-pig,\!parquet-scrooge,\!parquet-hive,\!parquet-protobuf)。这很好用,如果我选择运行它们,测试就会通过。

我得到的错误如下(你可以看到我试图从旧的镶木地板版本中粘贴 hadoop jar,该版本似乎将它捆绑到类路径中;无论有没有它,我都会得到相同的结果)。

> java -classpath /path/to/hadoop-core-1.1.0.jar -jar parquet-tools-1.7.0-incubating-SNAPSHOT.jar meta --debug part-r-00000.gz.parquet

java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
    at parquet.tools.command.ShowMetaCommand.execute(ShowMetaCommand.java:59)
    at parquet.tools.Main.main(Main.java:222)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more
org/apache/hadoop/conf/Configuration

【问题讨论】:

    标签: parquet


    【解决方案1】:

    在使用自制软件的 MacOS 上,这是最简单的入门方法:

    $ brew install parquet-tools
    

    【讨论】:

      【解决方案2】:

      您还可以将 hadoop 依赖项包含到目标 jar 中:

      mvn clean package -Plocal -DskipTests -Dhadoop.scope=compile

      【讨论】:

        【解决方案3】:

        如果您安装了 hadoop,请将您的命令改为 hadoop jar parquet-tools-1.7.0-incubating-SNAPSHOT.jar meta --debug part-r-00000.gz.parquet

        【讨论】:

          【解决方案4】:

          我遇到了类似的问题,并通过指定“本地”配置文件来修复它:

          mvn clean package -Plocal
          

          我最初错过了这一段,但它解释说,如果你想混合 Hadoop 依赖项,“本地”配置文件会这样做,而不是你希望在已经安装了 Hadoop 的地方使用它的默认配置,并且出现在你的类路径中:

          https://github.com/Parquet/parquet-mr/tree/master/parquet-tools

          【讨论】:

          • 抱歉让你挂了;这最终对我没有用,但感谢您的尝试!
          【解决方案5】:

          the parquet-mr issues list 的这组步骤为我解决了同样的问题:

          mvn install
          cd parquet-tools
          mvn clean package -Plocal
          mvn install
          mvn dependency:copy-dependencies
          # replace 1.8.2 in the next step with the version you're using
          cp target/parquet-tools-1.8.2-SNAPSHOT.jar target/dependency/
          mkdir -p ~/local/bin/lib
          cp target/dependency/* ~/local/bin/lib/
          cp src/main/scripts/* ~/local/bin/
          echo export PATH=$PATH:~/local/bin >> .profile
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-04-17
            • 1970-01-01
            • 2021-03-15
            • 2021-01-30
            • 1970-01-01
            • 2019-08-04
            • 2021-11-10
            • 1970-01-01
            相关资源
            最近更新 更多