目前有关OceanBase功能、案例、故事的文章已经很多,对OceanBase感兴趣的朋友都想安装一个数据库试试。本文就是分享初学者如何手动搭建一个OceanBase集群。这也是学习理解OceanBase集群原理的第一步。在生产环境,我们有自动化运维平台OCP可以负责生产环境的OceanBase集群部署和运维。同时官网上提供的下载文件里也有python脚本自动化部署OceanBase集群,大家熟悉了安装原理后就可以自己动手使用自动化脚本安装。

OceanBase是分布式数据库,以集群的形式存在,是share-nothing架构。各个节点就是普通的x86服务器,使用本地盘(SSD),不依赖共享存储,也没有集群文件系统。各个节点之间网络互通即可,不需要直连线。所以OceanBase集群的搭建相比ORACLE RAC集群而言,还是很简单的。

目前OceanBase对内存资源要求不低,建议学习环境每个节点在32G以上,64G更好。并且OceanBase集群至少包含三个节点,节点数以奇数递增。如果有三台机器更好,但是如果只有一台机器,但是内存够大(192G以上),那也可以启动三个OceanBase进程来模拟三个节点。

OBServer安装

OceanBase分布式数据库是以集群形式存在,至少三个节点,在每个节点里存在形式是一个observer进程,不同节点上多个observer进程组成一个集群对外提供服务。

1. 安装规划

本次安装目标会搭建一个2-2-2架构的OceanBase集群,理论上这个需要6台机器,实际上我只有3台。因此我会在每个机器上启动2个observer进程来模拟2个节点。

机器节点规划如下。如果你只有一台大内存的机器,可以在上面起3个或者6个OceanBase进程,注意RPC PortConnect Port不要重复或者跟其他应用端口冲突即可。

由于OceanBase是分布式数据库,应用的数据可能分布在任一节点上,所以应用需要通过一个反向代理OBProxy来访问OceanBase集群。OBProxy可以安装在任意机器上,包括OceanBase数据库节点上。这里我安装在其中一个节点上。

2. 机器环境准备

OceanBase机器节点环境主要是安装用户、内核参数配置、防火墙和SELinux设置、时间同步设置、和用户会话限制等。

  • 安装用户

OceanBase默认会安装在用户admin下。可以选择安装在其他用户下(不使用RPM包安装)。

通常建议admin用户配置sudo权限,这样安装过程中就不需要root账户介入。

useradd admin
passwd admin# 赋予sudo权限
chmod u+w /etc/sudoers
vi /etc/sudoers
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
chmod u-w /etc/sudoers
  • 用户会话设置

使用命令ulimit可以查看用户会话默认限制。修改下面文件可以默认会话限制修改永久生效。

sudo vi /etc/security/limits.conf* soft nofile 655350
* hard nofile 655350
* soft stack 20480
* hard stack 20480
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited

退出重登录,检查设置生效

ulimit -a
  • 内核参数配置

内核参数主要是网络、内存相关的设置。

sudo vi /etc/sysctl.conffs.aio-max-nr = 65536
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216net.ipv4.ip_local_port_range = 3500 65535
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_slow_start_after_idle=0vm.swappiness = 0
kernel.core_pattern = /data/1/core-%e-%p-%t
vm.min_free_kbytes = 2097152
vm.max_map_count=655360

修改后使用下面命令生效,并检查

sudo sysctl -p
  • 关闭防火墙和SELinux

Linux的防火墙和SELinux安全特性可能会导致OceanBase各个节点之间通信异常,所以都建议关闭

sudo systemctl disable firewalld
sudo systemctl stop firewalld
sudo systemctl status firewalldsudo vi /etc/selinux/config
SELINUX=disabledsudo setenforce 0
  • 节点时间同步设置

OceanBase是个分布式数据库,要求各个节点的时间保持同步,时间误差控制在50ms以内。节点时间误差偏大时,后面初始化OceanBase集群会失败,或者现有的OceanBase集群会出现异常。

节点间的时间同步要靠Linux的NTP同步来保证。检查时间误差使用clockdiff命令

clockdiff 192.168.1.86
clockdiff 192.168.1.81
clockdiff 192.168.1.241

配置节点的NTP同步

sudo vi /etc/ntp.conf
server 192.168.1.239

停掉ntpd服务,强行同步一次时间,再启动ntpd服务。后续时间同步靠ntpd服务。

