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)现在是用户随意挑出想要的设计图的主图案,颜色,技法。 那么需要根据这个需求来推荐出设计图。

扫描二维码关注公众号,回复: 2730990 查看本文章

首先指出,这个数据库设计是有问题,并没有存储到 素材——>设计图 的信息,只存了设计图——>素材 的信息(设计图包含有需要素材的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索引实现大数据搜索——之编程实现(二)

猜你喜欢

转载自blog.csdn.net/m0_37673307/article/details/81136224