Solución a errores informados por la ejecución local del programa MapReduce en Windows
1. Descripción del problema
En el sistema Windows, el programa MapReduce se ejecuta localmente y se informa de un error:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:606)
2. Solución
Copie el código fuente org.apache.hadoop.io.nativeio.NativeIO
en el proyecto, preste atención al nombre del paquete y modifique el public static boolean access(String path, AccessRight desiredAccess) throws IOException
método de la siguiente manera:
public static boolean access(String path, AccessRight desiredAccess)
throws IOException {
String os = System.getProperty("os.name");
return os.contains("Windows") || access0(path, desiredAccess.accessRight());
}