elasticsearch 集羣搭建

####環境 三節點es集羣: 192.168.10.91 192.168.10.92 192.168.10.93node

####安裝elasticsearchgit

# tar xzvf elasticsearch-1.6.0.tar.gzgithub

# cd elasticsearch-1.6.0bootstrap

  • 修改配置

# cat config/elasticsearch.yml |grep -v ^$|grep -v ^#vim

cluster.name: test-es-cluster     #每一個節點一致
node.name: node1                  #每一個節點的name,每一個節點不一致
bootstrap.mlockall: true          #直接佔用全部內存
transport.tcp.port: 9300
http.port: 9200
discovery.zen.minimum_master_nodes: 2          #集羣中最小節點數,5節點爲3,3節點爲2
discovery.zen.ping.timeout: 30s
discovery.zen.ping.unicast.hosts: ["192.168.10.91", "192.168.10.92","192.168.10.93"]   #每一個node的ip:port
  • 安裝head插件

# git clone https://github.com/mobz/elasticsearch-head.gitapp

# mkdir mobzcurl

# mv elasticsearch-head mobz/elasticsearch

# ./bin/plugin -install mobz/elasticsearch-head/tcp

-> Installing mobz/elasticsearch-head/...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip...
Downloading .............................................................................................................................................................................................................................................................DONE
Installed mobz/elasticsearch-head/ into /data/packages/elasticsearch-1.6.0/plugins/head

-安裝bigdesk插件ide

# mkdir lukas-vlcek

# mv bigdesk lukas-vlcek/

# ./bin/plugin -install lukas-vlcek/bigdesk/

-> Installing lukas-vlcek/bigdesk/...
Trying https://github.com/lukas-vlcek/bigdesk/archive/master.zip...
Downloading .........................................................................................................................................................................................................................................................DONE
Installed lukas-vlcek/bigdesk/ into /data/packages/elasticsearch-1.6.0/plugins/bigdesk
Identified as a _site plugin, moving to _site structure ...
  • 安裝ik分詞插件

# git clone https://github.com/medcl/elasticsearch-analysis-ik.git

# cd elasticsearch-analysis-ik/

# mvn package

...

# ./../bin/plugin -install analysis-ik --url file:///data/packages/elasticsearch-1.6.0/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-1.9.1.zip

-> Installing analysis-ik...
Trying file:/data/packages/elasticsearch-1.6.0/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-1.9.1.zip...
Downloading ............................................DONE
Installed analysis-ik into /data/packages/elasticsearch-1.6.0/plugins/analysis-ik

# cp -a config/ik ../config/

# vi ../config/elasticsearch.yml
在尾部添加以下內容

index:
analysis:                   
    analyzer:      
        ik:
            alias: [ik_analyzer]
            type: org.elasticsearch.index.analysis.IkAnalyzerProvider
        ik_max_word:
            type: ik
            use_smart: false
        ik_smart:
            type: ik
            use_smart: true
  • 啓動elasticsearch

# cp -a /data/packages/elasticsearch-1.6.0 /data/app/

# /data/app/elasticsearch-1.6.0/bin/elasticsearch -d

-查看head插件

http://192.168.10.91:9200/_plugin/head/

輸入圖片說明

  • 查看bigdesk插件

http://192.168.10.91:9200/_plugin/bigdesk/#nodes

####elasticsearch優化

1:file descriptors 調整系統容許用戶打開文件數的最大值,經過命令: curl -XGET http://localhost:9200/_nodes/process?pretty 「max_file_descriptors」 : 4096,字段代表當前系統的值。 此值在/etc/security/limits.conf 中能夠進行調整 2:virtual memory Elasticsearch 默認使用 hybrid mmap / nio fs的方式來存儲。 用這種方式若是系統vm.max_map_count值偏小會致使內存溢出。且此參數影響建立線程的數量 vim /etc/sysctl.conf vm.max_map_count=262144

