处理10000图片使用许多计算机与Oropo(Debian / Ubuntu)

使用Oropo处理10000张图片(Debian / Ubuntu)

介绍

你有没有很多数据要处理? 在经过一段时间的处理之后,我们意识到需要几年的时间才能完成。 如果我们可以使用两台或三台甚至更多的电脑,会更快。 让我们用一些电脑 - 你认为这是很多配置? 你错了。 与Oropo很容易。 让我们来看看。

没有一个例子就很难谈论处理。 我们来讨论处理大量图片的问题。 解决这个问题的第一种方法是在一台计算机上顺序处理图像。 第二种方法是在许多计算机上并行处理图像。

问题描述

问题是处理10000张照片。 每张照片质量都很高,目标是创建一个更小的版本。 有一个库libjpeg可以提供合适的程序。

libjpeg有用的程序:

djpeg - 将JPEG文件解压缩到图像文件

cjpeg - 将图像文件压缩为JPEG文件

脚本签名处理单张图片:

  • 参数:图片的路径

  • 结果:较小版本的图片

bash中的示例脚本:

脚本make_smaller.sh

#!/bin/bash
QUALITY=30
if [ $# -ne 1 ]; then
	echo "arguments" 1>&2
	exit 1;
fi
FILE_PATH=$1
djpeg $FILE_PATH | cjpeg -quality $QUALITY 

顺序处理

所有图片都可以通过调用脚本make_smaller.sh来处理。

顺序处理

#!/bin/bash
MAKE_SMALLER=$PWD/make_smaller.sh
IMGS_DIR=$PWD/imgs
TARGET_DIR=$PWD/imgs_smaller
for file in $IMGS_DIR/*; do
	bash $MAKE_SMALLER $file > $TARGET_DIR/${file##*/}
done

并行处理

我们可以使用Oropo Executor系统处理所有图片。 用于处理图片的任务将被添加到队列中并在许多计算机上并行处理。 每个图片都将使用脚本make_smaller.sh进行处理

并行处理

#!/bin/bash
MAKE_SMALLER=$PWD/make_smaller.sh
IMGS_DIR=$PWD/imgs
for file in $IMGS_DIR/*; do
	oropo-system-pusher -p "string:bash" -p "path:$MAKE_SMALLER" -p "path:$file"
done

处理结果可以在/ var / lib / oropo / response / * / 0文件中找到。

概要

在前面的部分介绍了两种处理图片的方法。 第一种方法使用单台计算机进行处理。 第二种方法使用许多计算机进行处理。 两种解决方案的复杂性部署几乎相同。 随着第二种处理方式的处理速度会更快。

奥罗波项目

一般

Oropo项目主页: http : //www.oropo.org

安装

要安装Oropo,您需要在中央节点上安装Oropo System,并在要用于处理的每个节点上安装Oropo Executor(也可能是中央节点)。

Oropo软件包位于oropo存储库中,您需要执行以下步骤才能安装软件包。

每个节点上的配置:

将此条目添加到/etc/apt/sources.list文件中:

deb http://students.mimuw.edu.pl/~ms209495/oropo/debian sid main

执行命令:

apt-get update

在中央节点安装Oropo系统:

执行命令:

apt-get install oropo-system

在处理节点上安装Oropo Executor:

执行命令:

apt-get install oropo-executor

组态

中央节点配置:

将自己添加到oropo组以获得足够的权限:

adduser `whoami` oropo

向Oropo系统添加处理节点地址:

oropo-monitor-ctl --id_prefix oropomonitor --add node1_ip_address
oropo-monitor-ctl --id_prefix oropomonitor --add node2_ip_address
oropo-monitor-ctl --id_prefix oropomonitor --add nodeN_ip_address
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