2016-08-19 9 views
1

AlluxioでSparkと奇妙なエラーが発生しました。私はAlluxioからSparkで20.000のファイルを読み、それは動作します。しかし、私はAlluxioからSparkを使って40.000個のファイルを読みました。私はAlluxio 1.2を使用して、1.6.0をスパーク、私は、ファイルAPIを使用してデータを読み込む:FileSystem fs = FileSystem.Factory.get(); AlluxioURI path = new AlluxioURI(/partition0); ...Alluxioのフレームサイズ()がmax()より大きい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) 

私が正しいローカルおよびAlluxioマスターアドレスにAlluxioを実行するので、それはalluxio.security.authentication.type問題ではありません。私は20,000ファイルで動作しているのに対し、40.000ファイルでは動作しない理由は分かりません。

は、私はまた、alluxio.network.thrift.frame.size.bytes.maxを変更しますが、結果していない...

答えて

0

この問題は異なる可能性の理由によって発生することができます。

  • Alluxioマスターアドレスのポートが正しいかどうかダブルチェックしてください。 Alluxioマスターのデフォルトのリスニングポートはポート19998ですが、このエラーメッセージを引き起こすよくある間違いは、マスターアドレスに間違ったポートを使用しているためです(たとえば、AlluxioマスターのデフォルトのWeb UIポートであるポート19999を使用)。

  • Alluxioクライアントとマスターのセキュリティ設定が一貫していることを確認してください。 Alluxioは、alluxio.security.authentication.typeを設定することで、ユーザーを認証するさまざまな方法を提供します。このエラーは、このプロパティーがサーバーとクライアント間で異なる値で構成されている場合(たとえば、デフォルト値NOSASLを使用し、もう一方がSIMPLEにカスタマイズされている場合など)に発生します。 Alluxioクラスタとアプリケーションのカスタマイズ方法については、設定 - 設定をお読みください。

  • Apache-SparkとAlluxioの間のコンフィグレーション。 alluxio/conf/alluxio-site.propertiesのalluxio.network.throift.frame.size.bytes.maxを動作させるには、SparkのJVM環境を変更する必要があります。それを行うには、輸出SPARK_CLASSPATH = $ {ALLUXIO_HOME}/confにを追加する必要があります。spark-env.shに$ {SPARK_CLASSPATHを}または火花-submitコマンドで--driverクラスパスpathAlluxio/confにを追加

私には、それは第3の解決策でした

関連する問題