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

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

如果我们使用两台,三台甚至更多的电脑并行处理这些图片数据,那将会节约很多的时间。既然能节约大量的时间,那就让我们用多台电脑在Debian/Ubuntu上一起处理吧。Ubuntu建基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。你是否认为让多台电脑协同工作需要繁杂的系统配置?在Oropo面前,你那过时的想法就是NO。下面让我们看看配置有多么的简单。

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

问题描述:

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

libjpeg库中有用的程序:

djpeg - 将JPEG文件解压成位图文件

cjpeg - 将位图文件压缩成JPEG文件

脚本适合处理单个图片

参数: 图片文件路径

结果: 生成体积较小的图片

下面是bash范例脚本:

 

  1. Script make_smaller.sh  
  2.  
  3. #!/bin/bash  
  4.  
  5. QUALITY=30 
  6.  
  7. if [ $# -ne 1 ]; then  
  8.  
  9. echo "arguments" 1>&2  
  10.  
  11. exit 1;  
  12.  
  13. fi  
  14.  
  15. FILE_PATH=$1  
  16.  
  17. djpeg $FILE_PATH | cjpeg -quality $QUALITY 

 

顺序处理:

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

顺序处理脚本

 

  1. #!/bin/bash  
  2.  
  3. MAKE_SMALLER=$PWD/make_smaller.sh  
  4.  
  5. IMGS_DIR=$PWD/imgs  
  6.  
  7. TARGET_DIR=$PWD/imgs_smaller  
  8.  
  9. for file in $IMGS_DIR/*; do  
  10.  
  11. bash $MAKE_SMALLER $file > $TARGET_DIR/${file##*/}  
  12.  
  13. done 

 

并发处理:

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

并行处理脚本:

 

  1. #!/bin/bash  
  2.  
  3. MAKE_SMALLER=$PWD/make_smaller.sh  
  4.  
  5. IMGS_DIR=$PWD/imgs  
  6.  
  7. for file in $IMGS_DIR/*; do  
  8.  
  9. oropo-system-pusher -p "string:bash" -p "path:$MAKE_SMALLER" -p "path:$file"  
  10.  
  11. done 

 

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

摘要:

前面段落说到的两种处理方式对比:***种方法只使用一台电脑处理;而第二种方法使用多台电脑并行处理。两种方法的部署难度几乎相等,而采用第二种处理方法将节约大量的时间。

Oropo项目介绍

官方网站: http://www.oropo.org/

安装指南

在多台电脑上部署Oropo需要在中央控制节点机器上安装Oropo System,并且在其他节点机器上安装Oropo Executor进行运算处理(中央节点机器也可以安装并进行运算)。

Oropo 软件安装包位于oropo软件仓库中,你需要通过下面步骤安装对应的软件包。

在每个运算节点电脑上进行配置:

在/etc/apt/sources.list文件开始添加下面一行:

 

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

 

执行命令:

 

  1. apt-get update 

 

在中央控制机器上安装Oropo System

执行如下命令:

 

  1. apt-get install oropo-system 

 

在节点运算机器上安装Oropo Executor

执行如下命令:

 

  1. apt-get install oropo-executor 

 

配置:

中央控制机配置:

将本机添加到oropo集群并得到足够的权限

 

  1. adduser 'whoami' oropo 

 

在Oropo System种添加运算节点机器地址

 

  1. oropo-monitor-ctl --id_prefix oropomonitor --add node1_ip_address  
  2.  
  3. oropo-monitor-ctl --id_prefix oropomonitor --add node2_ip_address  
  4.  
  5. oropo-monitor-ctl --id_prefix oropomonitor --add nodeN_ip_address 

 

配置完这些就可以使用Oropo System控制集群进行并行运算处理了,怎么样,简单吧!

总结:

希望本文介绍的在多台Ubuntu上使用Oropo处理海量图片的方法能够对读者有所帮助,更多有关linux系统的知识还有待于读者去探索和学习。

责任编辑:韩亚珊 来源: 雨林木风
相关推荐

2023-07-25 09:28:24

UbuntuFlatpak

2023-05-22 11:26:32

UbuntuQemu

2018-01-16 10:19:20

2023-01-28 21:27:27

2011-09-19 10:12:32

UbuntuPhotivo

2023-09-24 19:24:18

UbuntuVSCodium

2023-09-01 09:31:48

2018-04-03 13:31:53

LinuxUbuntu 16.0msmtp

2021-10-02 10:15:19

UbuntuLinuxAnyDesk

2019-05-31 16:10:42

UbuntuLinuxBudgie桌面

2014-05-30 10:08:06

2011-09-07 13:33:51

ubuntuUbuntu Twea

2020-10-21 09:16:01

UbuntuLinuxYarn

2021-03-22 16:45:58

服务器命令

2017-08-09 13:13:25

LinuxUbuntuZabbix

2019-04-28 10:00:11

UbuntuLinuxMySQL

2010-05-25 09:04:55

2011-01-12 09:59:28

Ubuntu Serviptables

2019-05-10 08:00:00

UKUUUbuntuLinux

2011-05-24 09:33:40

UbuntuOpenStackNova
点赞
收藏

51CTO技术栈公众号