Arrow Skyhook 示例#

位于源代码树内的 cpp/examples/arrow/dataset_skyhook_scan_example.cc 文件包含了一个使用 Skyhook 将筛选器和投影卸载到 Ceph 集群的示例。

说明#

注意

以下说明适用于 Ubuntu 20.04 或更高版本。

  1. 安装 Ceph 和 Skyhook 依赖项。

    apt update
    apt install -y cmake \
                   libradospp-dev \
                   rados-objclass-dev \
                   ceph \
                   ceph-common \
                   ceph-osd \
                   ceph-mon \
                   ceph-mgr \
                   ceph-mds \
                   rbd-mirror \
                   ceph-fuse \
                   rapidjson-dev \
                   libboost-all-dev \
                   python3-pip
    
  2. 构建并安装 Skyhook。

    git clone https://github.com/apache/arrow
    cd arrow/
    mkdir -p cpp/release
    cd cpp/release
    cmake -DARROW_SKYHOOK=ON \
          -DARROW_PARQUET=ON \
          -DARROW_WITH_SNAPPY=ON \
          -DARROW_BUILD_EXAMPLES=ON \
          -DARROW_DATASET=ON \
          -DARROW_CSV=ON \
          -DARROW_WITH_LZ4=ON \
          ..
    
    make -j install
    cp release/libcls_skyhook.so /usr/lib/x86_64-linux-gnu/rados-classes/
    
  3. 使用 脚本部署具有单个内存中 OSD 的 Ceph 集群。

    ./micro-osd.sh /tmp/skyhook
    
  4. 生成示例数据集。

    pip install pandas pyarrow
    python3 ../../ci/scripts/generate_dataset.py
    cp -r nyc /mnt/cephfs/
    
  5. 执行示例。

    LD_LIBRARY_PATH=/usr/local/lib release/dataset-skyhook-scan-example file:///mnt/cephfs/nyc