需要使用Hadoop原生

wgmfuz8q  于 2022-11-21  发布在  Hadoop
关注(0)|答案(2)|浏览(199)

我 正在 从 java 程序 中 调用 一 个 mapreduce 作业 。 今天 , 当 我 将 mapreduce 作业 的 输入 格式 设置 为 :LzoTextInputFormatmapreduce 作业 失败 :

  1. Could not load native gpl library
  2. java.lang.UnsatisfiedLinkError: no gplcompression in java.library.path
  3. at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
  4. at java.lang.Runtime.loadLibrary0(Runtime.java:823)
  5. at java.lang.System.loadLibrary(System.java:1028)
  6. at com.hadoop.compression.lzo.GPLNativeCodeLoader.<clinit>(GPLNativeCodeLoader.java:32)
  7. at com.hadoop.compression.lzo.LzoCodec.<clinit>(LzoCodec.java:67)
  8. at com.hadoop.mapreduce.LzoTextInputFormat.listStatus(LzoTextInputFormat.java:58)
  9. at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:241)
  10. at com.hadoop.mapreduce.LzoTextInputFormat.getSplits(LzoTextInputFormat.java:85)
  11. at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:885)
  12. at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:779)
  13. at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
  14. at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)
  15. at company.Validation.run(Validation.java:99)
  16. at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
  17. at company.mapreduceTest.main(mapreduceTest.java:18)
  18. Apr 5, 2012 4:40:29 PM com.hadoop.compression.lzo.LzoCodec <clinit>
  19. SEVERE: Cannot load native-lzo without native-hadoop
  20. java.lang.IllegalArgumentException: Wrong FS: hdfs://D-SJC-00535164:9000/local/usecases /gbase014/outbound/seed_2012-03-12_06-34-39/1_1.lzo.index, expected: file:///
  21. at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:310)
  22. at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:47)
  23. at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:357)
  24. at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)
  25. at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:648)
  26. at com.hadoop.compression.lzo.LzoIndex.readIndex(LzoIndex.java:169)
  27. at com.hadoop.mapreduce.LzoTextInputFormat.listStatus(LzoTextInputFormat.java:69)
  28. at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:241)
  29. at com.hadoop.mapreduce.LzoTextInputFormat.getSplits(LzoTextInputFormat.java:85)
  30. at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:885)
  31. at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:779)
  32. at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
  33. at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)
  34. at company.Validation.run(Validation.java:99)
  35. at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
  36. at company.stopTransfer.mapreduceTest.main(mapreduceTest.java:18)
  37. Apr 5, 2012 4:40:29 PM company.Validation run
  38. SEVERE: LinkExtractor: java.lang.IllegalArgumentException: Wrong FS: hdfs://D-SJC-00535164:9000/local/usecases/gbase014/outbound/seed_2012-03-12_06-34-39/1_1.lzo.index, expected: file:///
  39. at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:310)
  40. at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:47)
  41. at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:357)
  42. at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)
  43. at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:648)
  44. at com.hadoop.compression.lzo.LzoIndex.readIndex(LzoIndex.java:169)
  45. at com.hadoop.mapreduce.LzoTextInputFormat.listStatus(LzoTextInputFormat.java:69)
  46. at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:241)
  47. at com.hadoop.mapreduce.LzoTextInputFormat.getSplits(LzoTextInputFormat.java:85)
  48. at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:885)
  49. at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:779)
  50. at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
  51. at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)
  52. at company.Validation.run(Validation.java:99)
  53. at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
  54. at company.stopTransfer.mapreduceTest.main(mapreduceTest.java:18)

中 的 每 一 个
但是 在 lib/native 中 它们 是 一些 文件 用 a , la 扩展 的 , 所以 ... 我 试 着 在 我 的 path 环境 变量 中 设置 它们 , 但是 仍然 不 起 作用 。
有 没有 人 可以 给 我 一 个 建议 !
非常 感谢 !

jchrr9hc

jchrr9hc1#

您的错误与Lzo的实际共享库不存在于hadoop本机库文件夹中有关。
GPLNativeCodeLoader的代码正在寻找一个名为gplcompression的共享库。Java实际上正在寻找一个名为libgplcompression.so的文件。如果这个文件在您的lib/native/${arch}文件夹中不存在,您将看到此错误。
在终端中,导航到hadoop基目录并执行以下命令以转储已安装的本地库,然后回发到您的原始问题

  1. uname -a
  2. find lib/native
5m1hhzi4

5m1hhzi42#

如果 您 使用 的 是 Cloudera Hadoop , 您 可以 按照 以下 说明 轻松 安装 lzo :
http://www.cloudera.com/content/cloudera/en/documentation/cloudera-impala/v1/v1-0-1/Installing-and-Using-Impala/ciiu_lzo.html 的 最 大 值

相关问题