通过Spark Data Frame并按比例将数据写入S3-s3连接问题,由s3 503减速错误引起

时间:2018-10-23 09:47:59

标签: amazon-s3 apache-spark-sql amazon-emr

我们正在尝试使用AWS EMR集群将数据读写到S3中。在此过程中,当我们扩展执行力时,最终遇到了一些问题。当我们尝试为四分之一的数据处理相同的作业时,我们没有注意到此问题,但是当我们对其进行扩展以并行运行四分之四的数据时,随机地为一个/多个四分之一的数据运行时,我们开始看到了火花作业将数据写入S3时失败。然后,我们进一步深入了解了该问题,也就是说,当我们意识到Spark正在将数据写入S3时引发了该问题,这是由S3 503引起的。请放慢该错误。

仅当我们超过给定路径的S3 TPS时,才会出现减速错误。 S3的建议是在写入时将随机哈希值添加到s3路径。我们使用partition by进行了尝试,但是我们知道某些哈希值(xy,2位哈希值)只会表现更好。有人遇到过类似的问题吗?如果可以,我是否知道您是如何克服这个问题的?

期待!

克里希

1 个答案:

答案 0 :(得分:0)

S3客户端应该限制错误;令人惊讶的是,EMR并不是所有人都使用的AWS开发工具包会识别503,并且会退出并重试。

可能会有一个配置选项来对其进行设置(对于S3a://,其Container( color: Colors.grey, child: Column( children: <Widget>[ Stack( children: <Widget>[ Column( children: <Widget>[ Container( height: 250.0, width: MediaQuery.of(context).size.width, child: Image.asset( "images/1.jpg", fit: BoxFit.cover, ), ) ], ), Column( crossAxisAlignment: CrossAxisAlignment.end, children: <Widget>[ Container( height: 220.0, ), Container( padding: EdgeInsets.only(right: 15.0), child: FloatingActionButton( onPressed: () {}, child: Icon(Icons.favorite), ), ), ], ), Column( children: <Widget>[ Container( height: 250.0, ), Container( height: MediaQuery.of(context).size.height - 250.0, child: ListView.builder( shrinkWrap: true, itemBuilder: (context, index) { return Card( child: ListTile( title: Text("Title $index"), leading: Icon(Icons.home), ), ); }, itemCount: 15, ), ), ], ) ], ), ], ), );

如果您使用的是EMR s3://连接器,则必须寻找他们的选择