① 在Hadoop搭建的雲平台上實現視頻文件的共享、上傳和下載
先安裝JDK和JRE;然後Cygwin;再開啟SSHD服務,之後便可以配置搭建Hadoop雲平台。在雲版平台搭建好之後,權安裝Eclipse,並將Hadoop-eclipse開發插件包嵌入Eclipse。此後便可以通過eclipse連接Hadoop雲平台,並實現其上的二次開發。具體的文件上傳與下載都可以通過HDFS提供的API實現。
② 如何實現讓用戶在網頁中上傳下載文件到HDFS中
hadoop計算需要在hdfs文件系統上進行,文件上傳到hdfs上通常有三種方法:a hadoop自帶的dfs服務,put;b hadoop的API,Writer對象可以實現這一功能;c 調用OTL可執行程序,數據從資料庫直接進入hadoop
hadoop計算需要在hdfs文件系統上進行,因此每次計算之前必須把需要用到的文件(我們稱為原始文件)都上傳到hdfs上。文件上傳到hdfs上通常有三種方法:
a hadoop自帶的dfs服務,put;
b hadoop的API,Writer對象可以實現這一功能;
c 調用OTL可執行程序,數據從資料庫直接進入hadoop
由於存在ETL層,因此第三種方案不予考慮
將a、b方案進行對比,如下:
1 空間:方案a在hdfs上佔用空間同本地,因此假設只上傳日誌文件,則保存一個月日誌文件將消耗掉約10T空間,如果加上這期間的各種維表、事實表,將佔用大約25T空間
方案b經測試,壓縮比大約為3~4:1,因此假設hdfs空間為100T,原來只能保存約4個月的數據,現在可以保存約1年
2 上傳時間:方案a的上傳時間經測試,200G數據上傳約1小時
方案b的上傳時間,程序不做任何優化,大約是以上的4~6倍,但存在一定程度提升速度的餘地
3 運算時間:經過對200G數據,大約4億條記錄的測試,如果程序以IO操作為主,則壓縮數據的計算可以提高大約50%的速度,但如果程序以內存操作為主,則只能提高5%~10%的速度
4 其它:未壓縮的數據還有一個好處是可以直接在hdfs上查看原始數據。壓縮數據想看原始數據只能用程序把它導到本地,或者利用本地備份數據
壓縮格式:按照hadoop api的介紹,壓縮格式分兩種:BLOCK和RECORD,其中RECORD是只對value進行壓縮,一般採用BLOCK進行壓縮。
對壓縮文件進行計算,需要用SequenceFileInputFormat類來讀入壓縮文件,以下是計算程序的典型配置代碼:
JobConf conf = new JobConf(getConf(), log.class);
conf.setJobName(」log」);
conf.setOutputKeyClass(Text.class);//set the map output key type
conf.setOutputValueClass(Text.class);//set the map output value type
conf.setMapperClass(MapClass.class);
//conf.setCombinerClass(Rece.class);//set the combiner class ,if havenot, use Recuce class for default
conf.setRecerClass(Rece.class);
conf.setInputFormat(SequenceFileInputFormat.class);//necessary if use compress
接下來的處理與非壓縮格式的處理一樣
③ hadoop提交作業時要先上傳輸入文件嗎
maprece的作業輸入輸出都需要在一個分布式文件系統上,一般來說都是hdfs,也可以是其他的文件系統。所以運行作業的輸入文件必須首先上傳到hdfs,輸出文件自然也在hdfs上。
把文件上傳到hdfs上,hdfs會根據設定的塊的大小,默認是64M,來分塊存放文件,並存放到不同機器以及會備份多份
maprece作業在開始時會對輸入文件進行切分,這個和hdfs分塊存儲文件是不同的。但是maprece切分輸入文件大小也和文件的塊有關,不過maprece切分文件的目的是方便多個map任務同時進行處理,提高處理效率,實現分布式計算。而且在maprece看來輸入文件是一個整體,並不知道輸入文件在hdfs中的存儲方式。這樣說吧,文件在hdfs中的存儲方式由namenode決定,所以只有namenode知道,而Maprece任務由jobtracker負責,所以jobtracker無法知道輸入文件的具體分塊信息,只能知道哪些節點上保存有該文件。
④ Hadoop2.2簡單上傳文件,web環境下啟動報錯,求大神
放到web項目的WebRoot/WEB-INF/lib下
⑤ 如何遠程上傳文件到hadoop中
全用以下命令答碼上傳文件到Hadoop上:
hadoop
fs
-put
local_file_name
/user/hadoop/其中,/user/hadoop/為旦舉握HDFS上的模慶路徑。local_file_name為需要上傳的文件名。