ошибка native-lzo недоступна | Windows 10 | Java - PullRequest
0 голосов
/ 28 мая 2020
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.RuntimeException: native-lzo library not available
        at com.hadoop.compression.lzo.LzoCodec.getCompressorType(LzoCodec.java:155)
        at org.apache.hadoop.io.compress.CodecPool.getCompressor(CodecPool.java:150)
        at org.apache.hadoop.io.compress.CodecPool.getCompressor(CodecPool.java:168)
        at org.apache.parquet.hadoop.CodecFactory$HeapBytesCompressor.<init>(CodecFactory.java:144)
        at org.apache.parquet.hadoop.CodecFactory.createCompressor(CodecFactory.java:206)
        at org.apache.parquet.hadoop.CodecFactory.getCompressor(CodecFactory.java:189)
        at org.apache.parquet.hadoop.ParquetWriter.<init>(ParquetWriter.java:287)
        at org.apache.parquet.hadoop.ParquetWriter$Builder.build(ParquetWriter.java:569)

Я пытаюсь использовать код сжатия lzo c в моем паркетрайтере. Мне не нужен Had oop, поэтому в моем пути Hadoop_Home были только oop .dll и winutils.exe. В своей системе windows я попытался собрать lzo2.dll, как указано в документации, но не знаю, как его использовать. Я прошел через вилку твиттера с oop -lzo, но инструкции для windows не были ясны. Подскажите пожалуйста, как заставить этот код c работать в Windows. Я скачал oop -3.2.1, lzo-2.1.0, имел oop -lzo.

Использование mvn clean install в has oop -lzo дает мне ошибку gplcompression.dll not found.

[exec] "P:\hadoop\hadoop-lzo\src\main\native\gplcompression.sln" (default target) (1) ->
     [exec] "P:\hadoop\hadoop-lzo\src\main\native\gplcompression.vcxproj.metaproj" (default target) (2) ->
     [exec] (Build target) -> 
     [exec]   P:\hadoop\hadoop-lzo\src\main\native\gplcompression.vcxproj.metaproj : warning MSB4078: The project file "gplcompression.vcxproj" is not supported by MSBuild and cannot be built.
     [exec] 
     [exec]     1 Warning(s)
     [exec]     0 Error(s)
     [exec] 
     [exec] Time Elapsed 00:00:01.57
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  15.603 s
[INFO] Finished at: 2020-05-28T17:16:24+05:30
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (build-native-win) on project hadoop-lzo: An Ant BuildException has occured: Warning: Could not find file P:\hadoop\hadoop-lzo\target\native\Windows_NT-${env.PLATFORM}\gplcompression.dll to copy.
[ERROR] around Ant part ...<copy file="${build.native}/gplcompression.dll" todir="${build.native}/lib"/>... @ 19:80 in P:\hadoop\hadoop-lzo\target\antrun\build-build-native-win.xml
[ERROR] -> [Help 1]

1 Ответ

0 голосов
/ 04 июня 2020

Не работает в Windows. Вы получаете ошибки сборки на каждом этапе, если пытаетесь собрать Had oop -LZO для windows. Проблема возникла из-за того, что я не включил правильную сборку Had oop -LZO (twitter). LZO имеет собственный (системно-зависимый) код и проблемы с лицензированием, поэтому вам необходимо создать специальный c Had oop -LZO, используя LZO из «https://www.oberhumer.com/opensource/lzo/» в соответствии с инструкциями в «https://github.com/twitter/hadoop-lzo ". Я построил его для linux и запустил код в linux, и он сработал. Мне не удалось построить его для Windows. Я сталкиваюсь со всевозможными ошибками, я думаю, что проблема с собственным кодом Windows в Had oop -LZO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...