sudo service ntpd stop;
sudo ntpdate 192.168.1.239;
sudo service ntpd start;ntpq -4p

3. 软件安装

  • 软件目录

目前oceanbase.alipay.com上提供了OCP试用版下载,里面包含了OCP和OB的很多文件,手动安装只需要里面两个RPM文件:obproxyoceanbase。获取方法如下:

wget https://gw.alipayobjects.com/os/downloads/ossupload/ocp-release.zip
unzip ocp-release.zip
tar zxvf ocp-setup.tar.gz
cd ocp_yh
ls -lrth obproxy-1.3.3-1506155.el7.x86_64.rpm oceanbase-1.4.60-1571952.el7.x86_64.rpm

我们先看一下oceanbaseRPM包内容,

rpm2cpio oceanbase-1.4.60-1571952.el7.x86_64.rpm |cpio –divcd home/admin;tar czvf ob1.4.6.tar.gz oceanbase/cd ~/
scp home/admin/ob1.4.6.tar.gz 192.168.1.241:/tmp/;
scp home/admin/ob1.4.6.tar.gz 192.168.1.81:/tmp/;
scp home/admin/ob1.4.6.tar.gz 192.168.1.86:/tmp/;

可以看到目录结构如下。其中bin下有可执行文件observeretc目录用于存放配置和相关脚本。

如果直接安装该RPM包,则会安装在admin用户的根目录下。由于我们要在一个机器上启动两个observer进程,彼此软件目录要分开。所以改用解压缩RPM包文件然后复制到两个目录,目录owneradmin

su - admin
mkdir -p node1 node2cd ~/node1; tar zxvf /tmp/ob1.4.6.tar.gz -C .cd ~/node2; tar zxvf /tmp/ob1.4.6.tar.gz -C . cd ~/; tree
  • 存储目录

OceanBase的存储目录是在软件目录下的store文件夹里。存储目录会包含数据文件目录和相关日志文件目录。出于性能考虑,数据文件目录和相关日志文件目录都需要单独的文件系统(如果底层是独立的盘会更好)。然后把实际目录映射到软件目录下的store目录下。

su - adminmkdir -p /data/data/1/obdemo/
cd /data/data/1/obdemo/
mkdir -p etc3 sort_dir sstable
mkdir -p /data/log/log1/obdemo/
cd /data/log/log1/obdemo/
mkdir -p clog etc2 ilog oob_clog slog
mkdir -p /home/admin/node1/oceanbase/store/obdemo
cd /home/admin/node1/oceanbase/store/obdemo/
ln -s /data/data/1/obdemo/sort_dir /home/admin/node1/oceanbase/store/obdemo/sort_dir
ln -s /data/data/1/obdemo/sstable /home/admin/node1/oceanbase/store/obdemo/sstable
ln -s /data/log/log1/obdemo/clog /home/admin/node1/oceanbase/store/obdemo/clog
ln -s /data/log/log1/obdemo/ilog /home/admin/node1/oceanbase/store/obdemo/ilog
ln -s /data/log/log1/obdemo/oob_clog /home/admin/node1/oceanbase/store/obdemo/oob_clog
ln -s /data/log/log1/obdemo/slog /home/admin/node1/oceanbase/store/obdemo/slogtree ~/node1 -uhmkdir -p /data/data/2/obdemo/
cd /data/data/2/obdemo/
mkdir -p etc3 sort_dir sstable
mkdir -p /data/log/log2/obdemo/
cd /data/log/log2/obdemo/
mkdir -p clog etc2 ilog oob_clog slog
mkdir -p /home/admin/node2/oceanbase/store/obdemo
cd /home/admin/node2/oceanbase/store/obdemo/
ln -s /data/data/2/obdemo/sort_dir /home/admin/node2/oceanbase/store/obdemo/sort_dir
ln -s /data/data/2/obdemo/sstable /home/admin/node2/oceanbase/store/obdemo/sstable
ln -s /data/log/log2/obdemo/clog /home/admin/node2/oceanbase/store/obdemo/clog
ln -s /data/log/log2/obdemo/ilog /home/admin/node2/oceanbase/store/obdemo/ilog
ln -s /data/log/log2/obdemo/oob_clog /home/admin/node2/oceanbase/store/obdemo/oob_clog
ln -s /data/log/log2/obdemo/slog /home/admin/node2/oceanbase/store/obdemo/slog
tree /home/admin/node2/oceanbase/store/obdemo/ -uhtree ~/node2 -uh

