在上篇中,有乙個錯誤的地方,就是對於自定義型別,在textoutputformat輸出格式下輸出的時候,會出現不正常的情況。後來檢視textoutputformat的原始碼發現,在輸出的時候,它會呼叫自定義型別vectorwritable的tostring方法。以前也寫過,不知道為什麼不正常,這次新增tostring方法後,輸出檔案中顯示正常。
textoutputformat中呼叫object.tostring:
private void writeobject(object o) throws ioexception else
}public synchronized void write(k key, v value)
throws ioexception
if (!nullkey)
if (!(nullkey || nullvalue))
if (!nullvalue)
out.write(newline);
}
vectorwritable中的tostring函式:
public string tostring()
return output;
hadoop自定義分割槽
實現自定義分割槽比較簡單了,繼承partitioner,實現getpartition 方法就行了,分割槽是按照key進行的。以wordcount為例。輸入文字1 hello world hello 3.輸入文字2 hello world world 4 編寫程式,hello 和world各自為乙個分...
hadoop自定義許可權
參考 1.測試類 想執行hadoop的測試類,我們必須先編譯hadoop mac下編譯hadoop 2.7.4 然後檢視測試類 org.apache.hadoop.hdfs.server.namenode.testinodeattributeprovider然後直接執行testdelegationt...
自定義型別
typedef型別 typedef 已有型別 新建型別 示例 typedef double area,volume typedef int number number i1 area a enum enum 列舉型別名 enum week 預設sun 0,可以比較 如果修改必須形如enum week...