Не удалось создать файловый клиент. Обнаружено несоответствие для java и собственных библиотек java build version

#java #hbase #mapr

#java #hbase #mapr

Вопрос:

Я пытаюсь получить доступ к пути mapr удаленно, используя приложение spring boot. Я установил fs.mapr.bailout.on.library.mismatch для свойства значение false, чтобы избежать ошибки при несоответствии версии. Тем не менее, всякий getFileStatus() раз, когда вызывается функция, приложение останавливается со следующей ошибкой:

 2020-12-15 10:07:18,7377 ERROR JniCommon fs/client/fileclient/cc/jni_MapRClient.cc:691 Thread: 123145425235968 Mismatch found for java and native libraries java build version 6.0.1.20180404222005.GA, native build version 6.0.1.20190808152212.GA java patch vserion $Id: mapr-version: 6.0.1.20180404222005.GA 1aeeb6d3c17c777fcba0, native patch version $Id: mapr-version: 6.0.1.20190808152212.GA 1aeeb6d3c17c777fcba0
2020-12-15 10:07:18,7378 ERROR JniCommon fs/client/fileclient/cc/jni_MapRClient.cc:708 Thread: 123145425235968 Client initialization failed.
 

Код:

         FileSystem fileSystem = FileSystem.newInstance(new Configuration());
        Configuration conf = fileSystem.getConf();
        conf.set("fs.mapr.bailout.on.library.mismatch", "false");

        Path OffsetPath = new Path(filePath);
        FileStatus file = fileSystem.getFileStatus(filePath);  ====> This statement gives error
 

используемые зависимости hbase:

     <dependency>
        <groupId>com.mapr.fs</groupId>
        <artifactId>mapr-hbase</artifactId>
        <version>6.0.1-mapr</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>1.1.8-mapr-1710</version>
    </dependency>
 

Как я могу это исправить?

Ответ №1:

Поэтому не стоит просто отключать ошибку несоответствия версии. Некоторые несоответствия допустимы для некоторых задач, но некоторые несоответствия могут быть фатальными.

Чтобы сказать гораздо больше, было бы полезно немного уточнить.

  • когда вы говорите удаленный доступ, вы говорите из одного кластера в другой? Или с клиентской машины, которая находится за пределами кластера?
  • предполагая, что вы имеете в виду второй случай (клиент вне кластера), что вы установили на клиентском компьютере?
  • почему вы отключили несоответствие версий? Какие версии, о которых вы беспокоитесь, не будут совпадать?
  • работает ли интерфейс POSIX или локальная петлевая NFS с проблемного узла?
  • работает ли оболочка hadoop с проблемного узла?

Комментарии:

1. Под удаленным доступом я подразумеваю, что код выполняется в контейнере на модуле k8s и пытается получить доступ к кластеру mapr. Я отключил несоответствие версий только потому, что столкнулся с этой ошибкой. Но даже после его отключения появилась та же ошибка.

2. Ах … из Kubernetes было бы намного лучше просто использовать CSI и получать доступ к данным через интерфейс POSIX. Гораздо чище, чем пытаться задействовать все библиотеки Hadoop.