Poseidon分布式搜索引擎快速入门指南

Poseidon分布式搜索引擎快速入门指南

【免费下载链接】poseidon A search engine which can hold 100 trillion lines of log data. 【免费下载链接】poseidon 项目地址: https://gitcode.com/gh_mirrors/pose/poseidon

前言

Poseidon是一款由奇虎360开发的分布式搜索引擎系统,专为海量数据搜索场景设计。本文将详细介绍如何从零开始搭建Poseidon开发环境,完成代码编译、服务部署以及索引构建的全过程,帮助开发者快速掌握Poseidon的基本使用方法。

环境准备

系统要求

Poseidon主要运行在64位Linux系统上,推荐使用CentOS 6.2或更高版本。可以通过以下命令查看系统版本:

cat /etc/redhat-release

依赖软件安装

在开始前,请确保系统中已安装以下必备组件:

  1. Java环境:JDK 1.7或更高版本
  2. Golang:1.6或更高版本
  3. Protobuf:3.0或更高版本(可选)
  4. Gradle:构建工具
  5. Memcached:1.4.4或更高版本
  6. 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

服务部署

准备工作

  1. 启动Memcached:默认端口11211

    • 如果使用不同配置,需修改meta/conf/test.ini
  2. 启动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:是否仅查询PV
    • filter:过滤条件
  • keywords:查询关键词(多个关键词为AND关系)

注意事项

  1. 所有服务部署前必须确保依赖服务(如Redis、Memcached)已正确启动
  2. 索引构建前必须确认meta服务正常运行
  3. 中文关键词查询需要进行URL编码并转换为小写
  4. 生产环境部署时,请根据实际需求调整配置文件参数

通过以上步骤,您已经完成了Poseidon搜索引擎的基本部署和测试。对于更高级的功能和Hadoop集成,可以参考相关文档进行深入配置。

【免费下载链接】poseidon A search engine which can hold 100 trillion lines of log data. 【免费下载链接】poseidon 项目地址: https://gitcode.com/gh_mirrors/pose/poseidon

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值