Poseidon分布式搜索引擎快速入门指南
前言
Poseidon是一款由奇虎360开发的分布式搜索引擎系统,专为海量数据搜索场景设计。本文将详细介绍如何从零开始搭建Poseidon开发环境,完成代码编译、服务部署以及索引构建的全过程,帮助开发者快速掌握Poseidon的基本使用方法。
环境准备
系统要求
Poseidon主要运行在64位Linux系统上,推荐使用CentOS 6.2或更高版本。可以通过以下命令查看系统版本:
cat /etc/redhat-release
依赖软件安装
在开始前,请确保系统中已安装以下必备组件:
- Java环境:JDK 1.7或更高版本
- Golang:1.6或更高版本
- Protobuf:3.0或更高版本(可选)
- Gradle:构建工具
- Memcached:1.4.4或更高版本
- Redis:2.4或更高版本
Gradle配置示例
下载Gradle二进制包并解压后,需要配置环境变量。编辑~/.bashrc或~/.bash_profile文件,添加以下内容:
GOPATH=$HOME
export GOPATH
GRADLE_HOME=/path/to/gradle-3.1
PATH=$PATH:$HOME/bin:$GRADLE_HOME/bin
export PATH
保存后执行source ~/.bashrc使配置生效。
代码获取与编译
获取源代码
建议在$HOME目录下创建工作区,并确保该目录已添加到$GOPATH环境变量中:
mkdir -p src/github.com/Qihoo360
cd src/github.com/Qihoo360
git clone poseidon项目地址
cd poseidon
构建项目
执行构建脚本生成可运行包:
sh ./build.sh
构建完成后,所有组件包将输出到dist目录下,包括:
- index-0.1.tar
- poseidon_proxy-0.1.tar.gz
- poseidon_searcher-0.1.tar.gz
- idgenerator-0.1.tar.gz
- meta-0.1.tar.gz
- docformat-0.1.tar.gz
- hdfsReader-0.1.tar
服务部署
准备工作
-
启动Memcached:默认端口11211
- 如果使用不同配置,需修改
meta/conf/test.ini
- 如果使用不同配置,需修改
-
启动Redis:
- 地址:127.0.0.1:6379
- 密码:password
- 注意:必须以IP:PORT形式启动且必须设置密码
- 如配置不同,需修改
idgenerator/conf/idgenerator.ini
核心服务部署
进入dist目录,执行以下命令批量部署核心服务:
ROOT=`pwd`
for f in idgenerator poseidon_proxy poseidon_searcher meta
do
cd $ROOT
tar -zxvf ${f}*.tar.gz
cd $f && sh serverctl start
done
HDFS Reader部署
tar -xvf hdfsReader.tar
cd hdfsReader
sh bin/hdfsReader.sh start
索引构建流程
1. DocFormat部署
DocFormat负责原始数据格式化处理:
mkdir -p /home/poseidon/data/src
chmod 777 -R /home/poseidon
tar -zxvf docformat-0.1.tar.gz
cd docformat-0.1
sh bin/install.sh stop # 停止已有服务
rm -rfv /home/poseidon/data/* # 清空数据
sh bin/install.sh start
2. 数据处理
下载示例数据并处理:
wget 示例数据URL
tar -xvf weibo_data.tar.gz
sh bin/demo.sh weibo_data.txt
处理完成后,检查输出目录是否生成新文件:
ls -ahtl /home/poseidon/src/test/YYYY-MM-DD/
3. 索引构建
确保meta服务已运行后,执行索引构建:
tar -xvf index-0.1.tar
cd index-0.1
/bin/bash bin/mock_start.sh YYYY-MM-DD
查询测试
索引构建完成后,可通过proxy服务查询数据:
curl -XPOST 'http://127.0.0.1:39460/service/proxy/mdsearch' -d '{
"query":{
"page_size":100,
"page_number":0,
"days":["YYYY-MM-DD"],
"business":"test",
"options":{
"pv_only":0,
"filter":""
},
"keywords":{
"text":"3599021455585075"
}
}
}'
查询参数说明
page_size:每页结果数量page_number:页码days:查询日期范围(YYYY-MM-DD格式)business:业务名称options:附加选项pv_only:是否仅查询PVfilter:过滤条件
keywords:查询关键词(多个关键词为AND关系)
注意事项
- 所有服务部署前必须确保依赖服务(如Redis、Memcached)已正确启动
- 索引构建前必须确认meta服务正常运行
- 中文关键词查询需要进行URL编码并转换为小写
- 生产环境部署时,请根据实际需求调整配置文件参数
通过以上步骤,您已经完成了Poseidon搜索引擎的基本部署和测试。对于更高级的功能和Hadoop集成,可以参考相关文档进行深入配置。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



