搜尋此網誌

2016年7月30日 星期六

改變 MongoDB 的 ReplicaSet heartbeat timeout


由於兩岸網路不穩定,影響 MongoDB  的 replica set 效能

heartbeatIntervalMillis 預設是 2000 微秒,我將它放大3倍
heartbeat timeout 預設是 10 秒,我將它放大3倍


先用 rs.conf(); 看一下內容,在最尾巴的 settings 裡面會呈現出來

config = rs.conf()
config.settings.heartbeatIntervalMillis=6000
config.settings.heartbeatTimeoutSecs=30
rs.reconfig(config, {force : true})




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

CentOS7 開機進入 emergency mode 的原因和解決辦法

修改/etc/fstab文件後,出現「welcome to emergency mode! after logging in type "journalctl -xb"to view system logs...」

可能的原因:無法分辨認要掛載的檔案文件系統
解決辦法:把那些自己在/etc/fstab文件後加的開機掛載的內容刪掉之後,reboot就可以正常進入系統了

yum makecache fast

yum makecache fast

2016年7月19日 星期二

CentOS VM fdisk 新增硬碟

在 GUI 底下,利用 GParted 工具是最快的,但如果沒有 GUI 時候,透過
fdisk -l  列出清單
注意整個清單第一行字,看到 Disk /dev/sdb 是剛加入的硬碟,目前還沒有分割任何的磁區,所以要開始分割


fdisk /dev/sdb
按照以下逐一輸入:
n  (add a new partition)
p  (print the partition table)
1  (Partition number (1-4, default 1))
    enter
    enter
t  (change a partition's system id)
83 (標準硬碟)

w  (寫入儲存)


透過 fdisk -l 確認一次
應該會看到 /dev/sdb1

謹慎!對/dev/sdb1 進行格式化(CentOS 可以使用 ext4 的檔案格式)
mkfs.ext4 /dev/sdb1


準備自動開機掛載
先在跟目錄下 mkdir /var2
vi /etc/fstab

至最後一行加入, 意思是新加入的硬碟分割會綁定在  /var2 目錄
/dev/sdb1    /var2    ext4   defaults   0 0


存檔,下指令
mount -a
mount
df -h


重新開機的話也應該可以成功 mount 好新增的磁碟 var2



2016年7月18日 星期一

MongoDB 強制設定為 PRIMARY

MongoDB 的 Replica sets 很厲害。但是要控制它還要花點功夫。大家都會用到當發生狀況,從 Primary 轉變為 Secondary 之後,怎麼再轉回 Primary 問題。

priority 值愈大,就是 primary
輸入 rs.config() 可以看到參數狀態

例如要對第2台主機改變成為 primary 的話,可以採用以下

config = rs.conf()
config.members[3].priority = 0.5
rs.reconfig(config, {force : true})


還有一種情況,當 primary 主機停機超過 10秒
也會降格成為 secondary


官網提到以下兩個指令,可以令SERVER不關機情況下,改以手動控制SERVER

凍結 Replica sets 幾秒 :

rs.freeze(120)

暫停掉 Replica sets 幾秒 :
rs.stepDown(120)


2016年7月17日 星期日

CENTOS 7 parted 擴展硬碟空間


參考來源

1. yum -y install parted
2. parted
> print
> mkpart primary xx.xGB xx.xGB
> print
> set 3 lvm on (3 為新增磁碟區在 print 中顯示的磁碟編號)
> quit
3. reboot (讓新增磁區生效)
指定 VM 擴大
4. lvm
> pvs (查看 VG 名稱)
> pvcreate /dev/sda3 (新增的磁區,可先用 fdisk -l 確認)
> vgextend VolGroup_Name /dev/sda3
> pvscan
5. df -h (確認所要增加的空間)
看到 /dev/mapper/centos-root 字眼,確認出 mapper 路徑
擴大 LV 空間
6. lvm
>lvextend -L +xxxG /dev/mapper/centos-root
xxx 要確認一下
最後一到手續
7. xfs_growfs /dev/mapper/centos-root (CENTOS7專用)
8. df -h (確認空間是否有變大)

搜尋此網誌