歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在多台Debian/Ubuntu上使用Oropo處理海量圖片

在多台Debian/Ubuntu上使用Oropo處理海量圖片

日期:2017/2/28 16:36:41   编辑:Linux教程

你是否曾經有過有許許多多的圖片數據要處理?而處理這些數據在一台電腦上需要花費很長的時間才能處理完成。如果我們使用兩台,三台甚至更多的電腦並行處理這些數據,那將會節約很多很多的時間。既然能節約大量的時間,那就讓我們用多台電腦在Debian/Ubuntu上一起處理吧。你是否認為讓多台電腦協同工作需要繁雜的系統配置?在Oropo面前,你那過時的想法就是NO。下面讓我們看看配置有多麼的簡單。

沒有實際例子是很難說清楚配置過程的。就讓我們從處理海量圖片的實例來說明問題吧。第一種解決此問題的方法是在一台電腦上日以繼夜的處理這些圖片;第二種解決方法則是在多台電腦上平行批量處理這些圖片。

問題描述:
要處理一萬張圖片,而且每張圖片都有很高的品質,目標是為每張圖片創建一個體積較小的副本。而libjpeg庫為這個問題提供了恰當的解決方案。

libjpeg庫中有用的程序:
djpeg - 將JPEG文件解壓成位圖文件
cjpeg - 將位圖文件壓縮成JPEG文件
腳本適合處理單個圖片

參數: 圖片文件路徑
結果: 生成體積較小的圖片

下面是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


順序處理:
調用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 system來處理這些圖片。www.linuxidc.com處理圖片的任務將會添加到一給任務隊列,然後在多台電腦上並行處理這些任務。每張圖片都會被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 文件中

Copyright © Linux教程網 All Rights Reserved