资讯详情

资讯详情

建站行业动态 · 设计趋势 · 数字化升级干货

从源码编译 QFS:Quantcast File System 在 Linux 与 macOS 上的完整构建指南

从源码编译 QFS:Quantcast File System 在 Linux 与 macOS 上的完整构建指南 从源码编译 QFSQuantcast File System 在 Linux 与 macOS 上的完整构建指南【免费下载链接】qfsQuantcast File System项目地址: https://gitcode.com/gh_mirrors/qf/qfsQFSQuantcast File System是 Quantcast 开源的高性能、高容错分布式文件系统专为 MapReduce 等顺序读写大文件的场景设计。如果你不想直接使用二进制发行包而是希望从源码编译 QFS掌握完整的构建流程那么本文就是为你准备的从依赖安装、源码获取到编译调试与验证部署一份在 Linux 与 macOS 上都能顺畅照做的完整指南。为什么推荐从源码编译 QFS从源码编译 QFS 的好处非常直观平台适配自由官方预编译包覆盖有限而源码编译支持 Linux 各发行版、macOSx86_64 与 arm64乃至 Cygwin可控的构建选项可以按需选择 Release/Debug 构建、是否编译 JNI/FUSE/Java/Python/Go 等组件便于二次开发编译出来的带调试符号的二进制方便开发者排查与改进。QFS 的核心由 C 编写使用 CMake 驱动构建顶层 Makefile 是官方推荐的编译入口接下来我们就从它入手。第一步准备编译 QFS 的依赖环境编译 QFS 前需要确认开发机已经装齐以下基础工具gcc/g、make、git、cmake2.8.4 以上、maven3.0.3 以上用于 Java 部分以及boost、krb5、openssl等开发库。FUSE、JDK、Python 则是可选组件的依赖。LinuxUbuntu/Debian安装依赖的最快方法在 Ubuntu/Debian 上一条命令即可装齐核心依赖sudo apt-get update sudo apt-get install -y gcc g make git cmake maven \ libboost-regex-dev libkrb5-dev libssl-dev如需 FUSE 挂载、Java 访问和 Python 绑定再补充sudo apt-get install -y libfuse-dev default-jdk python-devLinuxRHEL/CentOS安装依赖的最快方法在 RHEL/CentOS 系列上对应的包名略有不同sudo yum install -y gcc-c make git cmake maven \ boost-devel krb5-devel openssl-devel可选组件src/cc/fuse/kfs_fuse_main.cc 需要 FUSEsudo yum install -y fuse-devel java-openjdk-devel python-devel libuuid-develmacOS 安装依赖的完整步骤macOS 上首先确保安装了 Xcode 命令行工具xcode-select --install然后通过 Homebrew 安装其余依赖brew install cmake boost krb5 openssl maven git提示macOS 的boost若出现链接问题可参考项目文档按-no_single选项重新安装以适配/opt/local/lib/*-mt.dylib的情况。第二步获取 QFS 源码从源码编译 QFS 的第一步是拿到源码。克隆仓库git clone https://gitcode.com/gh_mirrors/qf/qfs cd qfs克隆完成后可以快速浏览一下仓库结构详见 wiki/Developer-Documentation.mdsrc/cc/C 核心代码包含 metaserver、chunkserver、客户端库与工具src/java/Java 访问层与 Hadoop 插件examples/sampleservers/本地单节点部署脚本conf/服务端示例配置。第三步执行 QFS 编译命令一行搞定在源码根目录直接执行make顶层 MakefileMakefile会依次完成两件事在build/release目录中调用cmake生成构建文件执行make install完成编译与安装。编译完成后全部产物都在build/release目录中build/release/bin/metaserver、chunkserver 等守护进程与工具build/release/lib/客户端库build/release/include/头文件。常用构建选项速查表需求命令默认 Release 构建makeDebug 构建带调试符号make BUILD_TYPEdebug CMAKE_OPTIONS显示完整编译输出VERBOSEtrue make只编译 Java 部分make java编译 Python 绑定make python编译 Go 绑定make go生成发布 tarballmake tarball运行核心测试make test注意Debug 构建的产物位于build/debug其客户端库默认会输出较多日志生产部署建议使用 Release 构建-O2 -g级别既有性能又保留排错信息。第四步编译后的快速验证单节点拉起 QFS 服务编译完成后可用官方脚本在本地快速拉起一个含 1 个 metaserver、2 个 chunkserver 的测试集群./examples/sampleservers/sample_setup.py -a install脚本会默认在工作目录~/qfsbase下创建配置与数据目录并启动服务具体参数可查看 examples/sampleservers/sample_setup.py 中的-c/-a/-s/-u/-o选项。用 qfsshell 做一次读写冒烟测试# 将工具加入 PATH export PATH${PWD}/build/release/bin/tools:${PATH} # 创建目录 qfsshell -s localhost -p 20000 -q -- mkdir /qfs/tmp # 写入一个 RS 编码文件 echo Hello World | cptoqfs -s localhost -p 20000 -S -k /qfs/tmp/helloworld -d - # 读回内容 qfscat -s localhost -p 20000 /qfs/tmp/helloworld验证完成后用./examples/sampleservers/sample_setup.py -a uninstall清理测试环境即可。运行 QFS 自带的完整测试如果想让构建质量更有保障可以运行make test这会启动本地 metaserver 与 chunkserver 做多项功能校验包括 Reed-Solomon 恢复测试通常需要几分钟。若磁盘使用率接近上限测试可能失败请留意配置中的maxSpaceUtilizationThreshold。第五步编译常见问题排查提示找不到 Boost/Krb5/OpenSSL确认对应开发包已安装且 cmake 能找到头文件路径macOS 上可用-DCMAKE_INCLUDE_PATH指定 Homebrew 的 include 目录。FUSE 相关报错FUSE 为可选依赖若不需要挂载功能可忽略未找到 FUSE 的提示构建会跳过src/cc/fuse目录。Java 部分失败确认mvn --version可用要求 3.0.3或在不需要 Java 时跳过make java。Python 绑定构建失败需要 Python 3.6 且包含venv模块缺少时make python会给出明确提示。链接期符号错误可尝试切换静态/动态链接cmake 选项QFS_USE_STATIC_LIB_LINKAGE控制该行为默认 ON。编译完成之后性能与下一步编译只是开始。官方基准测试显示在包含 6500 块磁盘的异构集群上QFS 读写 20TB 未压缩数据的吞吐能力优于 HDFS上图为官方吞吐对比数据。接下来你可以阅读 wiki/Administrators-Guide.md 了解生产配置参考 examples/cc/qfssample_main.cc 编写自己的 C 客户端用 benchmarks/mstress 跑一轮元数据基准测试。从源码编译 QFS 并不复杂只要按本文的依赖准备、构建、验证三步走几分钟内就能在自己的 Linux 或 macOS 机器上跑起一套完整的 Quantcast File System。动手试试吧【免费下载链接】qfsQuantcast File System项目地址: https://gitcode.com/gh_mirrors/qf/qfs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关资讯