V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ri0day
V2EX  ›  Linux

bash 实现了一个简单 分布式文本处理框架 欢迎拍砖

  •  
  •   ri0day ·
    ri0day · 2012-09-10 18:41:22 +08:00 · 3766 次点击
    这是一个创建于 4466 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看到各种语言都有分布式处理数据的框架。我在github上却发现bash分布式处理数据的还真没有
    于是自己折腾了一个。

    https://github.com/ri0day/mafia

    欢迎拍砖,或者提交代码.
    5 条回复    1970-01-01 08:00:00 +08:00
    yuelang85
        1
    yuelang85  
       2012-09-11 06:23:05 +08:00
    敬仰。。。。
    HowardMei
        2
    HowardMei  
       2012-09-11 09:19:05 +08:00
    赞,请教一个问题:看到里面直接用echo的地方不少,在我看来有些危险,因为bash一般用来操作配置文件,很多字符串含命令符,容易发生悲剧。我不知道啥时会忘记给变量加引号被执行,于是用 cat /tmp/abcdefg << 吸进任意字符串,再用cat输出,来替代echo,不知你遇过类似问题没有。
    ri0day
        3
    ri0day  
    OP
       2012-09-11 10:04:30 +08:00
    使用 echo 主要是为了便于传递变量.使用 nc 1.1.1.1 123 <<file 这种方式不利于调试 ,也不好传递变量进去.每次变量变化都要去修改这个文件了.
    superisaac
        4
    superisaac  
       2012-09-11 11:21:18 +08:00
    赞,能简单介绍下原理吗?
    ri0day
        5
    ri0day  
    OP
       2012-09-11 11:54:37 +08:00
    @superisaac 原理很简单.就是主控程序 根据传进来的参数 算出有多少个节点.要处理哪个文件.然后用split 将原始文件按照行数切分成"节点数"个分片.然后在节点上监听2个端口 一个用来接收数据.一个用来接收命令. 节点最后用传到节点的命令 处理收到的数据.然后发送给 接收结果的节点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5382 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:44 · PVG 13:44 · LAX 21:44 · JFK 00:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.