sysctl -p 【 hybrid mmap / nio fs :混合mmap和nio fs的存儲方式】 3:memory settings 關閉swap:若是能夠,讓Elasticsearch單獨跑在一臺機器,其內存使用量徹底由ES_HEAP_SIZE變量控制。若是Elasticsearch使用了swap,會致使性能降低。 1)swapoff -a 2)vim /etc/sysctl.conf vm.swappiness=0 3)vim elasticsearch.yml bootstrap.mlockall: true 若是curl -XGET http://localhost:9200/_nodes/process?pretty 顯示bootstrap.mlockall仍是爲false 1:運行elasticsearch的用戶沒有權限鎖內存 2:/tmp/ 使用noexec的掛載選項,解決辦法:./bin/elasticsearch -Djna.tmpdir=/path/to/new/dir 4:避免腦裂 discovery.zen.minimum_master_nodes=(num_master_nodes/2)+1 ping_timeout默認30s ping_retries默認3次 五、若是使用的內存超過6G使用g1垃圾收集 註釋下面四行 JAVA_OPTS=」$JAVA_OPTS -XX:+UseParNewGC」 JAVA_OPTS=」$JAVA_OPTS -XX:+UseConcMarkSweepGC」 JAVA_OPTS=」$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75″ JAVA_OPTS=」$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly」 而後換成: JAVA_OPTS=」$JAVA_OPTS -XX:+UseG1GC」 JAVA_OPTS=」$JAVA_OPTS -XX:MaxGCPauseMillis=200″

es操做

{"acknowledged":true}

# curl -XPOST http://192.168.10.91:9200/index2

{"acknowledged":true}

# curl -XPOST http://192.168.10.91:9200/index3

{"acknowledged":true}

輸入圖片說明

  • 刪除index

# curl -XDELETE http://192.168.10.91:9200/index3

{"acknowledged":true}

# curl -XDELETE http://192.168.10.91:9200/index* #刪除多index

{"acknowledged":true}

  • 添加一條記錄

# curl -XPOST -d '{"name":"gongjun","age":"2"}' http://192.168.10.91:9200/index1/type/1

{"_index":"index1","_type":"type","_id":"1","_version":1,"created":true}

輸入圖片說明

  • 刪除一條記錄

# curl -XDELETE http://192.168.10.91:9200/index1/type/1

{"found":true,"_index":"index1","_type":"type","_id":"1","_version":2}

  • 獲取一條數據

# curl http://192.168.10.91:9200/index1/type/2

{"_index":"index1","_type":"type","_id":"2","_version":1,"found":true,"_source":{"name":"gongjun","age":"25"}}

  • 查詢index1下數據

# curl http://192.168.10.91:9200/index1/_search?pretty=true

{
  "took" : 17,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 2,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "index1",
      "_type" : "type2",
      "_id" : "1",
      "_score" : 1.0,
      "_source":{"name":"gongjun","age":"25"}
    }, {
      "_index" : "index1",
      "_type" : "type",
      "_id" : "2",
      "_score" : 1.0,
      "_source":{"name":"gongjun","age":"25"}
    } ]
  }
}
  • 查詢index1下type下的全部數據

# curl http://192.168.10.91:9200/index1/type/_search?pretty=true

{
  "took" : 9,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "index1",
      "_type" : "type",
      "_id" : "2",
      "_score" : 1.0,
      "_source":{"name":"gongjun","age":"25"}
    } ]
  }
}
  • 查看node信息

# curl http://192.168.10.91:9200/

{
  "status" : 200,
  "name" : "node1",
  "cluster_name" : "test-es-cluster",
  "version" : {
    "number" : "1.6.0",
    "build_hash" : "cdd3ac4dde4f69524ec0a14de3828cb95bbb86d0",
    "build_timestamp" : "2015-06-09T13:36:34Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}
  • 查看集羣狀態

# curl http://192.168.10.91:9200/_cluster/health?pretty=true

{
  "cluster_name" : "test-es-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 5,
  "active_shards" : 10,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0
}
相關文章
相關標籤/搜索