您的位置:首页 > 其它

Pika 部署

2018-04-11 11:03 344 查看

Pika

安装 Pika

注意: ubuntu14.04

  1. 安装相关依赖

    apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler libv4l-dev libgtk-3-0 \
    apt-get install gcc-4.8 \
    apt-get install g++-4.8

  2. 获取项目源代码

git clone --recursive https://github.com/Qihoo360/pika

  1. 更新子模块(如果是从已有旧的代码库升级到2.3.4的版本)

pika目前submodule依赖glog,pink,slash,nemo(nemo -> nemo-rocksdb -> rocksdb);

cd pika ## 进入目录更新子模块 \
git submodule update --recursive --init

  1. 编译

    make

  2. 启动

    ./output/bin/pika -c ./conf/pika.conf &

  3. 如果没有意外,那么启动就回出现9221端口
netstat -lntup |grep pika
tcp        0      0 0.0.0.0:9221            0.0.0.0:*               LISTEN      15805/pika
tcp        0      0 0.0.0.0:10221           0.0.0.0:*               LISTEN      15805/pika
tcp        0      0 0.0.0.0:10321           0.0.0.0:*               LISTEN      15805/pika
tcp        0      0 0.0.0.0:11221           0.0.0.0:*               LISTEN      15805/pika
  1. 简单版配置文件
cat > /opt/pika/conf/pika.conf <<EOF
port : 9221
thread-num : 2
sync-thread-num : 6
sync-buffer-size : 10
log-path : /data/pika/log/
loglevel : info
db-path : /data/pika/db
write-buffer-size : 268435456
timeout : 60
requirepass :
masterauth :
userpass :
userblacklist :
dump-prefix :
dump-path : /data/pika/dump/
dump-expire : 0
pidfile : ./pika.pid
maxclients : 20000
target-file-size-base : 20971520
expire-logs-days : 7
expire-logs-nums : 10
root-connection-num : 2
slowlog-log-slower-than : 10000
slave-read-only : 0
db-sync-path : /data/pika/dbsync/
db-sync-speed : -1
slave-priority : 100
server-id : 1
double-master-ip :
double-master-port :
double-master-server-id :
binlog-file-size : 104857600
compression : snappy
max-background-flushes : 1
max-background-compactions
5b4
: 2
max-cache-files : 5000
max-bytes-for-level-multiplier : 10
EOF

如果使用上面的配置文件,就需要创建下面目录

cp output /opt/pika -rfp
chown -R rela.rela /data/pika/log/ /data/pika/db /opt/pika/dump/ /data/pika/dbsyn
mkdir -p  /data/logs/pika /data/pika/db /opt/pika/dump/ /data/pika/dbsync
chown -R rela.rela /data/logs/pika /data/pika/db /opt/pika/dump/ /data/pika/
cat > /etc/supervisor/conf.d/pika.conf <<EOF
[program:pika]
command=/opt/pika/bin/pika -c /opt/pika/conf/pika.conf
;process_name=%(process_num)02d
numprocs=1
user=rela
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/data/logs/pika/pika_sup.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=5
EOF

supervisorctl update
安装完成

pika 主从同步设置

master 无需修改

slave 只要修改添加一个配置

  1. /opt/pika/conf/pika.conf 配置文件加的内容如下
# replication
#slaveof : master-ip:master-port
slaveof : 172.31.15.151:9221
  1. 清空 slave 原有的 db 目录内容,以及log 目录内容
rm -rf /data/pika/log/*  /data/pika/db/*
< 2d90 blockquote>

如果不清空的话,如果slave 原来存在内容,那边出出现下面的故障:

W0108 10:58:02.447227 19749 pika_trysync_thread.cc:93] Reply from master after trysync: ERR InvalidOffset
W0108 10:58:02.447358 19749 pika_trysync_thread.cc:125] something wrong with sync, come in SyncError stage
W0108 10:58:02.447381 19749 pika_server.cc:684] Sync error, set repl_state to PIKA_REPL_ERROR

注意: 防火墙需要把pika的四个端口都开放,不然可能会出现无法slaveof成功

  1. 重启 pika

    supervisorctl restart pika

pika 双主

pika双主

修改双主A的

pika.conf
配置文件

...
# server-id for hub
server-id : 1
...
# The peer-master config
double-master-ip :     192.168.10.2    配置另一个主的ip
double-master-port : 9220      配置另一个主的port
double-master-server-id :  2   配置另一个主的server id (注意不要与本机server id和已经连接的slave的sid重复)

修改双主B的

pika.conf
配置文件

# server-id for hub
server-id : 2
...
# The peer-master config
double-master-ip :     192.168.10.1    配置另一个主的ip
double-master-port : 9220      配置另一个主的port
double-master-server-id :  1   配置另一个主的server id (注意不要与本机server id和已经连接的slave的sid重复)

分别启动两个Pika实例, 使用info查看信息

...
# DoubleMaster(DOUBLEMASTER)
role:double_master
the peer-master host:192.168.10.2
the peer-master port:9220
double_master_mode: True
repl_state: 3
double_master_server_id:2
double_master_recv_info: filenum 0 offset 0

其他

Codis集群的搭建与使用

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pika 部署 主从同步