python下建立elasticsearch索引實現大數據搜索——之環境搭建(一)

目錄

1.需求闡述

2.環境搭建

2.1安裝Elasticsearch

檢測是否安裝了Elasticsearch

解壓安裝Elasticsearch

2.1.1啓動Elasticsearch

2.2安裝PyCharm


1.需求闡述

1)數據存儲在阿里雲內網的Mysql服務器上,需要通過一臺服務器SSH隧道穿透取得數據。

2)首先明確,一張設計圖需要多種素材來構成。數據量很大,需要操作的有兩個表,稱爲stylepatternshow表,目前數據3w行(此表存着一張圖片所需要的所有素材id)和 resource表,目前數據4w行(此表存着各種素材的信息,包括主圖案【玫瑰,蘭花等】,顏色【紅色,黃色等】,技法【水墨畫,電腦繪畫等】)

3)現在是用戶隨意挑出想要的設計圖的主圖案,顏色,技法。 那麼需要根據這個需求來推薦出設計圖。

首先指出,這個數據庫設計是有問題,並沒有存儲到 素材——>設計圖 的信息,只存了設計圖——>素材 的信息(設計圖包含有需要素材的id)。就這個情況,正常編程思路是:根據需求,在resource表中分別找出對應主圖案,顏色,技法的有哪些material列表,再去stylepatternshow表去找同時包含這三個material的設計圖,達到目的,親測需要30s。因此有必要建立搜索引擎,實現快速查找,結果平均1s,給力!

2.環境搭建

首先列出我的環境

  • ubuntu 16.04LTS
  • JAVA環境:

openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

  • elasticsearch-6.3.1
  • python2/3都行

首先我們需要藉助elasticsearch來建立搜索引擎(owe to 它的倒排索引),下面來搭建環境:(確保你有Java環境)

2.1安裝Elasticsearch

  • 檢測是否安裝了Elasticsearch

ps aux|grep elasticsearch
  • 下載Elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.tar.gz
  • 或者從官網中下載相應的壓縮包,使用ftp上傳至服務器進行壓縮安裝: 

下載地址:https://www.elastic.co/downloads/elasticsearch 
這裏選擇6.3.1版本的Elasticsearch,選擇對應的安裝包進行下載

  • 解壓安裝Elasticsearch

解壓到當前目錄

tar -zxvf elasticsearch-6.3.1.tar.gz
  • 安裝,將Elasticsearch移動到/usr/local/elasticsearch目錄之中
mv elasticsearch-6.3.1 /usr/local/elasticsearch
  • 修改配置文件
  • 進入/usr/local/elasticsearch/config目錄,使用vi編輯器
vi elasticsearch.yml
  • 取消如下注釋,並修改爲0.0.0.0:(所有主機可訪問,便於遠程被連接)
network.host:  0.0.0.0
  • 使用vi編輯器,修改/etc/sysctl.conf文件,添加如下代碼(若無將會出現下面常見問題1):
vm.max_map_count=262144
  • 退出保存後執行如下命令:
sysctl -p
  • 使用vi編輯器,修改/etc/security/limits.conf文件,在文件末尾添加如下代碼(若無將會出現下面常見問題2):
# python爲登錄服務器的用戶名

python soft nofile 65536
python hard nofile 65536
python soft nproc  4096
python hard nproc  4096

值得注意的是,python爲登錄的用戶名。修改退出保存之後,切記需要退出重新登錄,配置才能生效!!!

2.1.1啓動Elasticsearch

進入/usr/local/elasticsearch目錄之中,輸入以下命令,開始Elasticsearch服務:

./bin/elasticsearch
  • 測試一下:
curl -XGET 'http://localhost:9200/'

 或在瀏覽器URL直接鍵入http://localhost:9200/

  • 出現以下代碼,就表示安裝完成了:
{
  "name" : "5U80WUO",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "F-WeQ0S_SQ2EkR7wAcslVg",
  "version" : {
    "number" : "6.3.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "eb782d0",
    "build_date" : "2018-06-29T21:59:26.107521Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
  1. max virutal memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    解決方案,請看上面修改配置文件第2項

  2. max number of threads [3750] for user [xxx] is too low, increase to at least [4096]

    這個問題折磨了博主很久,在網上找到的答案都是修改/etc/security/limits.d/90-nproc.conf文件,可是我發現我係統中根本不存在此文件!!!後又請教高人朋友,說是可以修改/etc/security/limits.conf文件,修改發現之後也根本不管用,原來修改該文件之後需要退出重新登錄一下才管用。具體修改配置,請看修改配置文件

2.2安裝PyCharm

上面我們已經確保擁有JAVA環境,elasticsearch工具,接下來需要python的IDE,這裏我選擇PyCharm,功能強大。

  • 下載

在linux系統下打開網址: 
http://www.jetbrains.com/pycharm/download/#section=linux,選擇Community版,保存文件,即可開始下載。

  • 安裝PyCharm

下載好的文件的名稱可能是 ‘pycharm-community-2017.2.3.tar.gz’

首先打開終端,然後通過下面的命令進入下載文件所在的文件夾:

cd ~/Downloads 
或者如果文件夾是中文
cd ~/下載

然後,通過運行下面的命令找到你下載的文件的名字:

ls

得到文件名字後複製 

這裏寫圖片描述 
然後運行下面的命令解壓文件:

tar -xvzf pycharm-community-2017.2.3.tar.gz -C ~ //~即爲文件解壓路徑

!!!這裏-C後面的~即爲文件解壓路徑,可以自己選擇,這裏是解壓到home目錄下。

然後點擊回車,解壓完成就安裝好了。

  • 在linux下運行PyCharm

首先進入home(安裝路徑)目錄

cd ~ 

運行 ls 命令查找文件夾名:

ls 

 

這裏寫圖片描述 
查找到文件名以後複製,輸入進下面的命令,進入 PyCharm 目錄:

cd pycharm-community-2017.2.3/bin 

最後,通過運行下面的命令來運行 PyCharm:

sh pycharm.sh & 

然後就會運行pycharm,可以開始開發啦。 

  • 以後運行PyCharm的方法

方法一:每次運行也需要使用cd命令,進入pycharm的安裝路徑下的bin目錄,用sh命令來啓動pycharm。

方法二:或者直接把絕對路徑給出,方便把Pycharm安裝到其他地方的同學。只使用一條命令就可以運行,很方便。: 

sh ~/安裝PyCharm的目錄/pycharm-community-xxx.x.x/bin/pycharm.sh &

 同時,覺得很難記難輸入的pycharm-community-2018.1.1目錄名,是可以自己修改的,可以修改爲自己好記的名字。

=======================================================================================================

Now,環境都搭好了,下面開始編程開發吧!!!詳見python下建立elasticsearch索引實現大數據搜索——之編程實現(二)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章