hadoop集群lzo某个机器上报错 Could not load native gpl library

    错误

         具体错误为:   lzo.GPLNativeCodeLoader: Could not load native gpl library  java.lang.UnsatisfiedLinkError: no gplcompression in java.library.path  

     测试

     首先编辑一个java类,获取当前"java.library.path"这个路径所指向的位置。并查看是否已经包含了 lzo环境。

     具体类代码如下:


import java.util.Properties;
import java.util.Set;

public class TestLD {
 
 public static void main(String[] args) {
  System.out.println(System.getProperty("java.library.path"));
  Properties props = System.getProperties();
  Set<Object> keys = props.keySet();
  for (Object key : keys) {
   if (((String) key).equals("java.library.path"))
    System.out.println(System.getProperty("java.library.path"));
   if (((String) key).equals("."))
    System.out.println(System.getProperty("."));

  }
  try {
   //loading gplcompression...
   System.loadLibrary("gplcompression");
   System.out.println("Load gplcompression success");
   
   System.mapLibraryName("lzohadoop");
  } catch (Throwable t) {
   System.out.println("Error");
   t.printStackTrace();
  }
  System.out.println(System.mapLibraryName("gplcompression"));
 }
}

    比如我的输出如下:

    hadoop集群lzo某个机器上报错 Could not load native gpl library_第1张图片

     分别查看 这些路径下是否有 libgpl的文件,测试显示没有。

      hadoop集群lzo某个机器上报错 Could not load native gpl library_第2张图片

         由于我之前安装过lzo,此时查找文件 包含libgplcompression的路径,然后将该路径下的这些文件都复制到 /usr/lib目录下。第一张图是 liggplcompression所涵盖的文件,第二张图是复制之后的效果。

   hadoop集群lzo某个机器上报错 Could not load native gpl library_第3张图片

   hadoop集群lzo某个机器上报错 Could not load native gpl library_第4张图片


再次执行 java代码查看,可得如下结果:

  hadoop集群lzo某个机器上报错 Could not load native gpl library_第5张图片

你可能感兴趣的:(hadoop,lzo)