安装实木复合地板工具

时间:2018-11-14 18:05:31

标签: java maven freebsd parquet parquet-mr

我正在尝试在FreeBSD机器上安装镶木地板工具。

我克隆了这个仓库:git clone https://github.com/apache/parquet-mr

然后我做了cd parquet-mr/parquet-tools

然后我做了`mvn clean package -Plocal

如此处指定:https://github.com/apache/parquet-mr/tree/master/parquet-tools

这就是我得到的:

enter image description here

为什么此依赖项错误在这里?我该如何解决?

5 个答案:

答案 0 :(得分:6)

在 Ubuntu 20 上,我通过 pip 安装:

python3 -m pip install parquet-tools

还没有尝试过 FreeBSD,但我想它也可以工作。

您可以使用以下命令查看文件:

parquet-tools show filename.parquet

答案 1 :(得分:2)

parquet-tools只是parquet-mr的一个模块。这取决于其他一些模块。

从与发行版相对应的源版本进行构建时,Maven将可以使用其他模块,因为发行工件是发行过程的一部分。

但是,从快照版本进行构建时,必须使这些依赖项自己可用。有两种方法可以这样做:

选项1:构建并安装父目录的所有模块:

git clone https://github.com/apache/parquet-mr
cd parquet-mr
mvn install -Plocal

这会将快照工件放置在本地~/.m2目录中。随后,您可以像最初尝试的那样(重新)构建parquet-tools,因为现在快照文物已经可以从~/.m2获得。

选项2:从父目录构建parquet-mr模块,同时要求Maven一路构建所需的模块:

git clone https://github.com/apache/parquet-mr
cd parquet-mr
mvn package -pl parquet-tools -am -Plocal

选项1会比选项2生成更多的项目,因此,如果您只需要parquet-tools,那么选择后者会更好。请注意,尽管可能两者都需要安装节俭的编译器。

答案 2 :(得分:2)

实木复合地板工具-可用于读取实木复合地板文件的实用程序。 Yuu可以从Github克隆它并运行一些maven命令。

1. git clone https://github.com/Parquet/parquet-mr.git 
2. cd parquet-mr/parquet-tools/ 
3. mvn clean package -Plocal 


,您可以下载稳定版本并从本地构建。

  1. 下载稳定的Parquet版本。

    https://github.com/apache/parquet-mr/archive/apache-parquet-1.8.2.tar.gz


2. Maven本地安装。

 D:\parquet>cd parquet-tools && mvn clean package -Plocal

enter image description here


3.进行测试(将镶木地板文件粘贴到目标目录下):

 D:\parquet\parquet-tools\target>java -jar parquet-tools-1.8.2.jar schema out.parquet

(其中out.parquet是我在目标目录下的镶木文件)

enter image description here

//读取实木复合地板文件

D:\parquet\parquet-tools\target>java -jar parquet-tools-1.6.0.jar cat out.parquet

//读取镶木地板文件中的几行

D:\parquet\parquet-tools\target>java -jar parquet-tools-1.6.0.jar head -n5 out.parquet 

答案 3 :(得分:0)

我知道问题指定了FreeBSD,但是如果您使用的是Mac,则可以这样做

brew install parquet-tools

答案 4 :(得分:0)

某些答案的jar下载链接已断开,但是您可以从 maven central

但是...该jar和其他类似的jar被构建为“提供” hadoop依赖关系,如果从源构建,则将获得该默认值。因此,在构建时需要设置-Dhadoop.scope = compile,否则结果仅在使用“ hadoop ...”命令在hadoop节点上运行时有效。

更糟糕的是,此工具显然禁用了System.out和System.err,因此,永远不会打印出导致main()失败的异常,而您会想知道发生了什么。

我还发现,当文件显示意外的情况时,maven-license-plugin的默认设置导致构建失败(例如,如果使用netbeans,则为nbactions.xml)。