搜尋此網誌

顯示具有 Elasticsearch 標籤的文章。 顯示所有文章
顯示具有 Elasticsearch 標籤的文章。 顯示所有文章

2017年1月18日 星期三

透過 Backup & Restore 加速 elasticsearch

直接將一台已經建立好索引的 ES,透過 FTP 方式將 NODE 資料,整個複製到一台新ES上,然後立刻讓新的 ES 能夠工作,一種人工手動複製的方法,適合實驗環境:

1. 先將 新ES 的服務停止:

2. 找出 源頭ES 的 NODE 資料,一般是指這個資料匣: /var/lib/elasticsearch/elasticsearch

然後將 elasticsearch 資料匣複製到 新ES上的
/var/lib/elasticsearch/

3. 啟動 新ES 的服務,並觀察 elasticsearch.log 內容

這樣就結束。


另外,以下是處理索引倉庫的部分, 僅參考用
在已經安裝好ES 的新機上
1. 備份 /var2/es_backup
2. 刪除 /var2/es_backup
3. 創建 /var2/es_backup
4. 改變 owner
chown -R elasticsearch:elasticsearch /var2/es_backup

5. 改變屬性
chmod -R 777 /var2/es_backup
chmod +t /var2/es_backup

6. 將資料FTP過來
7. 檢查
curl -XGET "localhost:9200/_snapshot/es_backup/_all"

8. 準備復原資料

curl -XPOST "localhost:9200/_all/_close"

curl -XPUT localhost:9200/_cluster/settings -d '{
"persistent" : {
"cluster.routing.allocation.node_concurrent_recoveries" : "5"
}
}'

curl -XPUT localhost:9200/_cluster/settings -d '{
"persistent" : {
"indices.recovery.max_bytes_per_sec": "200mb",
"indices.recovery.concurrent_streams": 5
}
}'

curl -XPOST "localhost:9200/_snapshot/es_backup/20170101/_restore?wait_for_completion=true"


- The End -

2017年1月9日 星期一

查看 elasticsearch 記憶體的設置是否生效

su elasticsearch --shell /bin/bash --command "ulimit -a"

安裝好 elasticsearch 要記得去調整記憶體限制
nano /etc/security/limits.conf

加入以下
# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited


2016年11月4日 星期五

Elasticsearch Backup and Restore 快照(備份)與還原

1.首 先 要 建 立 倉 庫
mkdir /var2/es_backup
chmod 777 /var2/es_backup
chmod +t /var2/es_backup

vi /etc/elasticsearch/elasticsearch.yml
檔案尾端依照格式加入
path.repo: ["/var2/es_backup"]

重啟動 elasticsearch
systemctl restart elasticsearch

開始註冊倉庫
curl -X PUT 'http://localhost:9200/_snapshot/es_backup' -d '{
    "type": "fs",
    "settings": {
        "location": "/var2/es_backup",
        "compress": true
    }
}'

註:如果要刪除已經註冊的倉庫
curl -XDELETE 'http://localhost:9200/_snapshot/es_backup'

確認倉庫是否成功註冊
curl -XGET 'http://localhost:9200/_snapshot/es_backup?pretty'
得到以下訊息
{
  "es_backup" : {
    "type" : "fs",
    "settings" : {
      "compress" : "true",
      "location" : "/es_backup"
    }
  }
}

確認倉庫內所有的內容
curl -XGET 'http://localhost:9200/_snapshot/_all'




2.建 立 快 照
一間倉庫裡面,可以有很多個快照
而我故意用 20170101 來當作一個快照名稱,方便管理

curl -XPUT "localhost:9200/_snapshot/es_backup/20170101?wait_for_completion=true"

註:如果要刪除已經建立的快照
curl -XDELETE "localhost:9200/_snapshot/es_backup/20170101"


以下指令可以獲取正在運行的快照狀態
curl -XGET "localhost:9200/_snapshot/_status"


以下的指令可以把倉庫裡所有的快照條列出來:
curl -XGET "localhost:9200/_snapshot/es_backup/_all"



3.復 原
復原之前,一些 index 都要先 close,使用以下指令:
curl -XPOST "localhost:9200/_all/_close"

使用以下的指令來進行快照復原:
curl -XPOST "localhost:9200/_snapshot/es_backup/20170101/_restore?wait_for_completion=true"

成功會獲得資訊,有看到 failed:0 字眼





2016年7月22日 星期五

安裝IK plugin

參考1 參考2(github)

先安裝 git
yum -y install git.x86_64

從 root 或自己的目錄下,下載
git clone https://github.com/medcl/elasticsearch-analysis-ik

進入該目錄
cd elasticsearch-analysis-ik


安裝開始:
確認已經在 elasticsearch-analysis-ik 目錄底下

檢查作業系統是否事先已安裝好  maven
如果還沒,就先
yum -y install maven

安裝好maven之後,一定要到剛剛下載好的elasticsearch-analysis-ik 目錄底下
按照以下指令,就會編譯好軟體。編譯過程需要一點時間
mvn clean
mvn compile
mvn package


到 root 或自己的目錄下 /root/elasticsearch-analysis-ik/target/releases/
看到 release 目錄下有一個 zip 檔案
例如 #{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-*.zip

拷貝和解壓到 elasticsearch 的插件目錄, 如: /usr/share/elasticsearch/plugins/ik



如果有詞庫要載入,則必須編輯
vi /usr/share/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml

修改範例
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://123.51.165.169:8080/seservice/dictionary/good</entry>

<!--用户可以在这里配置远程扩展停止词字典-->
<entry key="remote_ext_stopwords">http://123.51.165.169:8080/seservice/dictionary/bad</entry>



接下來一定要 重啟elasticsearch:
systemctl daemon-reload
systemctl restart elasticsearch

開瀏覽器驗證
http://47.90.52.37:9200/_analyze?analyzer=ik&pretty=true&text=统一奶茶


2016年7月20日 星期三

Elastic Setup

0.
如果還沒安裝 JAVA,先安裝好
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

ES的歷史版本
https://github.com/elastic/elasticsearch


1.
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch


2.
vi /etc/yum.repos.d/elasticsearch.repo

最新 5 版本:
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

舊的 2.x 版本:
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
enabled=1
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch


3.
yum -y install elasticsearch


4.
vi /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited


5.
編輯
vi /etc/elasticsearch/elasticsearch.yml,加入以下設定(要用空格,不能用tab)
檔案的最底端,加入以下:
network.host: 0.0.0.0
bootstrap.mlockall: true
index:
  analysis:
    analyzer:
      default:
        type: ik
        use_smart: false


6.
# Install kopf Plugin
cd /usr/share/elasticsearch/bin
./plugin install lmenezes/elasticsearch-kopf


7.
# Add allow port 9200, 9300
firewall-cmd --permanent --add-port={9200/tcp,9300/tcp}
firewall-cmd --reload

8.
chkconfig --add elasticsearch
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch

搜尋此網誌