V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xiaomacai
V2EX  ›  Python

请教,处理上亿条日志,每条 10+列,单机使用 Python 如何很好的处理?

  •  
  •   xiaomacai · 2017-07-01 22:56:46 +08:00 · 3389 次点击
    这是一个创建于 2696 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 条回复    2017-07-03 12:23:36 +08:00
    QQ2171775959
        1
    QQ2171775959  
       2017-07-01 23:09:11 +08:00
    找个好点的服务器就可以了。多核心多线程就可以。。例如 16 核 32 线程的。
    ldbC5uTBj11yaeh5
        2
    ldbC5uTBj11yaeh5  
       2017-07-01 23:10:32 +08:00
    这种场景 awk 完爆 python
    xiaomacai
        3
    xiaomacai  
    OP
       2017-07-01 23:16:04 +08:00
    补充:从提高效率的角度讲,使用 python 什么库或者什么语法糖更好一些
    decken
        4
    decken  
       2017-07-02 01:26:58 +08:00 via iPhone
    这种量如果逻辑不复杂,不用太多考虑语言性能问题
    liprais
        5
    liprais  
       2017-07-02 02:27:32 +08:00 via iPad
    用 pyspark 很轻松的
    laxenade
        6
    laxenade  
       2017-07-02 02:52:59 +08:00
    spark+1
    herozhang
        7
    herozhang  
       2017-07-02 03:38:41 +08:00 via iPhone
    用 pypy 跑 python 脚本
    sdshiyan2005
        8
    sdshiyan2005  
       2017-07-02 09:00:16 +08:00
    dask?
    beginor
        9
    beginor  
       2017-07-02 10:45:21 +08:00 via Android
    Spark+1
    fiht
        10
    fiht  
       2017-07-02 10:52:43 +08:00   ❤️ 1
    建议二楼的方法:使用 AWK+grep+管道,从运维工程师的角度来思考这个问题方便很多。
    楼上刷 spark 有点不大好,楼主要是会 spark 就不会来这里问了....现学 spark 显然是来不及的。
    关于效率其实一次性处理的东西和效率也没什么关系,cat today.log | awk '{print $3}' >> column3.log,一般也没有多少效率上的问题,使用 Python 还得处理内存上的东西。
    如果硬要考虑 py 的话,你解决了大文件读取时候内存问题就好了,multiprogress 倒也不大好用,处理大文件时候很大以部门场景是内存不如文件大,一次 load 进来内存就得 gg。
    用 AWK 吧,本来就是为了解决这个问题设计的。
    另外,说到日志想安利一发 ELK 框架,做起统计报表什么的很能忽悠人
    wangchen
        11
    wangchen  
       2017-07-03 12:23:36 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5891 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:27 · PVG 14:27 · LAX 22:27 · JFK 01:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.