开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

安装UDF翻译工具

安装UDF翻译工具RPM包

  1. 表3中获取UDF翻译工具的RPM包,将RPM包上传至物理机的“/opt”目录。
  2. 在容器flink_jm_8c32g中安装该RPM包,安装路径默认为“/opt”
    rpm -ivh UNT-1.0-35.noarch.rpm

    命令执行完成后会自动创建“/opt/udf-trans-opt”目录。

    如果没有创建“/opt/udf-trans-opt”目录,请执行以下命令手动创建。

    mkdir /opt/udf-trans-opt
  3. 安装OmniStream中安装后的基础库目录复制到“/opt/udf-trans-opt”
    docker cp /usr/local/OmniStream/libbasictypes flink_jm_8c32g:/opt/udf-trans-opt

安装UDF依赖

  1. 可选:在物理机上传并解压KACC_JSON。
    表3中获取BoostKit-kaccjson_1.1.0.zip,上传该压缩包至物理机的“/opt”目录,并解压。
    1
    2
    cd /opt/
    unzip BoostKit-kaccjson_1.1.0.zip
    
  2. 将KACC_JSON头文件和静态库复制到flink_jm_8c32g容器中的UDF翻译工具路径“/opt/udf-trans-opt/libbasictypes”
    1
    2
    3
    4
    5
    docker exec flink_jm_8c32g mkdir -p /opt/udf-trans-opt/libbasictypes/include 
    docker exec flink_jm_8c32g mkdir -p /opt/udf-trans-opt/libbasictypes/lib
    docker cp include/kacc_json flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
    docker cp include/kacc_gson_shell flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
    docker cp libkaccgson.a flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/lib/
    
  3. 可选:下载KSL并解压安装。
    1. 表3获取BoostKit-ksl_2.5.1.zip,上传该压缩包至物理机的“/opt”目录,解压并复制RPM包到flink_jm_8c32g容器中。
      1
      2
      3
      cd /opt
      unzip BoostKit-ksl_2.5.1.zip
      docker cp boostkit-ksl-2.5.1-1.aarch64.rpm flink_jm_8c32g:/opt/udf-trans-opt/
      
    2. 进入flink_jm_8c32g容器并安装KSL的RPM包。
      1
      2
      3
      docker exec -it flink_jm_8c32g bash
      cd /opt/udf-trans-opt/
      rpm -ivh boostkit-ksl-2.5.1-1.aarch64.rpm
      
  4. 在物理机安装OmniStream依赖头文件。
    1. 将从表3中获取的depend.zip安装包解压到“/usr/local/OmniStream/depend”目录下。
      mkdir -p /usr/local/OmniStream/depend/
      unzip depend.zip -d /usr/local/OmniStream/depend/
      docker cp /usr/local/OmniStream/libbasictypes/OmniStream flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
      docker cp /usr/local/OmniStream/libbasictypes/include/core flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
      docker cp /usr/local/OmniStream/libbasictypes/include/runtime flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
      docker cp /usr/local/OmniStream/libbasictypes/include/streaming flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
      docker cp /usr/local/OmniStream/libbasictypes/include/table flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
      docker cp /usr/local/OmniStream/libbasictypes/include/third_party flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
    2. 安装jemalloc。
      1. 下载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”目录用户可自行定义。

      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/
        
    3. 复制jemalloc.h到容器UDF工具的头文件引用目录中。
      docker cp /opt/omni-operator/jemalloc/include/jemalloc/jemalloc.h flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
    4. 下载OmniOperator,将OmniOperator源码全部拷贝到容器UDF工具的头文件引用目录中。
      cd /usr/local/OmniStream/depend/
      git clone https://atomgit.com/openeuler/OmniOperator.git -b operator_flink_1107
      mv OmniOperator OmniOperatorJIT 
      docker cp /usr/local/OmniStream/depend/OmniOperatorJIT flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
    5. 下载xxHash,将xxHash.h拷贝到UDF工具的头文件引用目录中。
      cd /usr/local/OmniStream/depend/
      git clone https://github.com/Cyan4973/xxHash.git
      cd xxHash && git checkout tags/v0.8.2
      docker cp /usr/local/OmniStream/depend/xxhash.h flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
    6. 下载Nlohmann json,将本地代码中的include/nlohmann目录拷贝到容器UDF工具的头文件引用目录中。
      cd /usr/local/OmniStream/depend/
      gitclone https://github.com/nlohmann/json.git-b v3.11.3
      docker cp /usr/local/OmniStream/depend/nlohmann/include/nlomann flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/
  5. 安装libboundscheck头文件“/opt/udf-trans-opt/libbasictypes”
    1. 进入flink_jm_8c32g容器创建目录“/opt/udf-trans-opt/libbasictypes/include/libboundscheck”并退出容器。
      1
      2
      3
      docker exec -it flink_jm_8c32g bash
      mkdir -p /opt/udf-trans-opt/libbasictypes/include/libboundscheck/
      exit
      
    2. 安装OmniStream步骤中安装后的include复制到flink_jm_8c32g容器的“/opt/udf-trans-opt/libbasictypes/include/libboundscheck”目录。
      1
      docker cp /usr/local/OmniStream/include flink_jm_8c32g:/opt/udf-trans-opt/libbasictypes/include/libboundscheck