Hadoop 3.0.3 Не настроена система AbstractFileSystem для схемы: s3n - PullRequest
0 голосов
/ 01 декабря 2018

Среда: CentOS7.5, Hadoop 3.0.3, Ceph 13.2.2 в качестве файловой системы.

Когда я заменил HDFS в hadoop на cephFS и протестировал MapReduce , я сообщил о следующей ошибке:

Caused by: org.apache.hadoop.fs.UnsupportedFileSystemException: fs.AbstractFileSystem.ceph.impl=null: No AbstractFileSystem configured for scheme: ceph
at org.apache.hadoop.fs.AbstractFileSystem.createFileSystem(AbstractFileSystem.java:160)
at org.apache.hadoop.fs.AbstractFileSystem.get(AbstractFileSystem.java:249)
at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:334)
at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:331)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1762)
at org.apache.hadoop.fs.FileContext.getAbstractFileSystem(FileContext.java:331)
at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:448)
at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:474)
at org.apache.hadoop.mapred.YARNRunner.<init>(YARNRunner.java:148)
... 28 more

Вот мой файл конфигурации:
core-site.xml

<configuration>
<property>
  <name>fs.default.name</name>
  <value>ceph://10.0.86.246:6789</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value> file:/usr/local/hadoop/tmp/</value>
</property>
<property>
  <name>ceph.conf.file</name>
  <value>/etc/ceph/ceph.conf</value>
</property>
<property>
  <name>ceph.auth.id</name>
  <value>admin</value>
</property>
<property>
  <name>ceph.auth.keyring</name>
  <value>/etc/ceph/ceph.client.admin.keyring</value>
</property>
<property>
<name>ceph.data.pools</name>
  <value>pool1,pool2,pool3</value>
</property>
<property>
  <name>fs.ceph.impl</name>
  <value>org.apache.hadoop.fs.ceph.CephFileSystem</value>
</property>
</configuration>

Поэтому я добавил следующие свойства в файл конфигурации core-site.xml:

<property>
    <name>fs.AbstractFileSystem.ceph.impl</name>
    <value>org.apache.hadoop.fs.ceph.CephFS</value>
</property>

Но сообщалось о новой ошибке следующим образом:

java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.fs.ceph.CephFS.<init>(java.net.URI, org.apache.hadoop.conf.Configuration)
	at org.apache.hadoop.fs.AbstractFileSystem.newInstance(AbstractFileSystem.java:135)
	at org.apache.hadoop.fs.AbstractFileSystem.createFileSystem(AbstractFileSystem.java:164)
	at org.apache.hadoop.fs.AbstractFileSystem.get(AbstractFileSystem.java:249)
	at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:334)
	at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:331)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1762)
	at org.apache.hadoop.fs.FileContext.getAbstractFileSystem(FileContext.java:331)
	at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:448)
	at org.apache.hadoop.fs.FileContext.getFileContext(FileContext.java:474)
	at org.apache.hadoop.mapred.YARNRunner.<init>(YARNRunner.java:148)
	at org.apache.hadoop.mapred.YARNRunner.<init>(YARNRunner.java:132)
	at org.apache.hadoop.mapred.YARNRunner.<init>(YARNRunner.java:122)
	at org.apache.hadoop.mapred.YarnClientProtocolProvider.create(YarnClientProtocolProvider.java:34)
	at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:95)
	at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:82)

Этот метод не существует в соответствующем классе.Как я могу решить эту проблему?Или есть пакет jar, содержащий этот метод, который может быть предоставлен мне?Я пытался уменьшить версию Hadoop до 2.7.7, но сообщил об ошибке.Спасибо за внимание

...