安装依赖
以本地方式安装OmniOperator算子加速,在OmniOperator算子加速结合Spark引擎应用时,在管理节点安装依赖包LLVM和jemalloc。
在Spark on Yarn场景中,通过Spark的--archives参数提升部署易用性。预编译so下载安装与源码编译安装两种方式可任选其一。预编译so下载安装更快速且便捷,适用于大部分场景;源码编译安装较慢,适用于一些有合规要求的场景。
安装依赖(预编译so下载安装方式,SparkExtension场景)
安装LLVM和jemalloc
- 根据OS类型选择对应的依赖包,以下安装以openEuler 22.03系统为例,对应Dependency_library_openeuler22.03.zip。
- “/opt/omni-operator”及“/opt/omni-operator/lib”目录用户可自行定义。
- 在管理节点创建“/opt/omni-operator/”目录作为安装OmniOperator算子加速的根目录,进入该目录。
1 2 3
mkdir /opt/omni-operator cd /opt/omni-operator -
- 从软件安装包获取中获取Dependency_library_openeuler22.03.zip,并上传到“/opt/omni-operator/”目录下,再进行解压。
1unzip Dependency_library_openeuler22.03.zip - 创建“/opt/omni-operator/lib”目录,将Dependency_library_openeuler中的libLLVM-15.so、libjemalloc.so.2复制到“/opt/omni-operator/lib”目录下。
如果环境中安装过LLVM和jemalloc,需要先删除旧的libLLVM-15.so、libjemalloc.so.2文件,再执行复制命令。
1 2
rm -rf /opt/omni-operator/lib/libjemalloc.so.2 rm -rf /opt/omni-operator/lib/libLLVM-15.so
1 2 3 4
cd /opt/omni-operator mkdir lib cp /opt/omni-operator/Dependency_library_openeuler22.03/libjemalloc.so.2 /opt/omni-operator/lib cp /opt/omni-operator/Dependency_library_openeuler22.03/libLLVM-15.so /opt/omni-operator/lib
安装依赖(预编译so下载安装方式,Gluten场景)
安装LLVM和jemalloc
- Gluten场景中未提供ABSL库的预编译so文件,因此需要用户手动编译安装。
- “/opt/omni-operator”及“/opt/omni-operator/lib”目录用户可自行定义。
- 在管理节点创建“/opt/omni-operator/”目录作为安装OmniOperator算子加速的根目录,进入该目录。
1 2 3
mkdir /opt/omni-operator cd /opt/omni-operator rm Dependency_library_Gluten.zip -rf
- 从软件安装包获取中获取Dependency_library_Gluten.zip压缩包,并上传到“/opt/omni-operator/”目录下,再进行解压。
1unzip Dependency_library_Gluten.zip - 创建“/opt/omni-operator/lib”目录,将Dependency_library_Gluten中的libLLVM-15.so、libjemalloc.so.2复制到“/opt/omni-operator/lib”目录下。
如果环境中安装过LLVM和jemalloc,需要先删除旧的libLLVM-15.so、libjemalloc.so.2文件,再执行复制命令。
1 2
rm -rf /opt/omni-operator/lib/libjemalloc.so.2 rm -rf /opt/omni-operator/lib/libLLVM-15.so
1 2 3 4
cd /opt/omni-operator mkdir lib cp /opt/omni-operator/Dependency_library_Gluten/libjemalloc.so.2 /opt/omni-operator/lib cp /opt/omni-operator/Dependency_library_Gluten/libLLVM-15.so /opt/omni-operator/lib
- 手动编译安装ABSL。详细操作步骤请参见安装ABSL操作步骤的1~3。
安装依赖(源码编译安装方式,SparkExtension和Gluten场景)
安装LLVM
“/opt/omni-operator”、“/opt/omni-operator/llvm”和“/opt/omni-operator/lib”目录用户可自行定义。
- 下载llvm-project-llvmorg-15.0.4.tar.gz,在管理节点上创建目录“/opt/omni-operator”作为安装OmniOperator的根目录并进入,将压缩包上传到“/opt/omni-operator”目录下。
1 2 3 4 5 6
mkdir /opt/omni-operator cd /opt/omni-operator tar zxvf llvm-project-llvmorg-15.0.4.tar.gz mv llvm-project-llvmorg-15.0.4 llvm cd llvm mkdir build
- 进入“build”目录编译并安装LLVM。
1 2 3 4
cd ./build cmake -DCMAKE_INSTALL_PREFIX=/opt/omni-operator/llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_LLVM_DYLIB=true -DLLVM_ENABLE_PROJECTS="clang" -G "Unix Makefiles" ../llvm make -j4 make install
- 在“/opt/omni-operator”下创建“lib”目录,拷贝“/opt/omni-operator/llvm/lib/libLLVM-15.so”到“/opt/omni-operator/lib”目录下。
1 2
mkdir /opt/omni-operator/lib cp /opt/omni-operator/llvm/lib/libLLVM-15.so /opt/omni-operator/lib/
安装jemalloc
- 下载jemalloc-5.3.0.tar.gz,并上传到管理节点。
1 2 3
cd /opt/omni-operator/ tar zxvf jemalloc-5.3.0.tar.gz mv jemalloc-5.3.0 jemalloc
“/opt/omni-operator/jemalloc”目录用户可自行定义。
- 进入“jemalloc”目录,运行脚本并安装。
1 2 3
cd jemalloc ./autogen.sh --disable-initial-exec-tls make -j2
- 拷贝“/opt/omni-operator/jemalloc/lib/libjemalloc.so.2”到“/opt/omni-operator/lib”目录下。
1cp /opt/omni-operator/jemalloc/lib/libjemalloc.so.2 /opt/omni-operator/lib/
安装ABSL(仅在Gluten上使能时需要)
- 在管理节点上下载ABSL源码。
git clone https://szv-open.codehub.huawei.com/OpenSourceCenter/abseil/abseil-cpp.git cd abseil-cpp/ git checkout tags/20250127.0
- 编译ABSL源码。
mkdir build && cd build cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DABSL_PROPAGATE_CXX_STD=ON -DBUILD_SHARED_LIBS=ON make -j32 make install
- 将编译好的ABSL库拷贝到“/opt/omni-operator/lib”。
cp /usr/local/lib64/libabsl_* /opt/omni-operator/lib
父主题: 安装特性