由此一个完整的OBServer进程的相关目录如下:

  • 依赖RPM包安装

OceanBase会对数据进行压缩,所以依赖两个压缩协议的RPM文件:snappy.x86_64lzo.x86_64

rpm -q snappy.x86_64 lzo.x86_64yum -y install snappy.x86_64 lzo.x86_64

OceanBase 集群初始化

1. OBServer启动

  • 启动参数

首先分别在每个节点上启动第一个observer进程,监听端口是2881和2882. 下图中灰色斜体部分都根据实际情况调整。注意根据实际情况修改zone名称、IP, 网卡名字等。

192.168.1.241:2881:2882 zone1 注意修改 zone, IP, 网卡名字
cd /home/admin/node1/oceanbase && /home/admin/node1/oceanbase/bin/observer -i eth0 -P 2882 -p 2881 -z zone1 -d /home/admin/node1/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=100G,datafile_size=200G,config_additional_dir=/data/data/1/obdemo/etc3;/data/log/log1/obdemo/etc2"ps -ef|grep observervi log/observer.log

其他两个节点的启动名分别如下:

192.168.1.81:2881:2882 zone2 注意修改 zone, IP, 网卡名字

cd /home/admin/node1/oceanbase && /home/admin/node1/oceanbase/bin/observer -i eth3 -P 2882 -p 2881 -z zone2 -d /home/admin/node1/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=100G,datafile_size=200G,config_additional_dir=/data/data/1/obdemo/etc3;/data/log/log1/obdemo/etc2"ps -ef|grep observervi log/observer.log

192.168.1.86:2881:2882 zone3 注意修改 zone, IP, 网卡名字

cd /home/admin/node1/oceanbase && /home/admin/node1/oceanbase/bin/observer -i eth3 -P 2882 -p 2881 -z zone3 -d /home/admin/node1/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=100G,datafile_size=200G,config_additional_dir=/data/data/1/obdemo/etc3;/data/log/log1/obdemo/etc2"ps -ef|grep observervi log/observer.log

2. 集群初始化

3节点OBServer都启动后,这一步集群初始化命令就至关重要,成败在此一举。

首先使用mysql命令登录任一节点,然后执行bootstrap命令。注意命令中不要有空格和空白。

mysql -h192.168.1.241 -uroot -P2881 -palter system bootstrap ZONE 'zone1' SERVER '192.168.1.241:2882', ZONE 'zone2' SERVER '192.168.1.81:2882', ZONE 'zone3' SERVER '192.168.1.86:2882';

大概十几秒后集群启动成功。此时重新退出再登录集群。登录命令的username格式需要变化一下。登录成功后修改默认sys租户管理员root@sys

mysql -h192.168.1.241 -uroot@sys -P2881 -p -c -A oceanbase
alter user root identified by 'rootpwd';

退出使用密码登录验证,同时查看集群资源信息。

mysql -h192.168.1.241 -uroot@sys -P2881 -prootpwd -c -A oceanbaseselect zone, svr_ip, inner_port, cpu_total, cpu_assigned, cpu_assigned_percent cpu_ass_percent, round(mem_total/1024/1024/1024) mem_total_gb, round(mem_assigned/1024/1024/1024) mem_ass_gb, round(disk_total/1024/1024/1024) disk_total_gb, unit_num, substr(build_version,1,6) version
from __all_virtual_server_stat
order by zone, svr_ip, inner_port;

3. 集群扩容

目前搭建的还是1-1-1布局的OceanBase集群,需要再添加3个节点,扩容到2-2-2布局。这里就直接在3台机器上再启动第二个observer进程,监听端口是3881和3882。

  • 节点准备

192.168.1.241:3881:3882 zone1 注意修改node zone, ip, port, 网卡名字

cd /home/admin/node2/oceanbase && /home/admin/node2/oceanbase/bin/observer -i eth0 -P 3882 -p 3881 -z zone1 -d /home/admin/node2/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=61440M,datafile_size=100G,config_additional_dir=/data/data/2/obdemo/etc3;/data/log/log2/obdemo/etc2"ps -ef|grep observervi log/observer.log

