Docker安装canal和Elasticsearch
安装canal
sudo docker pull canal/canal-server
sudo docker images
#启动镜像
sudo docker run --name canal -d canal/canal-server
#进入容器 查看配置文件路径
sudo docker exec -it canal bash
#找到文件位置后 exit退出容器 将容器内部文件copy到外部
sudo docker cp canal:/home/admin/canal-server/conf/canal.properties /home/canal
sudo docker cp canal:/home/admin/canal-server/conf/example/instance.properties /home/canal
# 编辑instance.conf 其中需要修改以下
canal.instance.master.address=192.168.0.105:3306 # 数据库连接地址
canal.instance.dbUsername=root # 数据库账号
canal.instance.dbPassword=123456 # 数据库密码
# 修改完成后,将之前的canal容器关闭,重新起一个新的容器.
#关闭容器
sudo docker stop canal
#移除容器
sudo docker rm canal
#启动新的 这里-v是将外部的文件挂载到容器内部 这样就不用每次启动都要配置参数了
sudo docker run --name canal -p 11111:11111 -d -v /home/canal/instance.properties:/home/admin/canal-server/conf/example/instance.properties -v /home/canal/canal.properties:/home/admin/canal-server/conf/canal.properties canal
安装Elasticsearch
sudo docker pull elasticsearch:5.6.8
sudo docker run -di --name=elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
# 安装完成后可以在浏览器输入地址访问:http://192.168.211.132:9200/能看到一些es的信息
# 修改es配置开启远程连接
sudo docker exec -it elasticsearch /bin/bash
cd config/
apt-get update
apt-get install vim
vim elasticsearch.yml
# 打开文件后放开这行注释
# transport.host: 0.0.0.0
# 同时添加一行
cluster.name: my-application
sudo docker restart elasticsearch # 重启容器
(4)系统参数配置**
重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以我们还需要系统调优
修改sudo vi /etc/security/limits.conf ,追加内容 (nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制 )
soft nofile 65536
hard nofile 65536
修改sudo vi /etc/sysctl.conf,追加内容 (限制一个进程可以拥有的VMA(虚拟内存区域)的数量 )
vm.max_map_count=655360
# 执行下面命令 修改内核参数马上生效
sudo sysctl -p
安装es-head插件
sudo docker pull docker.io/mobz/elasticsearch-head:5
sudo docker run -di --name=es-head -p 9100:9100 docker.io/mobz/elasticsearch-head:5
# 插件安装好后访问 http://192.168.0.105:9100/
(5)跨域配置
修改elasticsearch/config下的配置文件:elasticsearch.yml,增加以下三句命令,并重启:
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 192.168.0.105
其中:
http.cors.enabled: true:此步为允许elasticsearch跨域访问,默认是false。
http.cors.allow-origin: "":表示跨域访问允许的域名地址(表示任意)。
安装ik分词
(1)安装ik分词器
IK分词器下载地址https://github.com/medcl/elasticsearch-analysis-ik/releases
将ik分词器上传到服务器上,然后解压,并改名字为ik
sudo unzip elasticsearch-analysis-ik-5.6.8.zip
sudo mv elasticsearch ik
将ik目录拷贝到docker容器的plugins目录下
sudo docker cp ./ik changgou_elasticsearch:/usr/share/elasticsearch/plugins
(2)IK分词器测试
访问:http://192.168.0.105:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员