安装依赖

以本地方式安装OmniOperator算子加速,在OmniOperator算子加速结合Spark引擎应用时,仅需在管理节点安装依赖包LLVM和Jemalloc。在Spark on yarn场景,通过Spark的--archives参数提升部署易用性。预编译SO下载安装与源码编译安装两种方式二选一即可。

安装依赖(预编译so下载安装方式)

安装LLVM和Jemalloc

Dependency_library.zip压缩包中会有Dependency_library_openeuler.zip和Dependency_library_centos.zip两个包,分别适用于openEuler和CentOS系统,以下安装以openEuler系统为例。如需在CentOS系统安装OmniOperator算子加速,把以下命令参数中的Dependency_library_openeuler.zip替换为Dependency_library_centos.zip即可。

  1. 在管理节点和计算节点创建“/opt/omni-operator/”目录作为安装OmniOperator算子加速的根目录,进入该目录。

    1
    2
    3
    mkdir /opt/omni-operator
    cd /opt/omni-operator
    rm -rf Dependency_library_*.zip
    

  2. 软件安装包获取中获取的Dependency_library压缩包(Dependency_library.zip和Dependency_library.z01),上传到“/opt/omni-operator/”目录下,进行解压。

    1
    2
    zip -F Dependency_library.zip --out Dependency_library_complete.zip
    unzip Dependency_library_complete.zip
    

  3. 创建“/opt/omni-operator/lib”目录,将Dependency_library_openeuler中的libLLVM-15.so、libjemalloc.so.2复制到“/opt/omni-operator/lib”目录下。

    1
    2
    3
    4
    5
    6
    cd /opt/omni-operator
    mkdir lib
    rm -rf  /opt/omni-operator/lib/libjemalloc.so.2
    rm -rf  /opt/omni-operator/lib/libLLVM-15.so
    cp /opt/omni-operator/Dependency_library_openeuler/libjemalloc.so.2 /opt/omni-operator/lib
    cp /opt/omni-operator/Dependency_library_openeuler/libLLVM-15.so /opt/omni-operator/lib
    

“/opt/omni-operator”“/opt/omni-operator/lib”目录用户可自行定义。

安装依赖(源码编译安装方式)

安装LLVM

  1. 下载jemalloc-5.3.0.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
    

  2. 进入“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
    

  3. “/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/
    

“/opt/omni-operator”“/opt/omni-operator/llvm”“/opt/omni-operator/lib”目录用户可自行定义。

安装Jemalloc

  1. 下载https://github.com/jemalloc/jemalloc/archive/refs/tags/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”目录用户可自行定义。

  2. 进入“jemalloc”目录,运行脚本并安装。

    1
    2
    3
    cd jemalloc
    ./autogen.sh --disable-initial-exec-tls
    make –j2
    

  3. 拷贝“/opt/omni-operator/jemalloc/lib/libjemalloc.so.2”“/opt/omni-operator/lib”目录下。

    1
    cp /opt/omni-operator/jemalloc/lib/libjemalloc.so.2 /opt/omni-operator/lib/