192.168.1.81:2881:2882 zone2 注意修改node zone, ip, port, 网卡名字

cd /home/admin/node2/oceanbase && /home/admin/node2/oceanbase/bin/observer -i eth3 -P 3882 -p 3881 -z zone3 -d /home/admin/node2/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=61440M,datafile_size=100G,config_additional_dir=/data/data/2/obdemo/etc3;/data/log/log2/obdemo/etc2"ps -ef|grep observervi log/observer.log
  • 集群扩容

将新增的3节点加入到OceanBase集群中。注意zone名称和IP要对应正确。

alter system add server '192.168.1.241:3882' zone 'zone1';
alter system add server '192.168.1.81:3882' zone 'zone2';
alter system add server '192.168.1.86:3882' zone 'zone3';select zone, svr_ip, inner_port, cpu_total, cpu_assigned, cpu_assigned_percent cpu_ass_percent, round(mem_total/1024/1024/1024) mem_total_gb, round(mem_assigned/1024/1024/1024) mem_ass_gb, round(disk_total/1024/1024/1024) disk_total_gb, unit_num, substr(build_version,1,6) version
from __all_virtual_server_stat
order by zone, svr_ip, inner_port;

4. OBProxy安装和启动

OceanBase是分布式数据库,应用的数据可能分布在任一节点上并且不固定,所以应用不可能知道数据在哪个节点或者记录所有节点IP。这时就需要一个反向代理OBProxy在OceanBase集群前面提供SQL路由功能。应用通过OBProxy访问OceanBase集群,OBProxy就是数据库的代表。

  • OBProxy的软件安装

一个节点只需要安装一个OBproxy,所以可以直接使用RPM包安装。

su - admin
mkdir -p /home/admin/logs/obproxy/log /home/admin/logs/obproxy/minidump
sudo rpm -ivh obproxy-1.3.3-1506155.el7.x86_64.rpm
  • OBProxy专用用户

OBProxy需要跟OceanBase集群保持通信,所以需要在sys租户里提前创建好账户。

CREATE USER proxyro IDENTIFIED BY password '*e9c2bcdc178a99b7b08dd25db58ded2ee5bff050' ;
GRANT SELECT ON *.* to proxyro;show grants for proxyro;
  • OBProxy启动

OBProxy启动跟OBServer启动类似

注意其中 -r指定的是rootservice list地址,格式稍微不同,不需要RPC Port信息。-p指定OBProxy的监听端口。

cd /opt/taobao/install/obproxy && bin/obproxy -r "192.168.1.241:2881;192.168.1.81:2881;192.168.1.86:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false" -c obdemops -ef|grep obproxy

通过OBProxy连接OceanBase集群的命令有两种格式,区别在于用户名的格式。如:[用户名]@[租户名]#[集群名] 或 [集群名]:[租户名]:[用户名]

mysql -h192.168.1.241 -uroot@sys#obdemo -P2883 -prootpwd -c -A oceanbase
或
mysql -h192.168.1.241 -uobdemo:sys:root -P2883 -prootpwd -c -A oceanbase

OceanBase 集群运维

OceanBase分布式数据库跟传统数据库或者其他分布式数据库产品的一个显著的区别就是它有资源管理的思想在里面。OceanBase集群把多台主机的资源(CPU、内存和空间)聚合在一个大的池子里,然后从中分配出指定规格的资源给一个具体的业务使用。这个提供给业务使用的就是租户,也叫实例。

下面简单演示一个租户的创建过程。

1. 租户的创建

  • 定义资源规格

    mysql -h192.168.1.241 -uroot@sys#obdemo -P2883 -prootpwd -c -A oceanbasecreate resource unit unit_4c20g512g, max_cpu=4, max_memory='20G', min_memory='10G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size=53687091200;
    create resource unit unit_8c40g1024g, max_cpu=8, max_memory='40G', min_memory='20G', max_iops=20000, min_iops=5000, max_session_num=1000000, max_disk_size=107374182400;
    create resource unit unit_16c80g2048g, max_cpu=16, max_memory='80G', min_memory='40G', max_iops=50000, min_iops=10000, max_session_num=1000000, max_disk_size=214748364800;select unit_config_id,name,max_cpu,min_cpu,round(max_memory/1024/1024/1024) max_mem_gb, round(min_memory/1024/1024/1024) min_mem_gb, round(max_disk_size/1024/1024/1024) max_disk_size_gb
    from __all_unit_config
    order by unit_config_id;
  • 创建资源池

