#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.