有没有办法在Spark中有效地摄取大型(例如50 GB)bz2文件?我正在使用Spark 1.6.1,8个执行器,每个执行器有30 GB的RAM。最初,每个执行者都有4个核心。但是,使用textFile()打开bz2文件会抛出ArrayOutOfBoundsException。正如此处报道的那样(以及网络上的其他线程)http://apache-spark-user-list.1001560.n3.nabble.com/java-lang-ArrayIndexOutOfBoundsException-using-sc-textFile-on-BZ2-compressed-files-td22905.html,Hadoop使用的bz2解压缩程序不是线程安全的,这会在像Spark这样的多线程环境中产生问题。为了解决这个问题,我将每个执行程序的核心数设置为1,如上面的网页所示,但这会降低整体计算速度。
我正在使用Hadoop 2.4.0.2.1.1.0-390。有什么想法吗?
谢谢,
马