上善若水
          In general the OO style is to use a lot of little objects with a lot of little methods that give us a lot of plug points for overriding and variation. To do is to be -Nietzsche, To bei is to do -Kant, Do be do be do -Sinatra
          posts - 146,comments - 147,trackbacks - 0
          最近事情挺多的,好久不寫(xiě)博客了。今天在看hadoop的時(shí)候,突然心血來(lái)潮,想在windows的eclipse下跑hadoop的shell腳本,這樣就方便多了,查了一個(gè)晚上,終于看似找到了,淚奔。記錄&分享一下,如果有人也有這樣的需求或者備以后自己看。

          當(dāng)然在windows下跑shell當(dāng)然是要先安裝cygwin了,關(guān)于這個(gè)cygwin的安裝就不在這里說(shuō)了,另外關(guān)于如何在cygwin配置hadoop貌似已經(jīng)有人寫(xiě)過(guò)了,也不在這里介紹了,有興趣的童鞋可以參考:http://blog.csdn.net/yanical/article/details/4474830

          所以本文只關(guān)注如何將cygwin引入到eclipse中以運(yùn)行shell腳本。
          在eclipse中,通過(guò)External Tools方式來(lái)支持嵌入包括cygwin在內(nèi)的其他工具,以下是這些步驟:
          1. eclipse->Run->External Tools->External Tools Configuration....
          2. 在配置頁(yè)面中,那么可以按你的愛(ài)好隨便指定,如cywin_hadoop,location是指externl tools的地址,這里就是解釋shell的bash,簡(jiǎn)單一點(diǎn)的,可以直接指定:C:\cygwin\bin\bash.exe,這樣可以執(zhí)行一些簡(jiǎn)單的命令,但是如果要引用其他解釋器,那就有問(wèn)題了,比如執(zhí)行hadoop的shell文件,就會(huì)發(fā)現(xiàn)dirname命令找不到的提示。所以一種解決方法是自己寫(xiě)一個(gè)bat腳本,把需要用到的目錄都寫(xiě)道PATH中,比如我編寫(xiě)了如下的bat腳本(當(dāng)然如果需要其他更多其他目錄的命令,可以往PATH中添加):
          @echo off
          rem 上一行關(guān)閉命令回顯

          PATH
          =C:\cygwin\bin\;%PATH%

          bash 
          %1

          rem 開(kāi)啟命令回顯
          echo on
          然后把location指向該文件。
          3. Work Directory是指工作目錄,可以指定你腳本所在目錄,如我的hadoop腳本在scripts下,那么我就指定了:${workspace_loc:/hadoop/scripts}
          4. Arguments我指定了當(dāng)前的文件名:${resource_name},如果在實(shí)際運(yùn)行hadoop腳本時(shí)參數(shù)可以往后再添加。

          這樣就配置好了,直接點(diǎn)擊Run就可以運(yùn)行了。這樣感覺(jué)以后開(kāi)發(fā)就方便多了。

          另外,還發(fā)現(xiàn)了一個(gè)非常有趣的東東,一同記錄分享。
          為了在windows下點(diǎn)擊shell腳本文件就可以直接運(yùn)行shell腳本,有人想出了如下命令(出自:http://stackoverflow.com/questions/105075/how-can-i-associate-sh-files-with-cygwin):
          assoc .sh=bashscript

          ftype bashscript
          =C:\cygwin\bin\bash.exe --login --'cd "$(dirname "$(cygpath -u "%1")")"; bash "$(cygpath -u "%1")"'
          即設(shè)置*.sh文件的默認(rèn)執(zhí)行軟件是bash,如果在win7下需要用管理員身份打開(kāi)cmd,然后運(yùn)行這兩個(gè)指令。可惜我好像木有運(yùn)行成功,沒(méi)有仔細(xì)找原因,不過(guò)我嘗試了一下命令確實(shí)可以運(yùn)行:
          assoc .sh=bashscript
          ftype bashscript
          =C:\cygwin\bin\bash.exe %1
          感覺(jué)挺好玩的。。。。
          posted on 2012-04-12 00:38 DLevin 閱讀(5792) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Hadoop
          主站蜘蛛池模板: 改则县| 高清| 通山县| 江达县| 汉寿县| 临颍县| 托克托县| 潞城市| 沛县| 温州市| 沙田区| 西平县| 孟村| 临漳县| 扎鲁特旗| 日照市| 荔浦县| 平邑县| 同江市| 承德市| 石景山区| 乌兰县| 荔浦县| 秦皇岛市| 合山市| 金坛市| 平塘县| 清丰县| 延川县| 景德镇市| 黄大仙区| 华容县| 石河子市| 尼玛县| 石柱| 玉屏| 建平县| 胶州市| 永城市| 济阳县| 江永县|