为了存储海量数据,以便进一步进行数据分析,调研了一段时间,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