Elasticsearch2.3.4+elasticsearch-jdbc-2.3.4.1同步oracle数据及简单调优

Elasticsearch2.3.4+elasticsearch-jdbc-2.3.4.1+oracle 同步oracle
系统环境centos6.5
版本需求
Elasticsearch2.3.4
elasticsearch-jdbc-2.3.4.1
jdk1.8
oracle驱动 oracle11g-JDBC-ojdbc6.jar,oracle11g-JDBC-orai18n.jar

一.Elasticsearch2.3.4 环境搭建
1.配置JDK1.8
2.解压
tar -xzvf elasticsearch-2.3.4.tar.gz
3.进入config目录下
cd elasticsearch-2.3.4/config/
编辑elasticsearch.yml (logging.yml是日志配置)
vim elasticsearch.yml
修改
cluster.name: joo //集群名字
node.rack: master //节点名
network.host: host //节点ip
http.port: 9200 //端口号
discovery.zen.ping.unicast.hosts: ["host1", "host2", "host3"] //自动发现节点选举master
discovery.zen.minimum_master_nodes: 2 //避免脑裂现象,一般设置成 N/2 + 1,N是集群中节点的数量
4.es后台启动
每个节点的Elasticsearch2.3.4/bin目录下 ./elasticsearch -d
查看集群状态
http://host:9200/_cat/health
green 代表健康

二.elasticsearch-jdbc-2.3.4.1 环境搭建
1.export JDBC_IMPORTER_HOME=/home/joo/elasticsearch-2.3.4   .bashrc目录下添加
2.mysql自带驱动,oracle把驱动放到 elasticsearch-jdbc-2.3.4.1/lib目录下
3.创建脚本同步oracle  在elasticsearch-jdbc-2.3.4.1/bin 目录下 (基础配置)
#!/bin/sh
bin=/home/joo/elasticsearch-jdbc-2.3.4.1/bin
lib=/home/joo/elasticsearch-jdbc-2.3.4.1/lib
echo '{
    "type" : "jdbc",
    "jdbc" : {
        "elasticsearch.autodiscover" : true, //开启自动嗅探
        "elasticsearch.cluster" : "joo", //es集群名字
        "url" : "jdbc:oracle:thin:@host:1521:orcl",
        "user" : "sjy",
        "useSSL":"true",
        "password" : "sjy",
        "sql" : "select * from addr where rownum < 10",
        "elasticsearch" : {
             "host" : "host",
             "port" : 9300
        },
        "index" : "sjy",  //es的索引名 类似于oracle的数据库名
        "type" : "addr"        //es的索引类型 类似于oracle的表名
        }
}
' | java \
       -cp "${lib}/*" \
       -Dlog4j.configurationFile=${bin}/log4j2.xml \
       org.xbib.tools.Runner \
       org.xbib.tools.JDBCImporter
启动脚本 同步数据(可以设置每分钟同步一次 增量)具体看api
curl -XGET 'http://host:9200/sjy/addr/_search?pretty' 或http://host:9200/sjy/addr/_search?pretty
检查数据是否同步成功

Elasticsearch2.3.4 调优
1.在bin/elasticsearch.in.sh中进行配置,修改配置项为尽量大的内存:
ES_MIN_MEM=5g
ES_MAX_MEM=5g
两者最好改成一样的,否则容易引发长时间GC。
2.包括加大JVM的可用内存及单线程内存。
可修改./bin/elasticsearch.in.sh文件:
# 线程大小, ES单线程承载的数据量比较大
JAVA_OPTS="$JAVA_OPTS -Xss128m"
3.修改./config/elasticsearch.yml文件
# 分片数量,推荐分片数*副本数=集群数量
# 分片会带来额外的分割和合并的损耗,理论上分片数越少,搜索的效率越高
index.number_of_shards: 3
# 锁定内存,不让JVM写入swapping,避免降低ES的性能
bootstrap.mlockall: true
# 缓存类型设置为Soft Reference,只有当内存不够时才会进行回收
index.cache.field.max_size: 50000
index.cache.field.expire: 10m
index.cache.field.type: soft

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值