mysql -h192.168.1.241 -uroot@sys#obdemo -P2883 -prootpwd -c -A oceanbasecreate resource pool pool_demo unit = 'unit_4c20g512g', unit_num = 1;select resource_pool_id, name,unit_count, unit_config_id, zone_list, tenant_id, gmt_modified
from __all_resource_pool order by resource_pool_id ;
  • 创建租户

mysql -h192.168.1.241 -uroot@sys#obdemo -P2883 -prootpwd -c -A oceanbasecreate tenant t_obdemo resource_pool_list=('pool_demo');select tenant_id, tenant_name, zone_list, locality ,gmt_modified from __all_tenant;
  • 登录租户

## 租户连接 断开sys租户,连接用户租户mysql -h192.168.1.241 -uroot@t_obdemo#obdemo -P2883 oceanbase -A -pshow databases;create database sysbenchtest;
grant all privileges on sysbenchtest.* to testuser@'%' identified by 'testpwd';

2. 租户扩容

  • 租户内查看自己的资源能力

mysql -h192.168.1.241 -uroot@t_obdemo#obdemo -P2883 oceanbase -A -pselect tenant_id,tenant_name, unit_id, zone, svr_ip,svr_port,max_cpu,min_cpu,round(max_memory/1024/1024/1024) max_mem_gb, round(min_memory/1024/1024/1024) min_mem_gb, round(max_disk_size/1024/1024/1024) max_disk_size_gb
from gv$unit;

如果业务觉得数据库很慢且瓶颈是在资源,则对租户的资源能力进行扩容。

  • 租户扩容

租户扩容有两个思路,一是提升资源单元规格,二是增加资源单元数量。

mysql -h192.168.1.241 -uobdemo:sys:root -P2883 -prootpwd -c -A oceanbasealter resource pool pool_demo unit = 'unit_8c40g1024g';
alter resource pool pool_demo unit_num = 2;//缩容同理alter resource pool pool_demo unit_num = 1;

3. 集群参数配置

至此,OceanBase集群和租户都搭建好了。为了避免学习环境因为资源紧张导致OceanBase不稳定,还需要做一些参数配置,类似于ORACLE中的参数变更。

  • 集群参数修改

配置日志相关参数

mysql -h192.168.1.241 -uobdemo:sys:root -P2883 -prootpwd -c -A oceanbase-- observer log自清理设置
alter system set enable_syslog_recycle=True;
alter system set max_syslog_file_count=5;show parameters where name in ('enable_syslog_recycle', 'max_syslog_file_count');

配置OBProxy参数

-- obproxy设置:
alter proxyconfig set enable_metadb_used=False;
alter proxyconfig set enable_proxy_scramble=True;
alter proxyconfig set proxy_mem_limited=2G;
alter proxyconfig set log_dir_size_threshold=10G;

配置冻结合并参数

-- 关闭轮转合并,设置转储次数
alter system set enable_merge_by_turn = false;
alter system set minor_freeze_times=3;
alter system set minor_warm_up_duration_time='300s';
  • 租户变量修改

OceanBase还支持对租户的行为进行配置,这些是通过租户变量的修改实现。类似于MySQL中的变量修改。

mysql -h192.168.1.241 -uroot@t_obdemo#obdemo -P2883 oceanbase -A -p
set global ob_query_timeout=100000000;

OceanBase 集群清理

如果前面在集群初始化中出现报错,则需要清理所有步骤重新来过。

OceanBase安装环境清理

 

