1. 概述
1.1 版本
FineBI 版本 | 功能变动 |
---|---|
6.0 | - |
6.0.6 | BI可依赖 V2.17 的 glibc 系统库 |
注:目前 FineBI 工程默认能同时存在三个触发大数据模式的组件,当大数据图表并发数超过 3 的时候,图表大分组会仅展示前 5000 个分组的数据。
1.2 问题背景
FineBI 版本使用图表大数据功能时,若部署在 Linux 环境下,则需要加载「J2V8」的「libj2v8_linux_x86_64.so」,
J2V8 依赖的是 glibc 系统库,而 glibc 需要本地编译,编译器是GCC。 glibc 系统库需要先升级到 V2.17。如果系统版本非常低,导致编译升级 glibc 的时候,GCC 报错,则要升级 GCC 。
1.3 问题描述
如果未升级 glibc 系统库到 V2.17,可能导致的问题如下:
2019-06-14 的 FineBI 版本,图表大数据无法使用,显示时报错:J2V8 native library not loaded(j2v8-linux-x86_64/j2v8-centos-Linux-x86_64)。
2019-07-04 的 FineBI 版本,绘制大数据量图表时,图表组件展示限定 5 万分组数据,绘制时间较长。
1.3 解决思路
若想要在绘制大数据图表时,图表展示有更大数据量,图表绘制时需要使用 J2V8 作为 JS 运行环境。
1)优先选择升级 J2V8 依赖的是 glibc 系统库到 V2.17。
2)若未解决需求,BI 版本低于6.0.6, GCC 的版本过旧,导致编译升级 glibc 的时候,GCC 报错。
需要按照本文第 2 章步骤升级 Linux 系统中的 GCC 版本。
注:文档第 2 节提供的是 glibc 系统库升级到 V2.18 的方案。
2. 操作步骤
2.1 判断是否要升级
在升级前需要先确认当前系统中的 GCC 版本,使用如下命令,分别查看系统是否存在「GLIBC_2.18」和「GLIBCXX_3.4.22」,命令如下所示:
strings /lib64/libc.so.6 | grep GLIBC
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
若查看系统没有对应 GCC 版本,则可按需考虑是否升级。
2.2 升级步骤
1)下载升级工具,请参见:升级工具.tar
2)解压升级工具,拷贝至非 usr 的任意目录下,cd 进入该目录,执行如下命令:
chmod 755 glibcxx_3.4.22.sh
chmod 755 glibc_2.18.sh
./glibcxx_3.4.22.sh
./glibc_2.18.sh
此处「chmod」为脚本增加执行权限,「./」为执行获取的脚本。
3)执行后命令,系统即自动升级 GCC 的版本。
3. 注意事项
3.1 升级风险
3.1.1 GLIBC
GLIBC 是 C 运行库,是 Linux 系统中最底层的 api(包括 Linux 的各种命令都依赖于此库),如果系统内有其他重要项目,请谨慎升级。对应的升级工具文件为「glibc_2.18.sh」 。
3.1.2 GLIBCXX
GLIBCXX 是 C++ 运行库,升级一般不会产生太大的影响,并且如果升级之后出现了问题,可以对版本进行回退。对应的升级工具文件为「glibcxx_3.4.22.sh」。
3.2 缺少可用的 C 编译环境
3.2.1 问题描述
若在进行升级时,出现如下报错:
3.2.2 原因分析
可能是由于缺少可用的 C 编译环境。
3.2.3 解决方案
执行yum -y install gcc 安装编译环境,然后重新进行 GCC 升级。