V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cooljs
V2EX  ›  数据库

感觉 elasticsearch 很不适合个人开发啊

  •  
  •   cooljs · 2019-05-16 10:37:40 +08:00 · 8314 次点击
    这是一个创建于 2014 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉很吃配置,在 1g 内存的 vps 上运行,各种出错。。要么 java 内存不够了,要么 es 连接超时了。。蓝瘦

    第 1 条附言  ·  2019-05-16 11:39:45 +08:00

    本地开发可以了,还有一个问题,es生产环境的最低配置是多少呢?,主要用来做图片的检索

    88 条回复    2019-06-12 20:52:51 +08:00
    mokeyjay
        1
    mokeyjay  
       2019-05-16 10:40:29 +08:00
    开发就在本地嘛
    xpresslink
        2
    xpresslink  
       2019-05-16 10:41:37 +08:00   ❤️ 4
    省钱和省事之间通常都是有冲突的。
    cooljs
        3
    cooljs  
    OP
       2019-05-16 10:41:52 +08:00
    @mokeyjay 小程序开发,还得要一个域名
    shyling
        4
    shyling  
       2019-05-16 10:42:54 +08:00
    你手机运存都不止 1g 了。。。。1g 只是玩具。。。
    kwklover
        5
    kwklover  
       2019-05-16 10:43:18 +08:00 via Android
    你用 ES 做什么用途?ES 都是吃内存大户。
    xpresslink
        6
    xpresslink  
       2019-05-16 10:43:55 +08:00
    你在本机弄个 32G 内存,开虚拟机跑个 Docker 吧。没好办法,es 最少要 2G 内存才能正常跑起来。
    Vegetable
        7
    Vegetable  
       2019-05-16 10:44:46 +08:00
    JAVA 系的东西是很吃内存呀
    gosansam
        8
    gosansam  
       2019-05-16 10:46:13 +08:00
    虚拟内存搞起来 docker 搞起来
    cooljs
        9
    cooljs  
    OP
       2019-05-16 10:47:48 +08:00
    @kwklover 用来做图片检索的
    cooljs
        10
    cooljs  
    OP
       2019-05-16 10:51:15 +08:00
    @xpresslink
    @gosansam 我是开发微信小程序,他的请求有域名验证,本地开发还不行
    cooljs
        11
    cooljs  
    OP
       2019-05-16 10:51:25 +08:00
    @Vegetable 蓝瘦
    misaka19000
        12
    misaka19000  
       2019-05-16 10:52:46 +08:00
    1g。。。Java 本来就吃内存,然后 Lucene 还要依赖 page_cache,1g 就不要用 ES 了吧
    Navee
        13
    Navee  
       2019-05-16 10:53:36 +08:00
    测试用本地跑 1g 内存是够的
    在 vps 跑要看你 vps 是什么实例,那种小型实例有 1g 内存也不要折腾了,cpu、磁盘都是瓶颈
    misaka19000
        14
    misaka19000  
       2019-05-16 10:53:57 +08:00
    而且 ES 不组集群不能使用到 ES 的优势特性,楼主是为了使用 ES 的搜索特性吗?
    liuxey
        15
    liuxey  
       2019-05-16 10:54:57 +08:00
    应该是 1g 内存的 vps 不适合 elasticsearch 开发
    nisnaker
        16
    nisnaker  
       2019-05-16 11:02:44 +08:00
    @cooljs #10 小程序开发的时候能在本地 IDE 里把域名验证关掉
    xiaoyangsa
        17
    xiaoyangsa  
       2019-05-16 11:04:45 +08:00
    1g 服务器可以做.域名映射到本地吧~
    zjsxwc
        18
    zjsxwc  
       2019-05-16 11:07:04 +08:00
    ES 本来就是给集群跑的,单机还容易跑挂掉的
    cooljs
        19
    cooljs  
    OP
       2019-05-16 11:07:37 +08:00
    @misaka19000 是的,主要是为了他的搜索特性
    wyntalgeer
        20
    wyntalgeer  
       2019-05-16 11:07:45 +08:00
    1g 的 VPS 就不要运行 java 程序了吧
    chennqqi
        21
    chennqqi  
       2019-05-16 11:07:46 +08:00
    楼主非要在 1G 环境下跑可以设置 jvm.options 里
    -Xms2g -> -Xms1g#设置最小堆的值为 1g
    -Xmx2g -> -Xmx1g #设置组大堆的值为 1g
    cooljs
        22
    cooljs  
    OP
       2019-05-16 11:08:03 +08:00
    @Navee 2g2c 的服务器怎么样
    ospider
        23
    ospider  
       2019-05-16 11:08:15 +08:00
    可以试试 sonic,rust 写的,非常省内存
    cooljs
        24
    cooljs  
    OP
       2019-05-16 11:09:35 +08:00   ❤️ 1
    @chennqqi 嘿嘿,1g 也跑不起来,直接`JavaThread "Unknown thread"`,必须 512m 才行
    AngryPanda
        25
    AngryPanda  
       2019-05-16 11:10:43 +08:00
    楼主还有个选择,使用云版 es
    iyaozhen
        26
    iyaozhen  
       2019-05-16 11:11:45 +08:00 via Android   ❤️ 1
    1g 玩个 dan,我们 10 台 128g 内存、3t ssd 的机器都存不了啥,分片都不敢开多。说的不好听,没资源还是不要入坑,当然自己学习可以本机玩玩。

    数据量不大,说真的 MySQL 就行了
    cooljs
        27
    cooljs  
    OP
       2019-05-16 11:14:15 +08:00
    @nisnaker 关闭了确定 localhost:3000 这样的可以吗?
    cooljs
        28
    cooljs  
    OP
       2019-05-16 11:14:41 +08:00
    @xiaoyangsa 没有公网 ip,可以映射吗
    cooljs
        29
    cooljs  
    OP
       2019-05-16 11:15:11 +08:00
    @ospider 选数据库还考虑了使用人多不多,这个没听过诶
    cooljs
        30
    cooljs  
    OP
       2019-05-16 11:16:04 +08:00
    @iyaozhen 我是想用他的搜索排序
    misaka19000
        31
    misaka19000  
       2019-05-16 11:16:25 +08:00
    楼上加一,数据量不多直接全文检索就可以搞定
    chinesestudio
        32
    chinesestudio  
       2019-05-16 11:17:39 +08:00 via Android
    本地开发 frp 穿透 512 也够
    misaka19000
        33
    misaka19000  
       2019-05-16 11:17:46 +08:00
    或者自己分词然后计算一下相关度,虽然简陋不过应该可以应付一些情况了
    Proxy233
        34
    Proxy233  
       2019-05-16 11:17:56 +08:00 via Android
    测试和个人可以试试这个: https://app.vizion.ai
    jaylee77
        35
    jaylee77  
       2019-05-16 11:18:19 +08:00
    @cooljs 你去试试关掉域名校验,是不是比回贴容易得多呢?
    cooljs
        36
    cooljs  
    OP
       2019-05-16 11:18:27 +08:00
    @AngryPanda 是不是小贵的那种
    cooljs
        37
    cooljs  
    OP
       2019-05-16 11:19:50 +08:00
    @jaylee77 因为之前试过,localhost 不行
    cooljs
        38
    cooljs  
    OP
       2019-05-16 11:20:07 +08:00
    @Proxy233 好,多谢老哥
    testplusplus
        39
    testplusplus  
       2019-05-16 11:20:26 +08:00
    1g 内存上 ES ?一般不都是关系型数据库扛不住查询之后才会去用吗
    cooljs
        40
    cooljs  
    OP
       2019-05-16 11:20:49 +08:00
    @misaka19000 嗯,不行就换数据库了,
    deepzz
        41
    deepzz  
       2019-05-16 11:23:30 +08:00 via iPhone
    本人博客就上了 es,哈哈。
    fxxkgw
        42
    fxxkgw  
       2019-05-16 11:24:33 +08:00
    这玩意是真的吃内存 我一直都觉得是自己太菜 没优化好他的配置。。什么看源码 不可能看的。
    jaylee77
        43
    jaylee77  
       2019-05-16 11:25:14 +08:00
    @cooljs



    不行?
    JackyCDK
        44
    JackyCDK  
       2019-05-16 11:25:24 +08:00
    把这台机改成 ngrok 呗...
    cooljs
        45
    cooljs  
    OP
       2019-05-16 11:26:54 +08:00
    @deepzz 哈哈,你的服务器是啥配置
    cooljs
        46
    cooljs  
    OP
       2019-05-16 11:27:36 +08:00
    @fxxkgw 不用怀疑,就是我们太菜,😂,es 需要专门的人来搞
    cooljs
        47
    cooljs  
    OP
       2019-05-16 11:28:14 +08:00
    @jaylee77 我错了大佬,我再试一下😂
    cooljs
        48
    cooljs  
    OP
       2019-05-16 11:30:10 +08:00
    @JackyCDK 感觉很难的样子
    JackyCDK
        49
    JackyCDK  
       2019-05-16 11:35:09 +08:00
    @cooljs #48 就改成一条隧道,代理到你自己的开发环境而已,很简单的
    cooljs
        50
    cooljs  
    OP
       2019-05-16 11:36:55 +08:00
    @JackyCDK 谢谢大佬,我用了本地开发可以了
    cooljs
        51
    cooljs  
    OP
       2019-05-16 11:37:20 +08:00
    @jaylee77 可以了,之前不知道怎么搞的,谢谢大佬
    yepinf
        52
    yepinf  
       2019-05-16 11:55:15 +08:00 via iPhone
    不妨试试 solr 比较省内存
    deepzz
        53
    deepzz  
       2019-05-16 11:56:17 +08:00 via iPhone
    @deepzz @cooljs @cooljs 1 核 1g,限制了 jvm 内存
    DeepRedApple
        54
    DeepRedApple  
       2019-05-16 11:56:27 +08:00
    直接虚拟机或者 Docker 跑,可以的
    moodasmood
        55
    moodasmood  
       2019-05-16 11:58:19 +08:00 via Android
    我们公司 es 集群都是 88 核的机器
    fyibmsd
        56
    fyibmsd  
       2019-05-16 11:58:23 +08:00
    不止 1g 不够 至少也要三台机器吧
    iyaozhen
        57
    iyaozhen  
       2019-05-16 12:09:53 +08:00 via Android
    @cooljs 最低配置你去看看阿里云的套餐就了解了。好像得 2 核 2gb 内存
    neoblackcap
        58
    neoblackcap  
       2019-05-16 12:15:21 +08:00
    es 算是穷人的搜索引擎,他们家的东西啊,大企业都觉得可用吧,但跟商业的比起来也就那样了。他们工程师都透露 elk 整套东西对内存的利用不咋地
    jamblues
        59
    jamblues  
       2019-05-16 12:18:03 +08:00 via iPhone
    图片检索 mysql +redis 就够用了 simhash 分段检索 降维 轻轻松松 实在不行可以上穷人玩的 sphinx
    LukeChien
        60
    LukeChien  
       2019-05-16 12:20:50 +08:00 via Android
    国外有云托管,在各个公有云上有节点,共享集群
    lusi1990
        61
    lusi1990  
       2019-05-16 12:30:54 +08:00 via Android
    看下官方文档 ,有最低配置和建议配置
    hurrytospring
        62
    hurrytospring  
       2019-05-16 13:19:07 +08:00
    本地跑方法太多了。。改 host 文件,代理,关闭验证。。。
    TimLang
        63
    TimLang  
       2019-05-16 13:31:40 +08:00
    如果你是小站长,肯定不适合用 elasticsearch,成本(服务器)太高,建议使用 postgresql,可以搜索下,自带全文检索,而且有现成的分词插件。
    iyangyuan
        64
    iyangyuan  
       2019-05-16 14:13:07 +08:00 via iPhone
    小站直接用 mysql 自己实现倒排索引,简单高效
    cooljs
        65
    cooljs  
    OP
       2019-05-16 14:20:00 +08:00
    @deepzz 牛批啊,es 不会莫名其妙的抽风吗
    cooljs
        66
    cooljs  
    OP
       2019-05-16 14:20:39 +08:00
    cooljs
        67
    cooljs  
    OP
       2019-05-16 14:27:26 +08:00
    @neoblackcap 你这个问题,堆配置就可以解决,,估计是这样的😂
    cooljs
        68
    cooljs  
    OP
       2019-05-16 14:40:22 +08:00
    @LukeChien 有关键词吗
    @lusi1990 OK
    @jamblues
    @TimLang
    @iyangyuan 我是根据搜索内容排序,我查查 pg,mysql 的资料,多谢大佬们
    hxt
        69
    hxt  
       2019-05-16 15:12:19 +08:00
    你要存的数据量是多少级别的,访问量多少?字段配置把要用到查询的字段设为 index,其他的字段用 store 类型。jvm 设小点,以及 linux 加下虚拟内存。数据量不多配置合理访问量也不多 1g 机器可以跑的。
    AlloVince
        70
    AlloVince  
       2019-05-16 16:40:51 +08:00
    x-pack 是付费的,报价是$5000/节点 /年,3 nodes 起卖,个人用户老老实实用云服务吧
    cooljs
        71
    cooljs  
    OP
       2019-05-16 17:09:30 +08:00
    @hxt 我 bulk 存入 4000 条数据,总是超时,就两个字段一个 text,一个 keyword,我试着加下虚拟内存
    cooljs
        72
    cooljs  
    OP
       2019-05-16 17:10:00 +08:00
    @AlloVince 没说用 xpack 啊😂
    rrfeng
        73
    rrfeng  
       2019-05-16 17:40:01 +08:00
    这就好比你有 10G 数据要分析起了个 hadoop ?
    AlloVince
        74
    AlloVince  
       2019-05-16 18:16:36 +08:00
    @cooljs 不用 x-pack 连最基本的权限管理都做不了,等于无法上线
    fiht
        75
    fiht  
       2019-05-16 19:06:23 +08:00
    楼主你有空看一下这个---> https://github.com/valeriansaliou/sonic
    试用一下看行不行,我 star 了还没来得及试用
    cabing
        76
    cabing  
       2019-05-16 21:21:06 +08:00
    不一定非得 es 吧。自己玩找个开源的也行。
    glfpes
        77
    glfpes  
       2019-05-16 21:25:10 +08:00 via Android
    可以购买云服务商的 es 服务
    fiht
        78
    fiht  
       2019-05-16 22:07:50 +08:00
    @cabing 老哥 es 就是开源的
    fengjianxinghun
        79
    fengjianxinghun  
       2019-05-16 22:12:41 +08:00 via iPhone
    rust 的 sonic 穷鬼的 es
    cabing
        80
    cabing  
       2019-05-16 22:21:22 +08:00
    @fiht 我知道大名鼎鼎的 es 是开源的。开源的搜索引擎有好多。。不一定非得 es。
    EugeneYWang
        81
    EugeneYWang  
       2019-05-16 22:24:03 +08:00
    @AlloVince
    @cooljs

    AWS 有基于 ES 做出魔改版,不仅开源,还包含了权限管理功能等等额外功能。

    另外,我个人也很推荐 LZ 先看看 PG,PG 生态圈里真的很好,国内很多人不知道。但是阿里就一直很看好 PG。

    如果 PG 的全文搜索不够用的话,可以看看 AWS 的魔改版,近几个月推出的。
    EugeneYWang
        82
    EugeneYWang  
       2019-05-16 22:25:49 +08:00
    BTW,我个人不是阿里的员工。只是了解过他们跟 PG 的部分相关公开信息。
    flashrick
        83
    flashrick  
       2019-05-17 09:11:55 +08:00
    讯搜呢?听说过没用过
    cooljs
        84
    cooljs  
    OP
       2019-05-17 09:55:53 +08:00
    @EugeneYWang 好的,谢谢大佬
    @AlloVince 权限管理用后端框架来控制
    @fiht
    @fengjianxinghun sonic 有中文分词吗
    alexmy
        85
    alexmy  
       2019-05-17 10:45:41 +08:00
    自己玩的话,那些大器物本地用用就好啦,小服务器撑不起。
    brust
        86
    brust  
       2019-05-29 16:25:07 +08:00
    我的 es 都是限制 128m 的
    因为没钱 1 核 1G
    cooljs
        87
    cooljs  
    OP
       2019-05-30 10:04:11 +08:00
    @brust 128m 也可以吗?具体怎么操作的
    kwklover
        88
    kwklover  
       2019-06-12 20:52:51 +08:00 via Android
    如果是用于站内搜索,可以试试我的小作品 www.searcheasy.net 一核一 G 照样能跑啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 11:40 · PVG 19:40 · LAX 03:40 · JFK 06:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.