Archive for October, 2017

elasticsearch 配置遇到的问题

October 7th, 2017

为了存储海量数据,以便进一步进行数据分析,调研了一段时间,elasticsearch是个不错的选择。
elasticsearch 是一个用于搜索领域的分布式数据库,基于jdk为jdk1.8.0_73以上。不同于mysql之类的关系型数据库,elasticsearch基于RESTful web接口 需要使用POST/GET/DELETE/PUT来处理数据。我采用elasticsearch-py接口对数据库进行CRUD。不过在启动的时候,发现如下问题:

[2017-12-27T21:07:13,695][INFO ][o.e.t.TransportService   ] [node-1] publish_address {192.168.228.134:9300}, bound_addresses {[::]:9300}
[2017-12-27T21:07:14,005][INFO ][o.e.b.BootstrapChecks    ] [node-1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2017-12-27T21:07:14,155][INFO ][o.e.n.Node               ] [node-1] stopping ...
[2017-12-27T21:07:14,468][INFO ][o.e.n.Node               ] [node-1] stopped
[2017-12-27T21:07:14,482][INFO ][o.e.n.Node               ] [node-1] closing ...
[2017-12-27T21:07:14,764][INFO ][o.e.n.Node               ] [node-1] closed

这个时候需要扩大虚拟内存堆:sysctl -w vm.max_map_count=262144

另外安装elasticsearch-head在5.x版本后需要借助nodejs服务,这一块配置安装比较繁琐,先要配置nodejs/npm/grunt。

npm安装:

curl https://npmjs.org/install.sh | sh
sh install.sh

如果出现 npm cannot be installed without Node.js. Install Node.js first, and then try again. 则需要 安装Node.js

apt-get install nodejs 如果node.js版本过低,则需要升级

# 第一步:首先安装 n 模块:
npm install -g n
# 第二步:升级node.js到最新稳定版
n stable

node 环境安装完毕后安装 elasticsearch-head 所需模块:

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start

配置完 elasticsearch-head,要在./config/elasticsearch.yml中打开注释,然后重新启动es。

http.port: 9200
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

 

参考:

https://my.oschina.net/kittyMan/blog/387512?p=1
http://orchome.com/489