ElasticSearch作为一个基于搜索引擎lucene的文档数据库,搜索速度在目前的大数据存储系统中,算是佼佼者了。
又有许多人把它当数据库使用,索引做库,类型做表,也是不错的选择。
在数据仓库中,也可以做report层的存储,对接数据可视化工具,提供接口查询业务数据、结果数据。
下面来看看集群环境怎么搭建。
1、软件需求
jdk8
elasticsearch包
2、es安装、配置
1 | tar -zxvf elasticsearch-*.tar.gz -C /usr/local |
2.1新建用户(三台都需要)
在 Linux 环境中,elasticsearch 不允许以 root 权限来运行!所以需要创建一个非root用户,以非root用户来起es
elsearch 新增elsearch用户组
1 | useradd elsearch -g elsearch -p elasticsearch 创建elsearch用户 |
2.2运行操作三台服务
1 | su elsearch |
3、问题汇总解决方案
3.1问题一
1 | ERROR: bootstrap checks failed |
原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:
切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:
1 | vi /etc/security/limits.conf |
添加如下内容:
1 | * soft nofile 65536 |
备注:* 代表Linux所有用户名称(比如 hadoop)
保存、退出、重新登录才可生效
3.2问题二
1 | max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] |
原因:最大虚拟内存太小
解决方案:切换到root用户下,修改配置文件sysctl.conf
1 | vi /etc/sysctl.conf |
添加下面配置:
1 | vm.max_map_count=655360 |
并执行命令:
sysctl -p
然后重新启动elasticsearch,即可启动成功。
3.3问题三:
1 | max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] |
原因:最大虚拟内存太小
解决方案:切换到root用户下,修改配置文件sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
1 | vm.max_map_count=655360 |
并执行命令:
sysctl -p
然后重新启动elasticsearch,即可启动成功。
3.4问题四:
ElasticSearch启动找不到主机或路由
原因:ElasticSearch 单播配置有问题
解决方案:
检查ElasticSearch中的配置文件
vi config/elasticsearch.yml
找到如下配置:
discovery.zen.ping.unicast.hosts: [“192.168.21.12”, “192.168.21.13”,”192.168.21.14”]
一般情况下,是这里配置有问题,注意书写格式
3.5问题五:
org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream
原因:ElasticSearch节点之间的jdk版本不一致
解决方案:ElasticSearch集群统一jdk环境
3.6问题六:
Unsupported major.minor version 52.0
原因:jdk版本问题太低
解决方案:更换jdk版本,ElasticSearch5.0.0支持jdk1.8.0
书山有路勤为径,学海无涯苦作舟。
欢迎关注微信公众号:【程序员写书】
喜欢宠物的朋友可以关注:【电巴克宠物Pets】
一起学习,一起进步。
