Linux服务器上搭建codis集群之——安装前环境准备
codis是redis的分布式集群模式,由豌豆荚开源,本文简单记录一下它的集群搭建方法。
首先介绍一下我的实验环境。三台配置相同的虚拟机,
[root@test ~]# ip a|grep -w "inet"|grep -vw lo
inet 10.0.0.10/ brd 10.0.0.255 scope global eth0
[root@test ~]# uname -r
2.6.-.el6.x86_64
[root@test ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)
[root@test ~]#
安装codis之前,我们需要准备的有,JAVA环境、GO环境、Zookeeper协调服务,codis安装包
第一步:
安装java环境,三台全部安装,因为都有运行zookeeper。jdk最好去官网下载一个rpm包安装,yum源里的openjdk运行时会有点小问题,为了减少不必要的问题,我们就不使用openjdk了。rpm包自己去下载就好了,下载之后传到服务器上。
[root@test1 ~]# rz -y
rz waiting to receive.
zmodem trl+C ȡ % KB KB/s :: Errors... [root@test1 ~]# ll
total
-rw-r--r--. root root Nov jdk-8u181-linux-x64.rpm
[root@test1 ~]# for host in ;do scp jdk-8u181-linux-x64.rpm 10.0..$host:/root;done
root@10.0.0.11's password:
jdk-8u181-linux-x64.rpm % 162MB .2MB/s :
root@10.0.0.12's password:
jdk-8u181-linux-x64.rpm
[root@test1 ~]# for host in ;do ssh 10.0..$host rpm -ivh jdk-8u181-linux-x64.rpm ;done
The authenticity of host '10.0.0.10 (10.0.0.10)' can't be established.
RSA key fingerprint is f9:d9:c2:cb:cc:0d:ef:9e:ba:::a3:b0::1b:2f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.10' (RSA) to the list of known hosts.
root@10.0.0.10's password:
warning: jdk-8u181-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ##################################################
package jdk1.-:1.8.0_181-fcs.x86_64 is already installed
root@10.0.0.11's password:
warning: jdk-8u181-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ##################################################
jdk1. ##################################################
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
root@10.0.0.12's password:
warning: jdk-8u181-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ##################################################
jdk1. ##################################################
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
[root@test1 ~]#
安装完成之后验证是否成功安装。
[root@test1 ~]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) -Bit Server VM (build 25.181-b13, mixed mode)
[root@test1 ~]#
第二步:
安装zookeeper,三台服务器全部安装。
下载zookeeper的安装包
[root@test1 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.14.tar.gz
[root@test1 ~]# ll
total 202836
-rw-r--r--. 1 root root 170023183 Nov 2 2018 jdk-8u181-linux-x64.rpm
-rw-r--r--. 1 root root 37676320 Apr 1 22:44 zookeeper-3.4.14.tar.gz
安装zookeeper,修改配置文件,把我们的zookeeper节点加入zookeeper集群中。
[root@test1 ~]# tar xf zookeeper-3.4..tar.gz -C /usr/local/
[root@test1 ~]# cd /usr/local/
[root@test1 local]# ls
bin etc games include lib lib64 libexec sbin share src zookeeper-3.4.
[root@test1 local]# mv zookeeper-3.4./ zookeeper
[root@test1 local]# cd zookeeper/ [root@test1 zookeeper]# cp conf/zoo_sample.cfg conf/zoo.cfg
最后修改后的结果是
[root@test1 conf]# grep -Ev "^#|^$" zoo.cfg
tickTime=
initLimit=
syncLimit=
dataDir=/data/zk/data #zookeeper的数据存放目录,我们要自己创建出来
clientPort=
server.=10.0.0.10::3888 #这三个节点我的zookeeper节点
server.=10.0.0.11::
server.=10.0.0.12::
创建数据目录和myid标识文件
[root@test1 conf]# mkdir /data/zk/data -p #这个目录在三个节点上都要创建
[root@test1 conf]# echo >/data/zk/data/myid #每个节点的myid数值要不相同
启动zookeeper,这里注意一下,要注意服务器的防火墙问题,防火墙会阻止集群节点之间的通信,导致集群无法建立。建议关闭防火墙。
三个节点都要启动
[root@test3 bin]# cd /usr/local/zookeeper/bin/
[root@test3 bin]# ./zkServer.sh start
查看集群的状态
[root@test3 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
这表明启动成功,并且该节点是集群的领导者
如果出现这种问题,说明你的服务没起来,查看一下服务器上是否启动了zookeeper的进程,如果进程存在,检查一下几台节点之间的防火墙状态,可能是防火墙阻挡了集群通信。
[root@test1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
查看日志信息发现是防火墙的问题
[root@test1 bin]# tailf zookeeper.out
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:)
at java.net.Socket.connect(Socket.java:)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:)
-- ::, [myid:] - INFO [QuorumPeer[myid=]/:::::::::QuorumPeer$QuorumServer@] - Resolved hostname: 10.0.0.12 to address: /10.0.0.12
-- ::, [myid:] - INFO [QuorumPeer[myid=]/:::::::::FastLeaderElection@] - Notification time out:
-- ::, [myid:] - WARN [QuorumPeer[myid=]/:::::::::QuorumCnxManager@] - Cannot open channel to at election address /10.0.0.11:
java.net.NoRouteToHostException: No route to host (Host unreachable)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:)
at java.net.Socket.connect(Socket.java:)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:)
第三步
安装GO环境,这个环境只要在安装codis的服务器上配置就好了,我的是10.0.0.10这台机器。
[root@test2 bin]# yum install epel-release -y
[root@test2 bin]# yum install go -y
验证:
[root@test1 bin]# go version
go version go1.11.5 linux/amd64
到此,我们的准备工作就完成了,限于篇幅原因,下篇写codis安装。
Linux服务器上搭建codis集群之——安装前环境准备的更多相关文章
- 在 Linux 服务器上搭建和配置 Hadoop 集群
实验条件:3台centos服务器,jdk版本1.8.0,Hadoop 版本2.8.0 注:hadoop安装和搭建过程中都是在用户lb的home目录下,master的主机名为host98,slave的主 ...
- 使用codis-admin搭建codis集群
目的 在Redis Codis 部署安装的文章中,介绍了通过fe在web上搭建codis的基本步骤和方法,也介绍了codis-admin的相关说明,为了更好的熟悉codis-admin的使用,本文将使 ...
- nginx的简单使用和使用nginx在windows上搭建tomcat集群
nginx是一款轻量级的web服务器,常用的作用为服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器 1.为什么我们要使用Nginx? 反向代理: 反向代理(Reverse Proxy ...
- 在windows上搭建redis集群
一 所需软件 Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址 ...
- Azure上搭建ActiveMQ集群-基于ZooKeeper配置ActiveMQ高可用性集群
ActiveMQ从5.9.0版本开始,集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的实现方式. 本文主要介绍了在Windows环境下配置基于Zoo ...
- Kubernetes-在Kubernetes集群上搭建HBase集群
经过3天的努力,终于在Kubernetes上把HBase集群搭建起来了,搭建步骤如下. 创建HBase镜像 配置文件包含core-site.xml.hbase-site.xml.hdfs-site ...
- 在Hadoop集群上,搭建HBase集群
(1)下载Hbase包,并解压:这里下载的是0.98.4版本,对应的hadoop-1.2.1集群 (2)覆盖相关的包:在这个版本里,Hbase刚好和Hadoop集群完美配合,不需要进行覆盖. 不过这里 ...
- docker上搭建consul集群全流程
consul简介: consul是提供服务发现.简单配置管理.分区部署的服务注册发现解决方案.主要特性:服务发现\健康检查\基于Key-Value的配置\支持TLS安全通讯\支持多数据中心部署 con ...
- 阿里云CentOS Linux服务器上搭建邮件服务器遇到的问题
参考文章: 阿里云CentOS Linux服务器上用postfix搭建邮件服务器 Linux系统下邮件服务器的搭建(Postfix+Dovecot) 本来想自己搭建邮件服务器,但是看到一篇资料表示阿里 ...
随机推荐
- beetlex网关之聚合和url请求过虑
在这里主要介绍beetlex应用网关的两个插件,分别是聚合和url请求过虑.通过聚合插件可以把整合多个请求的数据来应答请求端,而Url请求过虑同可以拒绝一些有非常关键字的请求. 请求聚合 在网关服务中 ...
- ArcEngine连接Oracle数据库
问题1: 最近写服务需要用ArcEngine连接Oracle数据库,以前连接数据库都会弹出一个窗体.然后填好之后就可以连接了,这样很麻烦. 代码如下: private bool ConnectToSd ...
- JSON小记
json: { "1" : "2", "1" : "3" } 在json中如果有重复的key,会取最后一个key的值,如 ...
- css3实现左右div高度自适应且内容居中对齐
主要运用了css3的弹层布局,直接上代码: 效果:左边盒子宽度固定.内容居中对齐.与右侧盒子高度相等,右侧自动缩放 html: <div class="main"> & ...
- Yolo V3整体思路流程详解!
结合开源项目tensorflow-yolov3(https://link.zhihu.com/?target=https%3A//github.com/YunYang1994/tensorflow-y ...
- “云”端的语雀:用 JavaScript 全栈打造商业级应用
作者| 不四(死马)蚂蚁金服 语雀产品技术负责人 语雀是什么? 语雀是一个专业的云端知识库,面向个人和团队,提供与众不同的知识管理,打造轻松流畅的工作协同,它提供各种格式的在线文档(富文本.表格.设 ...
- vue 项目路由跳转后显示不同的title
1.在router/index.js的每个路由中配置title 2.在项目中运行命令 npm install vue-wechat-title --save 安装插件(在 package.json文件 ...
- Python自带HTTP文件传输服务
一行命令搭建一个基于python的http文件传输服务 由于今天朋友想要一个文件,而我恰好有,因为这个文件比较大,网速不是很给力,所以想到了python自己有这么一个功能,这样不仅不需要下载其他软件, ...
- 【Flink】Flink作业调度流程分析
1. 概述 当向Flink集群提交用户作业时,从用户角度看,只需要作业处理逻辑正确,输出正确的结果即可:而不用关心作业何时被调度的,作业申请的资源又是如何被分配的以及作业何时会结束:但是了解作业在运行 ...
- 洛谷P3335 [ZJOI2013]蚂蚁寻路
题目描述 在一个 n*m 的棋盘上,每个格子有一个权值,初始时,在某个格子的顶点处一只面朝北的蚂蚁,我们只知道它的行走路线是如何转弯,却不知道每次转弯前走了多长. 蚂蚁转弯是有一定特点的,即它的转弯序 ...