2016-08-19 2 views
1

Ich habe einen seltsamen Fehler auf Alluxio mit Spark. Ich lese 20.000 Dateien mit Spark von Alluxio und es funktioniert. Aber ich lese 40.000 Dateien mit Spark von Alluxio und es funktioniert nicht. Ich benutze Alluxio 1.2 Spark 1.6.0 und ich las Daten mit Datei-API: FileSystem fs = FileSystem.Factory.get(); AlluxioURI path = new AlluxioURI(/partition0); ...Alluxio Rahmengröße() größer als max() auf Spark

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) 

Es ist kein Problem, weil ich alluxio.security.authentication.type Alluxio auf lokale und Alluxio Master-Adresse laufe korrekt ist. Ich verstehe nicht, warum es nicht mit 40.000 Dateien funktioniert, während es mit 20.000 Dateien funktioniert.

ich auch alluxio.network.thrift.frame.size.bytes.max geändert haben aber nicht zur Folge haben ..

Antwort

0

Dieses Problem kann durch verschiedene mögliche Ursachen haben:

  • Prüfe, ob der Anschluss von Alluxio Master-Adresse korrekt ist. Der Standard-Überwachungsport für Alluxio-Master ist Port 19998, während ein häufiger Fehler, der diese Fehlermeldung verursacht, auf die Verwendung eines falschen Ports in der Master-Adresse zurückzuführen ist (z. B. über Port 19999, der der Standard-Web-UI-Port für Alluxio-Master ist).

  • Stellen Sie sicher, dass die Sicherheitseinstellungen von Alluxio Client und Master konsistent sind. Alluxio bietet verschiedene Ansätze zum Authentifizieren von Benutzern durch Konfigurieren von alluxio.security.authentication.type. Dieser Fehler tritt auf, wenn diese Eigenschaft mit unterschiedlichen Werten für Server und Clients konfiguriert ist (z. B. verwendet einer den Standardwert NOSASL, während der andere für SIMPLE angepasst wird). Bitte lesen Sie Konfigurationseinstellungen, um Alluxio Cluster und Anwendungen anzupassen.

  • Konfiguration zwischen Apache-Spark und Alluxio. Sie müssen die JVM-Umgebung von Spark in alluxio.network.thrift.frame.size.bytes.max in alluxio/conf/alluxio-site.properties ändern. $ {} SPARK_CLASSPATH in spark-env.sh oder fügen Sie --driver-Klasse-Pfad pathAlluxio/conf mit Funken einreichen Befehl

: Um das zu tun, müssen Sie Export SPARK_CLASSPATH = $ {ALLUXIO_HOME}/conf hinzufügen

Für mich war es die dritte Lösung

Verwandte Themen