在多臺(tái)Ubuntu上使用Oropo處理海量圖片
如果我們使用兩臺(tái),三臺(tái)甚至更多的電腦并行處理這些圖片數(shù)據(jù),那將會(huì)節(jié)約很多的時(shí)間。既然能節(jié)約大量的時(shí)間,那就讓我們用多臺(tái)電腦在Debian/Ubuntu上一起處理吧。Ubuntu建基于Debian發(fā)行版和GNOME桌面環(huán)境,與Debian的不同在于它每6個(gè)月會(huì)發(fā)布一個(gè)新版本。你是否認(rèn)為讓多臺(tái)電腦協(xié)同工作需要繁雜的系統(tǒng)配置?在Oropo面前,你那過時(shí)的想法就是NO。下面讓我們看看配置有多么的簡單。
沒有實(shí)際例子是很難說清楚配置過程的。就讓我們從處理海量圖片的實(shí)例來說明問題吧。***種解決此問題的方法是在一臺(tái)電腦上日以繼夜的處理這些圖片;第二種解決方法則是在多臺(tái)電腦上平行批量處理這些圖片。
問題描述:
要處理一萬張圖片,而且每張圖片都有很高的品質(zhì),目標(biāo)是為每張圖片創(chuàng)建一個(gè)體積較小的副本。而libjpeg庫為這個(gè)問題提供了恰當(dāng)?shù)慕鉀Q方案。
libjpeg庫中有用的程序:
djpeg - 將JPEG文件解壓成位圖文件
cjpeg - 將位圖文件壓縮成JPEG文件
腳本適合處理單個(gè)圖片
參數(shù): 圖片文件路徑
結(jié)果: 生成體積較小的圖片
下面是bash范例腳本:
- Script 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
順序處理:
調(diào)用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
并發(fā)處理:
我們可以使用Oropo Executor system來處理這些圖片。處理圖片的任務(wù)將會(huì)添加到一給任務(wù)隊(duì)列,然后在多臺(tái)電腦上并行處理這些任務(wù)。每張圖片都會(huì)被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
處理結(jié)果存放在 /var/lib/oropo/response/*/0 文件中
摘要:
前面段落說到的兩種處理方式對(duì)比:***種方法只使用一臺(tái)電腦處理;而第二種方法使用多臺(tái)電腦并行處理。兩種方法的部署難度幾乎相等,而采用第二種處理方法將節(jié)約大量的時(shí)間。
Oropo項(xiàng)目介紹
官方網(wǎng)站: http://www.oropo.org/
安裝指南
在多臺(tái)電腦上部署Oropo需要在中央控制節(jié)點(diǎn)機(jī)器上安裝Oropo System,并且在其他節(jié)點(diǎn)機(jī)器上安裝Oropo Executor進(jìn)行運(yùn)算處理(中央節(jié)點(diǎn)機(jī)器也可以安裝并進(jìn)行運(yùn)算)。
Oropo 軟件安裝包位于oropo軟件倉庫中,你需要通過下面步驟安裝對(duì)應(yīng)的軟件包。
在每個(gè)運(yùn)算節(jié)點(diǎn)電腦上進(jìn)行配置:
在/etc/apt/sources.list文件開始添加下面一行:
- deb http://students.mimuw.edu.pl/~ms209495/oropo/debian sid main
執(zhí)行命令:
- apt-get update
在中央控制機(jī)器上安裝Oropo System
執(zhí)行如下命令:
- apt-get install oropo-system
在節(jié)點(diǎn)運(yùn)算機(jī)器上安裝Oropo Executor
執(zhí)行如下命令:
- apt-get install oropo-executor
配置:
中央控制機(jī)配置:
將本機(jī)添加到oropo集群并得到足夠的權(quán)限
- adduser 'whoami' oropo
在Oropo System種添加運(yùn)算節(jié)點(diǎn)機(jī)器地址
- 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
配置完這些就可以使用Oropo System控制集群進(jìn)行并行運(yùn)算處理了,怎么樣,簡單吧!
總結(jié):
希望本文介紹的在多臺(tái)Ubuntu上使用Oropo處理海量圖片的方法能夠?qū)ψx者有所幫助,更多有關(guān)linux系統(tǒng)的知識(shí)還有待于讀者去探索和學(xué)習(xí)。