记一次sparkOnyarn错误:java.lang.UnsatisfiedLinkError
错误大概这样:
Caused by: java.util.concurrent.ExecutionException: Boxed Error
Caused by: java.lang.UnsatisfiedLinkError: /opt/cdh/hadoop-2.6.0-cdh5.14.0/tmp/nm-local-dir/usercache/root/appcache/application_1557066487109_0012/container_1557066487109_0012_02_000001/tmp/libh3-java1702442942635895973.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/cdh/hadoop-2.6.0-cdh5.14.0/tmp/nm-local-dir/usercache/root/appcache/application_1557066487109_0012/container_1557066487109_0012_02_000001/tmp/libh3-java1702442942635895973.so)
Caused by: java.lang.UnsatisfiedLinkError
版本说明:
hadoop是:hadoop2.6.0-cdh5.14.0
spark是:spark2.1.0-cdh5.14.0
原因:
千算万算,就没算到运维小哥把系统版本降低了!,测试环境的系统是centos7.3 , 而线上环境是centos6.9,因此发生了一些列错误
错误细节:
提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的
查看系统glibc支持的版本:
strings /lib64/libc.so.6 |grep GLIBC_
解决:
无脑按照我的方法输入:
yum install -y gcc wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz tar -xvf glibc-2.15.tar.gz tar -xvf glibc-ports-2.15.tar.gz mv glibc-ports-2.15 glibc-2.15/ports mkdir glibc-build-2.15 cd glibc-build-2.15 ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make make install
如果提示install成功,去看glibc所在的共享库:
可以看到2.12的旧库文件还在,多了2.15版本的库文件,而且软链接文件全部指向了2.15版本。
所有服务器处理完毕,上线成功!