這是在做分散式系統期末專題遇到的問題

事情背景是這樣的:

用pietty連接在遠端的VM,系統是無圖形介面的命令式Ubantu

有夠難用的QQ

不過也很大程度上練習了一下下Linux

在上面架設hadoop來作業

因為是編譯java程式,又沒有圖形介面

所以在本身win7的電腦上,開eclipse打code

修正完後再把程式碼複製到VM裡編譯去跑

(當然有處理map reduce的那支不行這樣)

那第三支程式有用到reduce後出來的結果

讀檔,做一些處理

以下是一小小部分的reduce結果內容

Bigaj, 1
Bonfires 1
Booz 1
Boucher. 1
Bradley 3
Brahimi, 1
Brandy 1
Brazil 12
Brazil's 7
Brazil, 7
Brazil. 2
Brazilian 7
Brazilian!" 1
Brazilian, 2

我把檔案內容從遠端VM"複製"到我的電腦上作業

剪貼簿的複製

因為是做字串與相對應的次數去做些處理

所以需要切割

從中間切掉

一開始我是用"\t"

然後

就爆炸

 

發現裡面是長度不一的空白字元

=口=

所以弄了個方法

使用split(" ")後

我只抓這行中最前面和最後面的東西

成功達到我想做的處理

 

不過............

把code放到VM裡面

竟然又爆炸

還是大爆炸

de了3個小時找不到原因

滿心在想為什麼win7可以跑ubantu就不能跑了

後來找到

在VM裡面的reduce結果

中間看似長度不一的分隔用空白

都只是一個\t

傻眼QQ

(為什麼一樣是\t長度卻都不一樣呢

(這個我真的不了解

把code裡面的切空白又改回切tab就行了

 

結論:

用剪貼簿的複製

就是用記憶體儲存資料進行複製

電腦會把那些長度不一的\t

看成相對應的空白

湊成的分隔長度

在VM裡面認為是\t

在我的電腦看來是空白的集合體

處理方法就是用ftp把遠端的檔案用download的方式載到我的電腦

這樣我的電腦也會覺得那是\t不是空白

或者

一開始就直接在VM打code也不會發生這慘案

 

 

文章標籤
全站熱搜
創作者介紹
創作者 Master Sarge 的頭像
Master Sarge

Master Sarge 的部落格

Master Sarge 發表在 痞客邦 留言(0) 人氣(113)