1. 三臺centos7虛擬機:
地址:192.168.143.11,192.168.143.22,192.168.143.33
2. 安裝java環境
3. 安裝項目管理工具軟件maven
wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
4. 安裝elasticSearch
本文使用的v1.7.5版本
- 下載壓縮包
wget https://codeload.github.com/elastic/elasticsearch/tar.gz/v1.7.5
- 解壓到指定目錄
# 我是放在/fxx/目錄下
var -zxvf v1.7.5
- 使用mvn構建項目
# 進入解壓的目錄執行
mvn clean package -DskipTests # 耗時十分鐘左右,三太虛擬機同時執行
- 安裝項目
# 構建完成後會在目錄下生成target/releases目錄
# 進入目錄
cd target/releases/
# 可以看到有一個編譯好的壓縮包(類似於elasticsearch-1.7.5.zip這樣的文件)
# 解壓該壓縮包到/fxx/目錄
unzip elasticsearch-1.7.5.zip -d /fxx/ # 到這一步就安裝好了
- 啓動項目
cd /fxx/elasticsearch1.7.5/
./bin/elasticsearch -d # 後臺啓動完成
- 測試一下
測試時,我在阿里雲服務器上使用 curl -X GET http://localhost:9200 能正常響應
但是在虛擬機上測試的時候,一直報“curl: (7) Failed connect to localhost:9200; 拒絕連接”錯誤
開始一直以爲是端口沒有開導致拒絕連接,可輸入netstat -nltp 查看時端口時確是開啓的
而輸入 curl -X GET http://192.168.143.11:9200 也能正常響應
然後索性修改了hosts文件(vi /etc/hosts),加了一行 “192.168.143.11 localhost” 後, http://localhost:9200 能正常響應
netstat -nltp 查看時端口時,阿里雲的是:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN 16611/java而虛擬機的是:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 192.168.143.11:9200 :::* LISTEN 6956/java看Proto/Local Address/Foreign Address可以看出差別,一個是ipv4,一個是ipv6,我猜是ipv6沒有正常解析這個“localhost”
hosts裏添加映射之後就好了
*注:如果想在postman或者瀏覽器裏輸入路由訪問的話需要開9200端口,執行下面命令:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
# es通過HTTP協議收發數據,可以用curl命令來給它發命令,默認監聽9200端口
curl -X GET http://localhost:9200/
# 響應如下:
{
"status" : 200,
"name" : "Gaia",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.5",
"build_hash" : "${buildNumber}",
"build_timestamp" : "2019-03-20T08:28:00Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}