用hdfs存儲海量的視頻數據
存儲海量的視頻數據,主要考慮兩個因素:如何接收視頻數據和如何存儲視頻數據。
我們要根據數據block在集群上的位置分配計算量,要充分利用帶寬的優勢。
1.接收視頻數據
將從攝像頭接收到的或通過模擬產生的視頻流以文件的形式存儲在本地文件夾,在這個過程中不產生任何中間文件。
2.海量視頻數據存儲
存儲海量視頻數據的思路:通過hadoop提供的api結構,實現將接收到的視頻流文件從本地上傳到hdfs中。
在這一過程中,把接收到的視頻文件不斷地存儲到一個指定的本地文件夾中,而這個本地文件夾是在不斷動態變換的,這時,將這個動態變化的文件夾當成是一個“緩沖區”,把“緩沖區”中的文件以流的形式與HDFS進行對接,接下來通過調用寫方法來實現以流的方式將緩沖區中的文件上傳到hdfs中。當文件上傳成功后,再調用delete方法批量刪除本地緩沖區中已經上傳的文件。這一過程不斷地循環,直到在緩沖區中的所有文件上傳到hdfs,並且緩沖區文件全部清空為止。