Pika 部署
2018-04-11 11:03
344 查看
Pika
安装 Pika
注意: ubuntu14.04
-
安装相关依赖
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 - 获取项目源代码
git clone --recursive https://github.com/Qihoo360/pika
- 更新子模块(如果是从已有旧的代码库升级到2.3.4的版本)
pika目前submodule依赖glog,pink,slash,nemo(nemo -> nemo-rocksdb -> rocksdb);
cd pika ## 进入目录更新子模块 \
git submodule update --recursive --init
-
编译
make
-
启动
./output/bin/pika -c ./conf/pika.conf &
- 如果没有意外,那么启动就回出现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
- 简单版配置文件
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 只要修改添加一个配置
- /opt/pika/conf/pika.conf 配置文件加的内容如下
# replication #slaveof : master-ip:master-port slaveof : 172.31.15.151:9221
- 清空 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成功
- 重启 pika
supervisorctl restart 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
其他
相关文章推荐
- Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
- Spark1.0.0 on YARN 模式部署
- 为php加速--xcache部署
- 部署Nodeclub系统大坑总结
- 使用 Git Hook 实现网站的自动部署
- openstack Q版本自动化部署课程直播通知
- 一步步在vSphere 4.1上部署vShield
- Exchange 2013部署系列之(二)先决条件
- openstack 管理二十八 - rpm 方式部署 openstack [keystone]
- Linux mint 18.2 安装 ansible,部署pyenv/virtualenv
- HUE简介及部署集成
- Ant 自动化远程部署工作笔记
- 如何把应用程序部署到Windows Azure中
- Django——成绩管理系统部署及应用
- 如何在Linux下部署Git+Bugzilla+Gogs服务
- jboss7.1.1.Final+MyEclipse下每次修改jsp都要重新部署项目
- CentOS6.6+Puppet3.7.3分布式部署Zabbix2.4监控系统
- VS2012部署openGL
- NetScaler VPX在Azure上的部署(二)