pkill observer
Sleep 10rpm -qa|grep oceanbase
rpm -qa|grep obproxy
sudo rpm -esu - admin
/bin/rm -rf ~/node1 ~/node2
/bin/rm -rf /data/data/* /data/log/*

转载

手动搭建OceanBase集群

OceanBase数据库实践入门——手动搭建OceanBase集群相关推荐

  1. OceanBase数据库实践入门——性能测试建议

    概述 本文主要分享针对想压测OceanBase时需要了解的一些技术原理.这些建议可以帮助用户对OceanBase做一些调优,再结合测试程序快速找到适合业务的最佳性能.由于OceanBase自身参数很多 ...

  2. 手动搭建kubernetes集群(四)

    开始改造我们之前搭建的基础集群,加上安全机制. 准备工作 1. 停止master节点的所有服务 查看已有的service kubectl get services 删除service(例如有一个叫xx ...

  3. 手动搭建redis集群

  4. kubernetes怎么读_Kubernetes之有状态应用实践-搭建MySQL集群

    零.前情纪要 上一遍文章Kubernetes集群搭建已经带大家成功搭建了Kubernetes集群,可能有不少人在搭建过程中对很多概念性的东西还是很模糊,接下来这篇文章将通过带领大家一起搭建一个高可用的 ...

  5. redis集群关闭 启动报错_使用虚拟机搭建 Redis 集群,实现数据库的负载均衡功能。...

    实操题目:使用虚拟机搭建 Redis 集群,实现数据库的负载均衡功能.并使用图文描述整个过程.先创建集群: ①创建集群需要使用ruby脚本,所以要先安装ruby环境 安装ruby环境:yum inst ...

  6. Kubernetes入门--搭建Kubernetes集群,并启动容器服务

    英文原作者:Ben Cane  翻译作者:Miazzy 翻译&转载:https://blog.codeship.com/getting-started-with-kubernetes/ Kub ...

  7. 金仓数据库KingbaseES Clusterware配置手册(集群搭建前置操作 )

    搭建集群中各个操作,每个集群节点都需要执行,以root用户操作. 搭建Clusterware集群,需要一些前置操作,本章主要介绍前置操作.前置操作首先是部署包的处理,主要分为集成化安装包和绿色版安装包 ...

  8. 《SpringCloud超级入门》使用Eureka集群搭建《十三》

    前面我们搭建的注册中心只适合本地开发使用,在生产环境中必须搭建一个集群来保证高可用.Eureka 的集群搭建方法很简单:每一台 Eureka 只需要在配置中指定另外多个 Eureka 的地址就可以实现 ...

  9. 手把手搭建redis集群-三台虚拟机(三主三从)

    Redis集群环境搭建: Redis 集群简介: Redis 是一个开源的 key-value 分布式存储系统,由于其出众的性能,大部分互联网企业将其用来作为服务端分布式缓存使用.Redis 在 3. ...

  10. Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

    2019独角兽企业重金招聘Python工程师标准>>> 有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识.今天主要讲一讲Zookeeper+Hadoop+Hb ...

最新文章

  1. 探索Julia(part13)--多分派
  2. 微信又添新功能!这个微信群可以学英语,而且全程免费
  3. codeblocks快捷键(转载)
  4. C 语言 运算符怎么使用,详解C++编程中运算符的使用
  5. 书本练习题7print函数使用
  6. 原理 rpm_图文详解,微型直流电机的工作原理
  7. c++11 多线程依次打印ABC
  8. C语言:字符数字转int
  9. Python学习 -元组和集合
  10. 微软面试58道逻辑面试题
  11. matlab打靶法求解薛定谔方程,用MATLAB语言解氢原子与类氢离子的定态薛定谔方程...
  12. node.js+社区儿童预防接种管理 毕业设计-附源码300924
  13. 驱动里面如何操作regulator
  14. 2019 计蒜之道 初赛 第一场 商汤的AI伴游小精灵
  15. win11修改mac地址的方法
  16. 服务器sas卡的作用,英特尔IOP34x处理器介绍
  17. Shang Nicht mehr Hut Wird Bambus Faser Un
  18. 51nod-1113 矩阵快速幂
  19. rxtx java 错误
  20. 【一键卸载mysql-5.7.38数据库+dos命令bat脚本】

热门文章

  1. Windows 7 插件KB4474419安装 Symantec Endpoint Protection 只能安装在具有SHA-2代码签名支持更新(KB4474419)的系统上
  2. 马斯克狠狠地给马云上了一课 | 对话全文实录
  3. 英语语法新思维 总结 问答对形式
  4. Maven创建一个Servlet项目(五)
  5. 拜耳再投4亿元提升在华处方药产能;阿斯利康进博会公布新冠疫苗最新进展 | 美通企业日报...
  6. mac算法c语言,MAC算法原理
  7. Ansible Tests详解
  8. 鸿蒙之唯一真界,275无量量劫即将到来,束手无策的命运
  9. python电影数据分析报告_电影数据可视化项目分析报告
  10. Suspending console(s) (use no_console_suspend to debug) android4.0 OMAP4460