在多台Debian/Ubuntu上使用Oropo处理海量图片

你是否曾经有过有许许多多的图片数据要处理?而处理这些数据在一台电脑上需要花费很长的时间才能处理完成。如果我们使用两台,三台甚至更多的电脑并行处理这些数据,那将会节约很多很多的时间。既然能节约大量的时间,那就让我们用多台电脑在Debian/Ubuntu上一起处理吧。你是否认为让多台电脑协同工作需要繁杂的系统配置?在Oropo面前,,你那过时的想法就是NO。下面让我们看看配置有多么的简单。

没有实际例子是很难说清楚配置过程的。就让我们从处理海量图片的实例来说明问题吧。第一种解决此问题的方法是在一台电脑上日以继夜的处理这些图片;第二种解决方法则是在多台电脑上平行批量处理这些图片。

问题描述: 要处理一万张图片,而且每张图片都有很高的品质,目标是为每张图片创建一个体积较小的副本。而libjpeg库为这个问题提供了恰当的解决方案。

libjpeg库中有用的程序:djpeg – 将JPEG文件解压成位图文件cjpeg – 将位图文件压缩成JPEG文件脚本适合处理单个图片

参数: 图片文件路径结果: 生成体积较小的图片

下面是bash范例脚本:

Script make_smaller.sh#!/bin/bashQUALITY=30if [ $# -ne 1 ]; then echo “arguments” 1>&2 exit 1;fiFILE_PATH=$1djpeg $FILE_PATH | cjpeg -quality $QUALITY

顺序处理: 调用make_smaller.sh脚本将顺序处理每张图片

顺序处理脚本#!/bin/bashMAKE_SMALLER=$PWD/make_smaller.shIMGS_DIR=$PWD/imgsTARGET_DIR=$PWD/imgs_smallerfor file in $IMGS_DIR/*; do bash $MAKE_SMALLER $file > $TARGET_DIR/${file##*/}done

并发处理: 我们可以使用Oropo Executor system来处理这些图片。处理图片的任务将会添加到一给任务队列,然后在多台电脑上并行处理这些任务。每张图片都会被make_smaller.sh脚本处理。

并行处理脚本:#!/bin/bashMAKE_SMALLER=$PWD/make_smaller.shIMGS_DIR=$PWD/imgsfor file in $IMGS_DIR/*; do oropo-system-pusher -p “string:bash” -p “path:$MAKE_SMALLER” -p “path:$file”done

处理结果存放在 /var/lib/oropo/response/*/0 文件中

你的选择是做或不做,但不做就永远不会有机会

在多台Debian/Ubuntu上使用Oropo处理海量图片

相关文章:

你感兴趣的文章:

标签云: