最近更新了spark到1.1.0版本。跑任务出错。
Caused by: java.lang.UnsatisfiedLinkError: /tmp/snappy-1.0.5.3-6ceb7982-8940-431c-95a8-25b3684fa0be-libsnappyjava.so: /usr/lib64
/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /tmp/snappy-1.0.5.3
由于我们的系统是rhel5,glibc版本只到3.4.8,而snappy需要使用3.4.9版本,坑爹。
spark1.0.0没有出现过这个问题,为了减少系统改动,重新编译了spark,并将pom.xml 的snappy版本(1.5.3)手动修改成spark1.0.0中的1.5.0版本。但是问题还是没能解决。
最终只能编译了更高版本的gcc,我用的gcc4.7.3,将新gcc的libstd++.so.6.x链接过去/usr/lib64/libstd++.so.6, 问题解决。
gcc编译时依赖的库:
../configure --prefix=/usr/local/gcc-4.7.3 --enable-threads=posix --disable-bootstrap --disable-multilib --enable-languages=c
,c++,java --with-gmp=/usr/local/gmp-6.0.0/ --with-mpfr=/usr/local/mpfr-3.1.2/ --with-mpc=/usr/local/mpc-1.0.2/
ps:网上那些直接找个库做软连接的方法不用试了,太不靠谱。
来源:oschina
链接:https://my.oschina.net/u/1428530/blog/314671