Размер кадра Alluxio() больше, чем max() в Spark

У меня странная ошибка на Alluxio со Spark. Я прочитал 20 000 файлов с помощью Spark от Alluxio, и это работает. Но я прочитал 40 000 файлов с помощью Spark от Alluxio, и он не работает. Я использую Alluxio 1.2, Spark 1.6.0 и читаю данные с файловым API: FileSystem fs = FileSystem.Factory.get(); AlluxioURI path = new AlluxioURI(/partition0); ...

16/08/19 16:08:40 INFO logger.type: Client registered with FileSystemMasterClient master @ master/127.0.0.1:19998
16/08/19 16:08:41 ERROR logger.type: Frame size (17277505) larger than max length (16777216)!
org.apache.thrift.transport.TTransportException: Frame size (17277505) larger than max length (16777216)!
        at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137)
        at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429)
        at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318)
        at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219)
        at org.apache.thrift.protocol.TProtocolDecorator.readMessageBegin(TProtocolDecorator.java:135)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
        at alluxio.thrift.FileSystemMasterClientService$Client.recv_listStatus(FileSystemMasterClientService.java:503)
        at alluxio.thrift.FileSystemMasterClientService$Client.listStatus(FileSystemMasterClientService.java:489)
        at alluxio.client.file.FileSystemMasterClient$8.call(FileSystemMasterClient.java:220)
        at alluxio.client.file.FileSystemMasterClient$8.call(FileSystemMasterClient.java:216)
        at alluxio.AbstractClient.retryRPC(AbstractClient.java:324)
        at alluxio.client.file.FileSystemMasterClient.listStatus(FileSystemMasterClient.java:216)
        at alluxio.client.file.BaseFileSystem.listStatus(BaseFileSystem.java:195)
        at alluxio.client.file.BaseFileSystem.listStatus(BaseFileSystem.java:186)
        at Main.main(Main.java:119)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Exception in thread "main" java.io.IOException: Failed after 32 retries.
        at alluxio.AbstractClient.retryRPC(AbstractClient.java:334)
        at alluxio.client.file.FileSystemMasterClient.listStatus(FileSystemMasterClient.java:216)
        at alluxio.client.file.BaseFileSystem.listStatus(BaseFileSystem.java:195)
        at alluxio.client.file.BaseFileSystem.listStatus(BaseFileSystem.java:186)
        at Main.main(Main.java:119)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Это не проблема alluxio.security.authentication.type, потому что я запускаю Alluxio локально, а основной адрес Alluxio правильный. Я не понимаю, почему он не работает с 40 000 файлов, а работает с 20 000 файлов.

Я также изменил alluxio.network.thrift.frame.size.bytes.max, но безрезультатно..


person TiGi    schedule 19.08.2016    source источник


Ответы (1)


Эта проблема может быть вызвана различными возможными причинами:

  • Пожалуйста, еще раз проверьте правильность порта главного адреса Alluxio. Порт прослушивания по умолчанию для мастера Alluxio — порт 19998, в то время как распространенная ошибка, вызывающая это сообщение об ошибке, связана с использованием неправильного порта в адресе мастера (например, использование порта 19999, который является портом веб-интерфейса по умолчанию для мастера Alluxio).

  • Убедитесь, что настройки безопасности клиента и мастера Alluxio совпадают. Alluxio предоставляет различные подходы к аутентификации пользователей путем настройки alluxio.security.authentication.type. Эта ошибка возникает, если это свойство настроено с разными значениями на серверах и клиентах (например, один использует значение по умолчанию NOSASL, а другой настроен на SIMPLE). Прочтите Configuration-Settings, чтобы узнать, как настроить кластеры и приложения Alluxio.

  • config между Apache-Spark и Alluxio. Вы должны изменить среду JVM Spark для работы alluxio.network.thrift.frame.size.bytes.max в alluxio/conf/alluxio-site.properties. Для этого вы должны добавить export SPARK_CLASSPATH=${ALLUXIO_HOME}/conf:${SPARK_CLASSPATH} в spark-env.sh или добавить --driver-class-path pathAlluxio/conf с помощью команды spark-submit.

Для меня это было третье решение

person TiGi    schedule 06.09.2016