elasticsearch对接Sequoiadb

1、配置信息

1.1、机器信息

192.168.137.164    sdb1

192.168.137.128    sdb2

192.168.137.131    sdb3

1.2、Sequoiadb信息

V3.0版本

1.3、elasticsearch信息

V6.2.2版本

2、安装elasticsearch

#解压配置即可

tar -zxvf elasticsearch-6.2.2.tar -c/opt/elasticsearch/elasticsearch-node1

3、修改配置文件

打开/opt/elasticsearch/elasticsearch-node1/config目录下的elasticsearch.yml 文件 ,修改以下属性值并取消该行的注释:

cluster.name:  elasticsearch

#这是集群名字,我们 起名为elasticsearch

#es启动后会将具有相同集群名字的节点放到一个集群下。

node.name: "es-node1"

#节点名字。

discovery.zen.minimum_master_nodes:3

#指定集群中的节点中有几个有master资格的节点。

#对于大集群可以写3个以上。

discovery.zen.ping.timeout: 40s

#默认是3s,这是设置集群中自动发现其它节点时ping连接超时时间,

#为避免因为网络差而导致启动报错,我设成了40s。

discovery.zen.ping.multicast.enabled:false

#设置是否打开多播发现节点,默认是true。

network.bind_host:192.168.137.164

#设置绑定的ip地址,这是我的master虚拟机的IP。

network.publish_host:192.168.137.164

#设置其它节点和该节点交互的ip地址。

network.host: 192.168.137.164

#同时设置bind_host和publish_host上面两个参数。

discovery.zen.ping.unicast.hosts:["192.168.137.164", "192.168.137.128","192.168.137.131"]

#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2的ip","节点3的ip"]

#指明集群中其它可能为master的节点ip,

#以防es启动后发现不了集群中的其他节点。

#第一对引号里是node1,默认端口是9300,

#第二个是 node2 ,在另外一台机器上,

#第三个引号里是node3,因为它和node1在一台机器上,所以指定了9301端口。

4、其他2台机器安装

将elasticsearch-node1 整个文件夹拷贝到其他机器中,sdb2中修改文件名为elasticsearch-node2,sdb3修改文件名为elasticsearch-node3。

对于sdb2: 对 elasticsearch.yml 修改如下

node.name: "es-node2"

network.bind_host: 192.168.137.128

network.publish_host: 192.168.137.128

network.host: 192.168.137.128

对于node3: 对 elasticsearch.yml 修改如下

node.name: "es-node3"

network.bind_host: 192.168.137.131

network.publish_host: 192.168.137.131

network.host: 192.168.137.131

5、遇到问题:

5.1、问题一

       启动失败

[sdbadmin@sdb1 bin]$ ./elasticsearch

Exception in thread "main"2018-06-01 14:54:45,068 main ERROR No log4j2 configuration file found. Usingdefault configuration: logging only errors to the console. Set system property'log4j2.debug' to show Log4j2 internal initialization logging.

SettingsException[Failed to load settingsfrom [elasticsearch.yml]]; nested: ParsingException[Failed to parse object:expecting token of type [START_OBJECT] but found


分析原因:

./config/elasticsearch.yml中的配置信息格式有问题,冒号前不应该有空格,冒号后有一个空格。

解决办法:

修改./config/elasticsearch.yml中的配置

5.2、问题二

       启动报错

ERROR: [2] bootstrap checks failed

[1]: max virtual memory areasvm.max_map_count [65530] is too low, increase to at least [262144]

[2]: system call filters failed toinstall; check the logs and fix your configuration or disable system callfilters at your own risk

分析原因:

这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

解决办法:

在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

5.3、问题三

 启动失败:

ERROR: [1] bootstrap checks failed

[1]: max virtual memory areasvm.max_map_count [65530] is too low, increase to at least [262144]

分析原因:

vm.max_map_count太小了 ,需要设置大一点。

解决办法:

临时设置:

sudo sysctl -w vm.max_map_count=262144

永久修改:

修改/etc/sysctl.conf 文件,添加 “vm.max_map_count”设置

并执行:sysctl -p

5.4、问题四

       启动失败:

ERROR: [2] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearchprocess is too low, increase to at least [65536]

[2]: max number of threads [1024] foruser [sdbadmin] is too low, increase to at least [4096]

分析原因:

Ulimit -n 和 -u 的数量太小了。需要设置ulimit 的数量。

解决办法:

>vi /etc/security/limits.conf

      #<domain>      <type>  <item>         <value>

*              soft        core           0

*              soft        data           unlimited

*              soft       fsize           unlimited

*              soft         rss           unlimited

*              soft          as          unlimited

*              soft        nofile         65536

*              hard        nofile         65536

>vi/etc/security/limits.d/90-nproc.conf

*              soft       nproc      unlimited

6、对接sdb

6.1、修改配置

在sdb1这台机器中创建seadapter对应的配置文件,且将sample中的配置文件拷贝过来

$ mkdir/opt/sequoiadb/conf/local/11820/seadapter

$ cp /opt/sequoiadb/conf/samples/sdbseadapter.conf  /opt/sequoiadb/conf/local/11820/seadapter

修改sdbseadapter.conf配置

> visdbseadapter.conf

datanodehost=

datasvcname=

searchenginehost=

searchengineport=

diaglevel=3

optimeout=10000

bulkbuffsize=10

在sdb2和sdb3折两台机器中分别创建

6.2、启动

在sdb1这台机器中执行启动

#切换到执行目录中

>cd /opt/sequoiadb/bin/

#执行命令启动

>./sdbseadapter -c/opt/sequoiadb/conf/local/11820/seadapter --datanodehost sdb1 --datasvcname 11820--searchenginehost sdb1 --searchengineport 9200

分别在sdb2和sdb3机器中执行启动。

检查启动

ps -ef | grep sdbseadapter

sdbadmin 13623 12901  0 17:37 pts/0    00:00:01 sdbseadapter(11817) A

6.3、操作实例

#集合cs.cl中存在5条记录如下  

>db.cs.cl.find({},{"name":1})

{

 "name": "haha havi"

}

{

 "name": "haha havi haha"

}

{

 "name": "haha haha"

}

{

 "name": "json"

}

{

 "name": "maker json"

}

Return 5 row(s).

#创建全局索引,name字段类型为text

>db.cs.cl.createIndex("name_idex",{"name":"text"})

#执行查询

>db.cs.cl.find({"":{"$Text":{"query":{"match":{"name":"havi"}}}}}).hint({"":"name_index"})

{

 "_id": {

   "$oid": "5b1119db8c0ea5a8e7528530"

 },

 "name": "haha havi"

}

{

 "_id": {

   "$oid": "5b1119df8c0ea5a8e7528531"

 },

 "name": "haha havi haha"

}

Return 2 row(s).

Takes 0.030438s.

猜你喜欢

转载自blog.csdn.net/u014439239/article/details/80541694
今日推荐