redis导入导出+elasticsearch集群搭建
1.redis导入与导出
1.1 安装 ruby
sudo apt-get install ruby ruby-dev
1.2 安装redis-dump工具
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources -l
# 安装redis-dump
sudo gem install redis-dump -V
1.3 一些问题
安装redis-dump失败出现:
ERROR: Error installing redis-dump:
ERROR: Failed to build gem native extension.
则安装ruby-dev即可解决!
sudo apt-get install ruby-dev
如果没安装curl,需要安装上。
1.4 实操
导出:
# 导出命令
redis-dump –u 127.0.0.1:6379 > data.json
导入:
#导入命令
cat data.json | redis-load -u 127.0.0.1:6379
2.elasticsearch集群搭建
2.1 基础配置
2.1.1 静态IP
Ubuntu18.04 2台机器构建的集群,两台机器IP对应为:
192.168.175.121
192.168.175.122
在ubuntu18.04TLS中,其引入了一个新的工具netplan来进行网络设备的管理,对其进行设置。
netplan的配置文件位于/etc/netplan文件夹下面。这个目录下没有配置文件,就通过下面生成一个:
sudo netplan generate
默认的是01-network-manager-all.yaml
,修改这个文件:
network:
version: 2
renderer: NetworkManager
ethernets:
ens33: #配置的网卡名称,使用ifconfig -a查看得到,且必须是空格缩进,netplan只认空格
dhcp4: no #no-dhcp4开启 true-dhcp4开启
dhcp6: true #true-dhcp6开启 no-dhcp6关闭
addresses: [192.168.175.121/24, ] #设置本机IP及掩码,这个逗号和空格好像不能少的默认网关
nameservers: #设置DNS服务器
addresses: [8.8.8.8,8.8.8.4] #多个DNS服务器之间用逗号隔开
两个机器都按照上述配置,最后让其生效:
sudo netplan apply
然后ifconfig
查看是否生效。
2.1.2 免密登录
很多人困惑免密登录,其实简单的很,两个动作:
第一个:生成公钥与私钥
ssh-keygen -t rsa
第二个:彼此信任
将自己的id_rsa.pub
复制到对方的authorized_keys
中即可!
2.2 集群配置
下载 Elasticsearch7.5.1
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz
对于最新的 Elasticsearch,一般不可直接在root下直接使用,需要创建一个专门用户,当然可以使用现有的非root用户,例如:
sudo chown -R light:light elasticsearch-7.5.1-linux-x86_64/
如果只有root用户,就需要创建个普通用户,如下:
# 创建elastic用户
useradd elastic
# 设置用户密码
passwd elastic
# 切换到elastic用户
su elastic
另外,最新的版本内置jdk,只需要将其配置为elasticsearch的JAVA环境即可!
elasticsearch内置jvm配置,修改config目录下jvm.options配置(堆空间占用修改,根据自己机器的内存配置修改):
-Xms512m
-Xmx512m
最后,配置config下的elasticsearch.yml文件,在elasticsearch-7.5.1-linux-x86_64目录下创建data、logs文件夹:
mkdir data
mkdir logs
配置文件elasticsearch.yml
:
# 集群名
cluster.name: car-es
# 节点名 我这是2台虚拟机, 所以分别是node-1 到 node-2
node.name: node-1
# 主机名
network.host: 192.168.175.121
path.data: /usr/local/elasticsearch-7.5.1/data
path.logs: /usr/local/elasticsearch-7.5.1/logs
# http连接端口, ps: 9300为集群内部通信端口
http.port: 9200
# 比较新的版本不需要配置多波和防脑裂
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
discovery.zen.ping.unicast.hosts: ["192.168.175.121","192.168.175.122"]
# 初始主节点
cluster.initial_master_nodes: ["node-1"]
将上述配置文件拷贝到另外一台机器上,并修改节点名与主机名即可。
2.3 设置虚拟内存
将虚拟内存设置大一些,否则在启动elasticsearch时会出错导致启动失败:
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
输入 vi /etc/sysctl.conf
命令在 sysctl.conf
中配置如下内容:
vm.max_map_count=655360
接着输入如下命令让配置生效:
sysctl -p
2.4 设置最大文件描述符
在启动Elasticsearch有可能会出现如下错误:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at
least [65536]
错误说明:elasticsearch过程的最大文件描述符 [4096]
太低,增加到 最少 [65536]
接下来我们修改最大文件描述符,输入 vi /etc/security/limits.conf
命令在 limits.conf
中配置如下内容:
light soft nofile 65536
light hard nofile 65536
light soft nproc 65536
light hard nproc 65536
light是当前用户!
在Centos中,修改上述后重启直接生效,可是Ubuntu16以后的系统是生效不了的,输入:
ulimit -n
一直显示的是4096,说明失败了。
针对这个问题,终于在下面链接中学习到方法。
https://superuser.com/questions/1200539/cannot-increase-open-file-limit-past-4096-ubuntu
除此之外,要修改/etc/systemd/user.conf
和/etc/systemd/system.conf
文件:
DefaultLimitNOFILE=65535
重启系统后,再次查看:
ulimit -n
此时,不再是4096了,说明修改正确。
2.5 检查集群
两个机器的elasticsearch启动:
./bin/elasticsearch
后台启动:
./bin/elasticsearch -d -p pid
浏览器输入:
http://192.168.175.121:9200/_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1580390540 13:22:20 car-es green 2 2 6 3 0 0 0 0 - 100.0%
cluster:显示的是当前集群的名称 status:显示的是 green
表示当前集群是健康的状态 node.total:显示 3
表示当前集群有三个节点
至此,集群搭建成功。
3.插件
3.1 ElasticSearch Head
最新的ElasticSearch 版本,如果安装Head插件,需要以浏览器插件形式,在谷歌浏览器中输入:ElasticSearch Head,安装即可!
便可以看到下面界面:
3.2 kibana
官网下载太慢,这里给个国内镜像:
https://mirrors.huaweicloud.com/kibana/
选择对应的ElasticSearch版本下载即可,最后将配置文件中的下面两个参数进行修改:
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.175.121:9200"]
启动kibana:
./bin/kibana
浏览器输入:
http://192.168.175.121:5601/
可以看到如下图:
当然在Head插件里面,可以除了节点信息,还多了几个信息: